Files
Nexus/web/app/assets/FilesPage-BUWKMv5d.js
T
Your Name 51948469c2 build(frontend): track Vite output in Git for Gitea deploy
- Stop ignoring web/app/index.html and web/app/assets/
- Bundle index-DBKIQT7H.js from current vite build (~101MB assets)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 00:52:44 +08:00

9 lines
180 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-BuJVMq_j.js","assets/editor.api2-CLbMfXfG.js","assets/editor-DX2BVZF3.css","assets/lspLanguageFeatures-AwKtp3Of.js","assets/workers-DM14Vrt9.js","assets/htmlMode-CDXfyb8Q.js","assets/jsonMode-C-E2rrx5.js","assets/freemarker2-I9KwzPpB.js","assets/handlebars-Bl8H3RSk.js","assets/html-XpCEj8Vy.js","assets/javascript-CPxb41VQ.js","assets/typescript-ATS9A1uY.js","assets/liquid-jdbpKAFn.js","assets/mdx-CsoA5_Q2.js","assets/python-DE4WCjRF.js","assets/razor-D1hEheuN.js","assets/xml-CU3YPnZx.js","assets/yaml-Tf_s7n-n.js"])))=>i.map(i=>d[i]);
import{a as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as ee,s as f,t as p,u as m}from"./editor.api2-CLbMfXfG.js";import{t as h}from"./VDataTable-D03HOVsi.js";import{$n as g,$t as _,A as v,Ar as y,Br as b,Bt as x,Cr as S,Ct as te,Er as ne,F as re,Ft as ie,H as C,Ht as ae,I as w,Ir as T,J as oe,Jn as se,Lt as ce,M as E,N as D,Nr as le,Nt as O,Or as ue,P as de,Qn as k,R as A,Rn as j,Rr as fe,Rt as M,St as pe,Tt as me,V as he,Vt as ge,X as _e,Xn as ve,Y as ye,Yn as N,Zn as be,_ as xe,_r as Se,ar as P,b as F,br as Ce,bt as we,cn as Te,cr as Ee,ct as De,dn as Oe,dr as ke,er as I,fn as Ae,gr as je,hr as L,ir as R,jr as Me,jt as Ne,k as Pe,ln as Fe,lr as Ie,nn as Le,nr as z,or as Re,pr as ze,st as Be,t as B,tn as Ve,tr as V,ur as He,v as Ue,w as We,wt as Ge,x as Ke,xr as qe,xt as Je,y as Ye,yt as Xe,zn as Ze,zr as Qe,zt as $e}from"./index-CQLZMvG4.js";import{t as et}from"./workers-DM14Vrt9.js";import{t as tt}from"./monaco.contribution-BOVkBqX9.js";import{t as nt}from"./useSnackbar-D7YOfKok.js";import{a as rt}from"./VSelectionControl-BRJm0rJT.js";import{n as it,t as at}from"./VRow-6U6tNTht.js";import{t as ot}from"./VSpacer-BMS6wxq1.js";import{t as st}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ct}from"./VChip-HEBDrtTa.js";import{t as lt}from"./VDialog-0lL3B6am.js";import{t as ut}from"./VSelect-CGinFCUo.js";import{t as dt}from"./VCheckbox-BmQw0Iw-.js";import{n as ft,o as pt,r as mt,t as ht}from"./apiError-Dk5fW1qj.js";import{t as gt}from"./useServerList-2smWdD0v.js";import{i as _t}from"./validation-DMwOxx4a.js";import{t as vt}from"./VAlert-w1fH8_z8.js";function yt(e){return e.filter(e=>e.name&&e.name!==`.`&&e.name!==`..`).map(e=>{let t=e.type===`directory`||!!e.is_dir,n=e.type===`symlink`||!!e.is_link,r=0;if(!t&&!n&&e.size!=null){let t=typeof e.size==`number`?e.size:parseInt(String(e.size),10);r=Number.isFinite(t)?t:0}let i=`file`;return t?i=`directory`:n&&(i=`symlink`),{name:e.name,type:i,size:r,modified:e.modified??``,permissions:e.permissions??e.perms??``,owner:e.owner??``,group:e.group??``,mode_octal:e.mode_octal??``,link_target:e.link_target??null}})}function bt(e){if(Array.isArray(e))return{items:e};let t=e;return Array.isArray(t.items)?{items:t.items,error:t.error}:t.entries?.length?{items:yt(t.entries),error:t.error}:{items:t.items??[],error:t.error}}var xt=`/www/wwwroot`;function H(e){let t=(e??``).trim().replace(/\\/g,`/`);if(!t||t===`.`)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n=n.replace(/\/+/g,`/`),n.length>1&&n.endsWith(`/`)&&(n=n.slice(0,-1)),n}function St(e){return H(e).split(`/`).filter(Boolean)}function U(e,t){let n=H(e),r=t.replace(/\/+/g,``).trim();if(!r||r===`.`)return n;if(r===`..`){let e=St(n);return e.pop(),e.length?`/${e.join(`/`)}`:`/`}return n===`/`?`/${r}`:`${n}/${r}`}function Ct(e){let t=St(e);return t.length?(t.pop(),t.length?`/${t.join(`/`)}`:`/`):null}function wt(e){let t=e.trim();return t?t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)?`名称不能包含路径分隔符`:t===`.`||t===`..`?`非法名称`:!0:`名称不能为空`}function Tt(e){let t=St(H(e)),n=[{title:`/`,path:`/`,disabled:t.length===0}],r=``;for(let e=0;e<t.length;e++)r=U(r||`/`,t[e]),n.push({title:t[e],path:r,disabled:e===t.length-1});return n}var Et={key:1,class:`file-dir-tree-embedded-bar d-flex align-center px-2 py-1`},Dt={key:0,class:`text-caption text-medium-emphasis pa-3`},Ot={key:2,class:`text-caption text-medium-emphasis pa-3`},kt=[`onClick`],At=[`onClick`,`onContextmenu`],jt=st(Re({__name:`FileDirectoryTree`,props:{serverId:{},currentPath:{},rootPath:{},embedded:{type:Boolean}},emits:[`navigate`,`paste-target`],setup(e,{emit:t}){let n=e,r=nt(),i=k(()=>H(n.rootPath||`/www/wwwroot`)),a=t,o=y(!1),s=y(null),c=y(new Set),l=y(new Map);function u(e){let t=new Set(c.value);e(t),c.value=t}function d(e){let t=new Map(l.value);e(t),l.value=t}function ee(){c.value=new Set([i.value])}let f=k(()=>{let e=[],t=(n,r)=>{let i=l.value.get(n)??[];for(let n of i)e.push({...n,depth:r}),c.value.has(n.path)&&t(n.path,r+1)};return t(i.value,0),e});async function p(e){if(!n.serverId)return[];let{items:t}=bt(await M.post(`/sync/browse`,{server_id:n.serverId,path:H(e)}));return t.filter(e=>e.type===`directory`).sort((e,t)=>e.name.localeCompare(t.name)).map(t=>({path:U(e,t.name),name:t.name,depth:0,hasChildren:!0,loaded:!1}))}async function m(e){if(n.serverId){s.value=e;try{let t=await p(e);d(n=>{n.set(e,t);for(let e of t)n.has(e.path)||n.set(e.path,[])})}catch(e){r(e instanceof Error?e.message:`加载目录失败`,`error`)}finally{s.value=null}}}async function h(){if(!n.serverId)return;o.value=!0,l.value=new Map,ee();let e=i.value;try{await m(e),d(t=>{for(let n of t.get(e)??[])t.has(n.path)||t.set(n.path,[])})}finally{o.value=!1}}async function _(e){if(c.value.has(e.path)){u(t=>{t.delete(e.path)});return}l.value.has(e.path)||await m(e.path),u(t=>{t.add(e.path)})}function v(e){let t=H(e),n=i.value;t!==n&&u(e=>{if(e.add(n),!t.startsWith(n))return;let r=t.slice(n.length).replace(/^\//,``);if(!r)return;let i=n;for(let t of r.split(`/`).filter(Boolean))i=U(i,t),e.add(i)})}qe(()=>[n.serverId,i.value],([e])=>{e?h():(l.value=new Map,c.value=new Set)},{immediate:!0});async function x(e){if(!n.serverId)return;let t=H(e),r=i.value;if(v(t),l.value.has(r)||await m(r),t===r||!t.startsWith(r))return;let a=t.slice(r.length).replace(/^\//,``).split(`/`).filter(Boolean),o=r;for(let e of a)l.value.has(o)||await m(o),o=U(o,e)}return qe(()=>n.currentPath,e=>{e&&x(e)},{immediate:!0}),(t,n)=>(L(),I(D,{border:``,rounded:`lg`,class:fe([`file-dir-tree d-flex flex-column`,{"file-dir-tree--embedded":e.embedded}])},{default:S(()=>[e.embedded?(L(),z(`div`,Et,[P(_e,{size:`16`,class:`mr-1 text-medium-emphasis`},{default:S(()=>[...n[2]||=[R(`mdi-file-tree`,-1)]]),_:1}),n[3]||=g(`span`,{class:`text-caption text-medium-emphasis`},`目录`,-1),P(ot),P(A,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:h},null,8,[`disabled`])])):(L(),I(re,{key:0,class:`text-subtitle-2 py-2 px-3 d-flex align-center`},{default:S(()=>[P(_e,{size:`18`,class:`mr-1`},{default:S(()=>[...n[0]||=[R(`mdi-file-tree`,-1)]]),_:1}),n[1]||=R(` 目录 `,-1),P(ot),P(A,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:h},null,8,[`disabled`])]),_:1})),P(E),P(de,{class:`file-dir-tree-body pa-0 flex-grow-1`},{default:S(()=>[e.serverId?o.value?(L(),I(oe,{key:1,indeterminate:``})):f.value.length===0?(L(),z(`div`,Ot,` 暂无子目录(可点刷新) `)):(L(),I(We,{key:3,density:`compact`,nav:``,class:`py-0`},{default:S(()=>[(L(!0),z(ve,null,Se(f.value,t=>(L(),z(`div`,{key:t.path,class:`file-dir-tree-row d-flex align-center`,style:Qe({paddingLeft:`${8+t.depth*14}px`})},[g(`button`,{type:`button`,class:`file-dir-tree-toggle`,onClick:N(e=>_(t),[`stop`])},[s.value===t.path?(L(),I(ye,{key:0,indeterminate:``,size:`14`,width:`2`})):(L(),I(_e,{key:1,size:`16`},{default:S(()=>[R(b(c.value.has(t.path)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024))],8,kt),g(`button`,{type:`button`,class:fe([`file-dir-tree-label text-body-2 text-truncate`,{"file-dir-tree-label--active":T(H)(e.currentPath)===t.path}]),onClick:e=>a(`navigate`,t.path),onContextmenu:N(e=>a(`paste-target`,t.path),[`prevent`])},[P(_e,{size:`14`,class:`mr-1`},{default:S(()=>[...n[4]||=[R(`mdi-folder-outline`,-1)]]),_:1}),R(` `+b(t.name),1)],42,At)],4))),128))]),_:1})):(L(),z(`div`,Dt,`请先选择服务器`))]),_:1})]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-2ffce77b`]]);function Mt(e,t){try{let n=localStorage.getItem(e);if(!n)return t;let r=JSON.parse(n);if(typeof r.x==`number`&&typeof r.y==`number`&&typeof r.w==`number`&&typeof r.h==`number`)return r}catch{}return t}function Nt(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function Pt(e,t){let n=y(Mt(e,t)),r={px:0,py:0,rx:0,ry:0},i=!1,a={px:0,py:0,rw:0,rh:0},o=k(()=>({left:`${n.value.x}px`,top:`${n.value.y}px`,width:`${n.value.w}px`,height:`${n.value.h}px`}));function s(){let e=Math.min(window.innerWidth-16,1400),t=Math.min(window.innerHeight-16,900);n.value.w=Math.max(480,Math.min(n.value.w,e)),n.value.h=Math.max(320,Math.min(n.value.h,t)),n.value.x=Math.max(8,Math.min(n.value.x,window.innerWidth-n.value.w-8)),n.value.y=Math.max(8,Math.min(n.value.y,window.innerHeight-n.value.h-8))}function c(e){if(i){n.value.w=Math.max(480,a.rw+e.clientX-a.px),n.value.h=Math.max(320,a.rh+e.clientY-a.py),s();return}n.value.x=r.rx+e.clientX-r.px,n.value.y=r.ry+e.clientY-r.py,s()}function l(){i=!1,window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l),Nt(e,n.value)}function u(e){e.button===0&&(r={px:e.clientX,py:e.clientY,rx:n.value.x,ry:n.value.y},window.addEventListener(`mousemove`,c),window.addEventListener(`mouseup`,l))}function d(e){e.button===0&&(e.stopPropagation(),i=!0,a={px:e.clientX,py:e.clientY,rw:n.value.w,rh:n.value.h},window.addEventListener(`mousemove`,c),window.addEventListener(`mouseup`,l))}function ee(){n.value.x=Math.max(16,(window.innerWidth-n.value.w)/2),n.value.y=Math.max(16,(window.innerHeight-n.value.h)/2),Nt(e,n.value)}return ke(()=>{window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l)}),{rect:n,panelStyle:o,startDrag:u,startResize:d,centerOnScreen:ee,clampToViewport:s}}var Ft=i({cssDefaults:()=>zt,lessDefaults:()=>Vt,scssDefaults:()=>Bt}),It=class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},Lt={validate:!0,lint:{compatibleVendorPrefixes:`ignore`,vendorPrefix:`warning`,duplicateProperties:`warning`,emptyRules:`warning`,importStatement:`ignore`,boxModel:`ignore`,universalSelector:`ignore`,zeroUnits:`ignore`,fontFaceProperties:`warning`,hexColorLength:`error`,argumentsInColorFunction:`error`,unknownProperties:`warning`,ieHack:`ignore`,unknownVendorSpecificProperties:`ignore`,propertyIgnoredDueToDisplay:`warning`,important:`ignore`,float:`ignore`,idSelector:`ignore`},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:`collapse`,maxPreserveNewLines:void 0,preserveNewLines:!0}},Rt={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},zt=new It(`css`,Lt,Rt),Bt=new It(`scss`,Lt,Rt),Vt=new It(`less`,Lt,Rt);function Ht(){return O(()=>import(`./cssMode-BuJVMq_j.js`),__vite__mapDeps([0,1,2,3,4]))}a.onLanguage(`less`,()=>{Ht().then(e=>e.setupMode(Vt))}),a.onLanguage(`scss`,()=>{Ht().then(e=>e.setupMode(Bt))}),a.onLanguage(`css`,()=>{Ht().then(e=>e.setupMode(zt))});var Ut=i({handlebarDefaults:()=>$t,handlebarLanguageService:()=>Qt,htmlDefaults:()=>Zt,htmlLanguageService:()=>Xt,razorDefaults:()=>tn,razorLanguageService:()=>en,registerHTMLLanguageService:()=>rn}),Wt=class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},Gt={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:`default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var`,contentUnformatted:`pre`,indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:`head, body, /html`,wrapAttributes:`auto`},suggest:{},data:{useDefaultDataProvider:!0}};function Kt(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===qt,documentFormattingEdits:e===qt,documentRangeFormattingEdits:e===qt}}var qt=`html`,Jt=`handlebars`,Yt=`razor`,Xt=rn(qt,Gt,Kt(qt)),Zt=Xt.defaults,Qt=rn(Jt,Gt,Kt(Jt)),$t=Qt.defaults,en=rn(Yt,Gt,Kt(Yt)),tn=en.defaults;function nn(){return O(()=>import(`./htmlMode-CDXfyb8Q.js`),__vite__mapDeps([5,1,2,3,4]))}function rn(e,t=Gt,n=Kt(e)){let r=new Wt(e,t,n),i,o=a.onLanguage(e,async()=>{i=(await nn()).setupMode(r)});return{defaults:r,dispose(){o.dispose(),i?.dispose(),i=void 0}}}var an=i({getWorker:()=>sn,jsonDefaults:()=>on}),on=new class{constructor(e,t,n){this._onDidChange=new l,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}(`json`,{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:`warning`,schemaValidation:`warning`,comments:`error`,trailingCommas:`error`},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0}),sn=()=>cn().then(e=>e.getWorker());function cn(){return O(()=>import(`./jsonMode-C-E2rrx5.js`),__vite__mapDeps([6,1,2,3,4]))}a.register({id:`json`,extensions:[`.json`,`.bowerrc`,`.jshintrc`,`.jscsrc`,`.eslintrc`,`.babelrc`,`.har`],aliases:[`JSON`,`json`],mimetypes:[`application/json`]}),a.onLanguage(`json`,()=>{cn().then(e=>e.setupMode(on))});var ln={},un={},dn=class e{static getOrCreate(t){return un[t]||(un[t]=new e(t)),un[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,ln[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function W(e){let t=e.id;ln[t]=e,a.register(e);let n=dn.getOrCreate(t);a.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),a.onLanguageEncountered(t,async()=>{let e=await n.load();a.setLanguageConfiguration(t,e.conf)})}W({id:`abap`,extensions:[`.abap`],aliases:[`abap`,`ABAP`],loader:()=>O(()=>import(`./abap-08VXUWAP.js`),[])}),W({id:`apex`,extensions:[`.cls`],aliases:[`Apex`,`apex`],mimetypes:[`text/x-apex-source`,`text/x-apex`],loader:()=>O(()=>import(`./apex-BWPQTe0t.js`),[])}),W({id:`azcli`,extensions:[`.azcli`],aliases:[`Azure CLI`,`azcli`],loader:()=>O(()=>import(`./azcli-Bc_sGQ0U.js`),[])}),W({id:`bat`,extensions:[`.bat`,`.cmd`],aliases:[`Batch`,`bat`],loader:()=>O(()=>import(`./bat-i0X4ZdIN.js`),[])}),W({id:`bicep`,extensions:[`.bicep`],aliases:[`Bicep`],loader:()=>O(()=>import(`./bicep-B5-_aFwp.js`),[])}),W({id:`cameligo`,extensions:[`.mligo`],aliases:[`Cameligo`],loader:()=>O(()=>import(`./cameligo-DMUM7wLl.js`),[])}),W({id:`clojure`,extensions:[`.clj`,`.cljs`,`.cljc`,`.edn`],aliases:[`clojure`,`Clojure`],loader:()=>O(()=>import(`./clojure-Cm7r79vr.js`),[])}),W({id:`coffeescript`,extensions:[`.coffee`],aliases:[`CoffeeScript`,`coffeescript`,`coffee`],mimetypes:[`text/x-coffeescript`,`text/coffeescript`],loader:()=>O(()=>import(`./coffee-Ba7i2nA0.js`),[])}),W({id:`c`,extensions:[`.c`,`.h`],aliases:[`C`,`c`],loader:()=>O(()=>import(`./cpp-C7h46wYY.js`),[])}),W({id:`cpp`,extensions:[`.cpp`,`.cc`,`.cxx`,`.hpp`,`.hh`,`.hxx`],aliases:[`C++`,`Cpp`,`cpp`],loader:()=>O(()=>import(`./cpp-C7h46wYY.js`),[])}),W({id:`csharp`,extensions:[`.cs`,`.csx`,`.cake`],aliases:[`C#`,`csharp`],loader:()=>O(()=>import(`./csharp-BKxtCVv1.js`),[])}),W({id:`csp`,extensions:[`.csp`],aliases:[`CSP`,`csp`],loader:()=>O(()=>import(`./csp-bTuwJoIa.js`),[])}),W({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>O(()=>import(`./css-DIMkf-bt.js`),[])}),W({id:`cypher`,extensions:[`.cypher`,`.cyp`],aliases:[`Cypher`,`OpenCypher`],loader:()=>O(()=>import(`./cypher-CVaqCwHa.js`),[])}),W({id:`dart`,extensions:[`.dart`],aliases:[`Dart`,`dart`],mimetypes:[`text/x-dart-source`,`text/x-dart`],loader:()=>O(()=>import(`./dart-onAF5SnQ.js`),[])}),W({id:`dockerfile`,extensions:[`.dockerfile`],filenames:[`Dockerfile`],aliases:[`Dockerfile`],loader:()=>O(()=>import(`./dockerfile-DZFCIeNp.js`),[])}),W({id:`ecl`,extensions:[`.ecl`],aliases:[`ECL`,`Ecl`,`ecl`],loader:()=>O(()=>import(`./ecl-D05T4iGw.js`),[])}),W({id:`elixir`,extensions:[`.ex`,`.exs`],aliases:[`Elixir`,`elixir`,`ex`],loader:()=>O(()=>import(`./elixir-6RTg0lbw.js`),[])}),W({id:`flow9`,extensions:[`.flow`],aliases:[`Flow9`,`Flow`,`flow9`,`flow`],loader:()=>O(()=>import(`./flow9-C5_-GSwl.js`),[])}),W({id:`fsharp`,extensions:[`.fs`,`.fsi`,`.ml`,`.mli`,`.fsx`,`.fsscript`],aliases:[`F#`,`FSharp`,`fsharp`],loader:()=>O(()=>import(`./fsharp-C8Ef5oNN.js`),[])}),W({id:`freemarker2`,extensions:[`.ftl`,`.ftlh`,`.ftlx`],aliases:[`FreeMarker2`,`Apache FreeMarker2`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationDollar),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-angle.interpolation-dollar`,aliases:[`FreeMarker2 (Angle/Dollar)`,`Apache FreeMarker2 (Angle/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAngleInterpolationDollar),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-bracket.interpolation-dollar`,aliases:[`FreeMarker2 (Bracket/Dollar)`,`Apache FreeMarker2 (Bracket/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagBracketInterpolationDollar),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-angle.interpolation-bracket`,aliases:[`FreeMarker2 (Angle/Bracket)`,`Apache FreeMarker2 (Angle/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAngleInterpolationBracket),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-bracket.interpolation-bracket`,aliases:[`FreeMarker2 (Bracket/Bracket)`,`Apache FreeMarker2 (Bracket/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagBracketInterpolationBracket),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-auto.interpolation-dollar`,aliases:[`FreeMarker2 (Auto/Dollar)`,`Apache FreeMarker2 (Auto/Dollar)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationDollar),__vite__mapDeps([7,1,2]))}),W({id:`freemarker2.tag-auto.interpolation-bracket`,aliases:[`FreeMarker2 (Auto/Bracket)`,`Apache FreeMarker2 (Auto/Bracket)`],loader:()=>O(()=>import(`./freemarker2-I9KwzPpB.js`).then(e=>e.TagAutoInterpolationBracket),__vite__mapDeps([7,1,2]))}),W({id:`go`,extensions:[`.go`],aliases:[`Go`],loader:()=>O(()=>import(`./go-C-y9NEjX.js`),[])}),W({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>O(()=>import(`./graphql-fmXr3nnJ.js`),[])}),W({id:`handlebars`,extensions:[`.handlebars`,`.hbs`],aliases:[`Handlebars`,`handlebars`,`hbs`],mimetypes:[`text/x-handlebars-template`],loader:()=>O(()=>import(`./handlebars-Bl8H3RSk.js`),__vite__mapDeps([8,1,2]))}),W({id:`hcl`,extensions:[`.tf`,`.tfvars`,`.hcl`],aliases:[`Terraform`,`tf`,`HCL`,`hcl`],loader:()=>O(()=>import(`./hcl-CpzslTdj.js`),[])}),W({id:`html`,extensions:[`.html`,`.htm`,`.shtml`,`.xhtml`,`.mdoc`,`.jsp`,`.asp`,`.aspx`,`.jshtm`],aliases:[`HTML`,`htm`,`html`,`xhtml`],mimetypes:[`text/html`,`text/x-jshtm`,`text/template`,`text/ng-template`],loader:()=>O(()=>import(`./html-XpCEj8Vy.js`),__vite__mapDeps([9,1,2]))}),W({id:`ini`,extensions:[`.ini`,`.properties`,`.gitconfig`],filenames:[`config`,`.gitattributes`,`.gitconfig`,`.editorconfig`],aliases:[`Ini`,`ini`],loader:()=>O(()=>import(`./ini-sBoK_t0W.js`),[])}),W({id:`java`,extensions:[`.java`,`.jav`],aliases:[`Java`,`java`],mimetypes:[`text/x-java-source`,`text/x-java`],loader:()=>O(()=>import(`./java-BEtHBSE6.js`),[])}),W({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>O(()=>import(`./javascript-CPxb41VQ.js`),__vite__mapDeps([10,11,1,2]))}),W({id:`julia`,extensions:[`.jl`],aliases:[`julia`,`Julia`],loader:()=>O(()=>import(`./julia-Bri6UV-V.js`),[])}),W({id:`kotlin`,extensions:[`.kt`,`.kts`],aliases:[`Kotlin`,`kotlin`],mimetypes:[`text/x-kotlin-source`,`text/x-kotlin`],loader:()=>O(()=>import(`./kotlin-BOotOW0E.js`),[])}),W({id:`less`,extensions:[`.less`],aliases:[`Less`,`less`],mimetypes:[`text/x-less`,`text/less`],loader:()=>O(()=>import(`./less-B9JPFI3C.js`),[])}),W({id:`lexon`,extensions:[`.lex`],aliases:[`Lexon`],loader:()=>O(()=>import(`./lexon-CfSJPG6W.js`),[])}),W({id:`lua`,extensions:[`.lua`],aliases:[`Lua`,`lua`],loader:()=>O(()=>import(`./lua-CsQS60Ue.js`),[])}),W({id:`liquid`,extensions:[`.liquid`,`.html.liquid`],aliases:[`Liquid`,`liquid`],mimetypes:[`application/liquid`],loader:()=>O(()=>import(`./liquid-jdbpKAFn.js`),__vite__mapDeps([12,1,2]))}),W({id:`m3`,extensions:[`.m3`,`.i3`,`.mg`,`.ig`],aliases:[`Modula-3`,`Modula3`,`modula3`,`m3`],loader:()=>O(()=>import(`./m3-D-oSqn_W.js`),[])}),W({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>O(()=>import(`./markdown-Cimd5fb3.js`),[])}),W({id:`mdx`,extensions:[`.mdx`],aliases:[`MDX`,`mdx`],loader:()=>O(()=>import(`./mdx-CsoA5_Q2.js`),__vite__mapDeps([13,1,2]))}),W({id:`mips`,extensions:[`.s`],aliases:[`MIPS`,`MIPS-V`],mimetypes:[`text/x-mips`,`text/mips`,`text/plaintext`],loader:()=>O(()=>import(`./mips-CIPQ_RoX.js`),[])}),W({id:`msdax`,extensions:[`.dax`,`.msdax`],aliases:[`DAX`,`MSDAX`],loader:()=>O(()=>import(`./msdax-DauUninz.js`),[])}),W({id:`mysql`,extensions:[],aliases:[`MySQL`,`mysql`],loader:()=>O(()=>import(`./mysql-SOo6toE5.js`),[])}),W({id:`objective-c`,extensions:[`.m`],aliases:[`Objective-C`],loader:()=>O(()=>import(`./objective-c-FvmIjYaQ.js`),[])}),W({id:`pascal`,extensions:[`.pas`,`.p`,`.pp`],aliases:[`Pascal`,`pas`],mimetypes:[`text/x-pascal-source`,`text/x-pascal`],loader:()=>O(()=>import(`./pascal-DrH0SRf2.js`),[])}),W({id:`pascaligo`,extensions:[`.ligo`],aliases:[`Pascaligo`,`ligo`],loader:()=>O(()=>import(`./pascaligo-D-ptJ9y-.js`),[])}),W({id:`perl`,extensions:[`.pl`,`.pm`],aliases:[`Perl`,`pl`],loader:()=>O(()=>import(`./perl-oz_6vUea.js`),[])}),W({id:`pgsql`,extensions:[],aliases:[`PostgreSQL`,`postgres`,`pg`,`postgre`],loader:()=>O(()=>import(`./pgsql-DTj74zXo.js`),[])}),W({id:`php`,extensions:[`.php`,`.php4`,`.php5`,`.phtml`,`.ctp`],aliases:[`PHP`,`php`],mimetypes:[`application/x-php`],loader:()=>O(()=>import(`./php-nr791fC2.js`),[])}),W({id:`pla`,extensions:[`.pla`],loader:()=>O(()=>import(`./pla-CopQ2nXW.js`),[])}),W({id:`postiats`,extensions:[`.dats`,`.sats`,`.hats`],aliases:[`ATS`,`ATS/Postiats`],loader:()=>O(()=>import(`./postiats-43DmfD33.js`),[])}),W({id:`powerquery`,extensions:[`.pq`,`.pqm`],aliases:[`PQ`,`M`,`Power Query`,`Power Query M`],loader:()=>O(()=>import(`./powerquery-D3hlyOfw.js`),[])}),W({id:`powershell`,extensions:[`.ps1`,`.psm1`,`.psd1`],aliases:[`PowerShell`,`powershell`,`ps`,`ps1`],loader:()=>O(()=>import(`./powershell-DmHpPYUd.js`),[])}),W({id:`proto`,extensions:[`.proto`],aliases:[`protobuf`,`Protocol Buffers`],loader:()=>O(()=>import(`./protobuf-C531GsRP.js`),[])}),W({id:`pug`,extensions:[`.jade`,`.pug`],aliases:[`Pug`,`Jade`,`jade`],loader:()=>O(()=>import(`./pug-Z5eAx3Zn.js`),[])}),W({id:`python`,extensions:[`.py`,`.rpy`,`.pyw`,`.cpy`,`.gyp`,`.gypi`],aliases:[`Python`,`py`],firstLine:`^#!/.*\\bpython[0-9.-]*\\b`,loader:()=>O(()=>import(`./python-DE4WCjRF.js`),__vite__mapDeps([14,1,2]))}),W({id:`qsharp`,extensions:[`.qs`],aliases:[`Q#`,`qsharp`],loader:()=>O(()=>import(`./qsharp-DkqhCAOL.js`),[])}),W({id:`r`,extensions:[`.r`,`.rhistory`,`.rmd`,`.rprofile`,`.rt`],aliases:[`R`,`r`],loader:()=>O(()=>import(`./r-BwWrilGY.js`),[])}),W({id:`razor`,extensions:[`.cshtml`],aliases:[`Razor`,`razor`],mimetypes:[`text/x-cshtml`],loader:()=>O(()=>import(`./razor-D1hEheuN.js`),__vite__mapDeps([15,1,2]))}),W({id:`redis`,extensions:[`.redis`],aliases:[`redis`],loader:()=>O(()=>import(`./redis-ClamHrr6.js`),[])}),W({id:`redshift`,extensions:[],aliases:[`Redshift`,`redshift`],loader:()=>O(()=>import(`./redshift-DT7zqm-g.js`),[])}),W({id:`restructuredtext`,extensions:[`.rst`],aliases:[`reStructuredText`,`restructuredtext`],loader:()=>O(()=>import(`./restructuredtext-BYgofb2h.js`),[])}),W({id:`ruby`,extensions:[`.rb`,`.rbx`,`.rjs`,`.gemspec`,`.pp`],filenames:[`rakefile`,`Gemfile`],aliases:[`Ruby`,`rb`],loader:()=>O(()=>import(`./ruby-DezsRK8O.js`),[])}),W({id:`rust`,extensions:[`.rs`,`.rlib`],aliases:[`Rust`,`rust`],loader:()=>O(()=>import(`./rust-DdL9SqIa.js`),[])}),W({id:`sb`,extensions:[`.sb`],aliases:[`Small Basic`,`sb`],loader:()=>O(()=>import(`./sb-CcwsVR0C.js`),[])}),W({id:`scala`,extensions:[`.scala`,`.sc`,`.sbt`],aliases:[`Scala`,`scala`,`SBT`,`Sbt`,`sbt`,`Dotty`,`dotty`],mimetypes:[`text/x-scala-source`,`text/x-scala`,`text/x-sbt`,`text/x-dotty`],loader:()=>O(()=>import(`./scala-DHpiXF5c.js`),[])}),W({id:`scheme`,extensions:[`.scm`,`.ss`,`.sch`,`.rkt`],aliases:[`scheme`,`Scheme`],loader:()=>O(()=>import(`./scheme-BeGwcela.js`),[])}),W({id:`scss`,extensions:[`.scss`],aliases:[`Sass`,`sass`,`scss`],mimetypes:[`text/x-scss`,`text/scss`],loader:()=>O(()=>import(`./scss-gp-XZpBa.js`),[])}),W({id:`shell`,extensions:[`.sh`,`.bash`],aliases:[`Shell`,`sh`],loader:()=>O(()=>import(`./shell-CC2rA5mh.js`),[])}),W({id:`sol`,extensions:[`.sol`],aliases:[`sol`,`solidity`,`Solidity`],loader:()=>O(()=>import(`./solidity-BEEn4gHE.js`),[])}),W({id:`aes`,extensions:[`.aes`],aliases:[`aes`,`sophia`,`Sophia`],loader:()=>O(()=>import(`./sophia-CRfGWb83.js`),[])}),W({id:`sparql`,extensions:[`.rq`],aliases:[`sparql`,`SPARQL`],loader:()=>O(()=>import(`./sparql-D_Lu-MrJ.js`),[])}),W({id:`sql`,extensions:[`.sql`],aliases:[`SQL`],loader:()=>O(()=>import(`./sql-NEE52Syq.js`),[])}),W({id:`st`,extensions:[`.st`,`.iecst`,`.iecplc`,`.lc3lib`,`.TcPOU`,`.TcDUT`,`.TcGVL`,`.TcIO`],aliases:[`StructuredText`,`scl`,`stl`],loader:()=>O(()=>import(`./st-DbInun42.js`),[])}),W({id:`swift`,aliases:[`Swift`,`swift`],extensions:[`.swift`],mimetypes:[`text/swift`],loader:()=>O(()=>import(`./swift-Bxkupp3x.js`),[])}),W({id:`systemverilog`,extensions:[`.sv`,`.svh`],aliases:[`SV`,`sv`,`SystemVerilog`,`systemverilog`],loader:()=>O(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),W({id:`verilog`,extensions:[`.v`,`.vh`],aliases:[`V`,`v`,`Verilog`,`verilog`],loader:()=>O(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),W({id:`tcl`,extensions:[`.tcl`],aliases:[`tcl`,`Tcl`,`tcltk`,`TclTk`,`tcl/tk`,`Tcl/Tk`],loader:()=>O(()=>import(`./tcl-DISqw1ZD.js`),[])}),W({id:`twig`,extensions:[`.twig`],aliases:[`Twig`,`twig`],mimetypes:[`text/x-twig`],loader:()=>O(()=>import(`./twig-De2hgUGE.js`),[])}),W({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>O(()=>import(`./typescript-ATS9A1uY.js`),__vite__mapDeps([11,1,2]))}),W({id:`typespec`,extensions:[`.tsp`],aliases:[`TypeSpec`],loader:()=>O(()=>import(`./typespec-B8J7ngcE.js`),[])}),W({id:`vb`,extensions:[`.vb`],aliases:[`Visual Basic`,`vb`],loader:()=>O(()=>import(`./vb-DV3o63ZY.js`),[])}),W({id:`wgsl`,extensions:[`.wgsl`],aliases:[`WebGPU Shading Language`,`WGSL`,`wgsl`],loader:()=>O(()=>import(`./wgsl-DpFanUEy.js`),[])}),W({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)`,aliases:[`XML`,`xml`],mimetypes:[`text/xml`,`application/xml`,`application/xaml+xml`,`application/xml-dtd`],loader:()=>O(()=>import(`./xml-CU3YPnZx.js`),__vite__mapDeps([16,1,2]))}),W({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>O(()=>import(`./yaml-Tf_s7n-n.js`),__vite__mapDeps([17,1,2]))});var fn=i({MonacoLspClient:()=>sa,WebSocketTransport:()=>da,createTransportToIFrame:()=>ma,createTransportToWorker:()=>pa}),pn=Object.defineProperty,mn=(e,t,n)=>t in e?pn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t,n)=>mn(e,typeof t==`symbol`?t:t+``,n),hn,gn,_n,vn,yn;function bn(e){return e.method!==void 0}var xn;(function(e){function t(e){return e}e.create=t})(xn||={});var Sn;(function(e){e.parseError=-32700,e.invalidRequest=-32600,e.methodNotFound=-32601,e.invalidParams=-32602,e.internalError=-32603;function t(e){return-32099<=e&&e<=-32e3}e.isServerError=t;function n(e){if(!t(e))throw Error(`Invalid range for a server error.`);return e}e.serverError=n,e.unexpectedServerError=-32e3;function r(e){return!0}e.isApplicationError=r;function i(e){return e}e.applicationError=i,e.genericApplicationError=-320100})(Sn||={});var Cn=class{constructor(){G(this,`listeners`,new Set),G(this,`event`,e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},wn=class{constructor(e){G(this,`_value`),G(this,`eventEmitter`),this._value=e,this.eventEmitter=new Cn}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.eventEmitter.fire(e))}get onChange(){return this.eventEmitter.event}};function Tn(e,t){let n=setTimeout(t,e);return{dispose:()=>clearTimeout(n)}}function En(e,t,n){return e instanceof Set?(e.add(t),{dispose:()=>e.delete(t)}):(e.set(t,n),{dispose:()=>e.delete(t)})}var Dn=class{constructor(){G(this,`_state`,`none`),G(this,`promise`),G(this,`resolve`,()=>{}),G(this,`reject`,()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},On=(hn=class{constructor(){G(this,`_unprocessedMessages`,[]),G(this,`_messageListener`),G(this,`id`,hn.id++),G(this,`_state`,new wn({state:`open`})),G(this,`state`,this._state)}setListener(e){if(this._messageListener=e,e)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){let e=this._unprocessedMessages.shift();this._messageListener(e)}}send(e){return this._sendImpl(e)}_dispatchReceivedMessage(e){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(e):this._unprocessedMessages.push(e)}_onConnectionClosed(){this._state.value={state:`closed`,error:void 0}}log(e){return new kn(this,e??new An)}},G(hn,`id`,0),hn),kn=class{constructor(e,t){G(this,`baseStream`),G(this,`logger`),this.baseStream=e,this.logger=t}get state(){return this.baseStream.state}setListener(e){if(e===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(t=>{this.logger.log(this.baseStream,`incoming`,t),e(t)})}send(e){return this.logger.log(this.baseStream,`outgoing`,e),this.baseStream.send(e)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},An=class{log(e,t,n){console.log(`${t===`incoming`?`<-`:`->`} [${e.toString()}] ${JSON.stringify(n)}`)}},jn=class e{constructor(e){G(this,`connect`),this.connect=e}mapContext(t){return new e(e=>this.connect(e?Mn(e,t):void 0))}};function Mn(e,t){return{handleNotification:(n,r)=>e.handleNotification(n,t(r)),handleRequest:(n,r,i)=>e.handleRequest(n,r,t(i))}}var Nn=class e{constructor(e,t,n){G(this,`_stream`),G(this,`_listener`),G(this,`_logger`),G(this,`_unprocessedResponses`,new Map),G(this,`_lastUsedRequestId`,0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(e=>{bn(e)?e.id===void 0?this._processNotification(e):this._processRequest(e):this._processResponse(e)})}static createChannel(t,n){let r=!1;return new jn(i=>{if(r)throw Error(`A channel to the stream ${t} was already constructed!`);return r=!0,new e(t,i,n)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw Error();if(!this._listener){this._logger&&this._logger.debug({text:`Notification ignored`,message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw Error();let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(n){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${n}`,message:e,exception:n}),t={error:{code:Sn.internalError,message:`An unexpected exception was thrown.`,data:void 0}}}else this._logger&&this._logger.debug({text:`Received request even though not listening for requests`,message:e}),t={error:{code:Sn.methodNotFound,message:`This endpoint does not listen for requests or notifications.`,data:void 0}};let n;n=`result`in t?{jsonrpc:`2.0`,id:e.id,result:t.result}:{jsonrpc:`2.0`,id:e.id,error:t.error},await this._stream.send(n)}_processResponse(e){let t=``+e.id,n=this._unprocessedResponses.get(t);if(!n){this._logger&&this._logger.debug({text:`Got an unexpected response message`,message:e});return}this._unprocessedResponses.delete(t),n(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,n){let r={jsonrpc:`2.0`,id:this._newRequestId(),method:e.method,params:e.params||void 0};return n&&n(r.id),new Promise((e,t)=>{let n=``+r.id;this._unprocessedResponses.set(n,n=>{`result`in n?e({result:n.result}):(n.error||t(Error(`Response had neither 'result' nor 'error' field set.`)),e({error:n.error}))}),this._stream.send(r).then(void 0,e=>{this._unprocessedResponses.delete(n),t(e)})})}sendNotification(e,t){let n={jsonrpc:`2.0`,id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(n)}toString(){return`StreamChannel/`+this._stream.toString()}},Pn;(function(e){function t(){return{deserializeFromJson:e=>({hasErrors:!1,value:e}),serializeToJson:e=>e}}e.sAny=t;function n(){return{deserializeFromJson:e=>({hasErrors:!1,value:{}}),serializeToJson:e=>({})}}e.sEmptyObject=n;function r(){return{deserializeFromJson:e=>({hasErrors:!1,value:void 0}),serializeToJson:e=>null}}e.sVoidFromNull=r})(Pn||={});var Fn=Symbol(`OptionalMethodNotFound`),In=class{contextualize(e){return new Ln(this,e)}},Ln=class extends In{constructor(e,t){super(),G(this,`underylingTypedChannel`),G(this,`converters`),this.underylingTypedChannel=e,this.converters=t}async request(e,t,n){let r=await this.converters.getSendContext(n);return this.underylingTypedChannel.request(e,t,r)}async notify(e,t,n){let r=await this.converters.getSendContext(n);return this.underylingTypedChannel.notify(e,t,r)}registerNotificationHandler(e,t){return this.underylingTypedChannel.registerNotificationHandler(e,async(e,n)=>await t(e,await this.converters.getNewContext(n)))}registerRequestHandler(e,t){return this.underylingTypedChannel.registerRequestHandler(e,async(e,n,r)=>await t(e,n,await this.converters.getNewContext(r)))}},Rn=class e extends In{constructor(e,t={}){super(),G(this,`channelCtor`),G(this,`_requestSender`),G(this,`_handler`,new Map),G(this,`_unknownNotificationHandler`,new Set),G(this,`_timeout`),G(this,`sendExceptionDetails`,!1),G(this,`_logger`),G(this,`listeningDeferred`,new Dn),G(this,`onListening`,this.listeningDeferred.promise),G(this,`_requestDidErrorEventEmitter`,new Cn),G(this,`onRequestDidError`,this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=Tn(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(t,n={}){return new e(Nn.createChannel(t,n.logger),n)}startListen(){if(this._requestSender)throw Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&=(this._timeout.dispose(),void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,n)=>this.handleRequest(e,t,n),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,n){let r=this._handler.get(e.method);if(!r)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:Sn.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(r.kind!=`request`){let t=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e}}),{error:{code:Sn.invalidRequest,message:t,data:{method:e.method}}}}let i=r.requestType.paramsSerializer.deserializeFromJson(e.params);if(i.hasErrors){let t=`Got invalid params: ${i.errorMessage}`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e,errorMessage:i.errorMessage}}),{error:{code:Sn.invalidParams,message:t,data:{errors:i.errorMessage}}}}else{let a=i.value,o;try{let e=await r.handler(a,t,n);if(`error`in e||`errorMessage`in e){let t=e.error?r.requestType.errorSerializer.serializeToJson(e.error):void 0;o={error:{code:e.errorCode||Sn.genericApplicationError,message:e.errorMessage||`An error was returned`,data:t}}}else o={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof Bn?o={error:{code:t.code,message:t.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${t}.`,exception:t,data:{requestObject:e}}),o={error:{code:Sn.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${t}.`:`Server has thrown an unexpected exception`}})}return o}}async handleNotification(e,t){let n=this._handler.get(e.method);if(!n){for(let t of this._unknownNotificationHandler)t(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(n.kind!=`notification`){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}let r=n.notificationType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${r}`,data:{requestObject:e,errorMessage:r.errorMessage}});return}let i=r.value;for(let r of n.handlers)try{r(i,t)}catch(t){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${t}.`,exception:t,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return En(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return En(this._handler,e.method,{kind:`request`,requestType:e,handler:t})}registerNotificationHandler(e,t){let n=this._handler.get(e.method);if(!n)n={kind:`notification`,notificationType:e,handlers:new Set},this._handler.set(e.method,n);else{if(n.kind!==`notification`)throw Error(`Method "${e.method}" was already registered as request handler.`);if(n.notificationType!==e)throw Error(`Method "${e.method}" was registered for a different type.`)}return En(n.handlers,t)}getRegisteredTypes(){let e=[];for(let t of this._handler.values())t.kind===`notification`?e.push(t.notificationType):t.kind===`request`&&e.push(t.requestType);return e}async request(e,t,n){if(!this.checkChannel(this._requestSender))throw Error(`Impossible`);let r=e.paramsSerializer.serializeToJson(t);zn(r);let i=await this._requestSender.sendRequest({method:e.method,params:r},n);if(`error`in i){if(e.isOptional&&i.error.code===Sn.methodNotFound)return Fn;let t;if(i.error.data!==void 0){let n=e.errorSerializer.deserializeFromJson(i.error.data);if(n.hasErrors)throw Error(n.errorMessage);t=n.value}else t=void 0;let n=new Bn(i.error.message,t,i.error.code);throw this._requestDidErrorEventEmitter.fire({error:n}),n}else{let t=e.resultSerializer.deserializeFromJson(i.result);if(t.hasErrors)throw Error(`Could not deserialize response: `+t.errorMessage+`
${JSON.stringify(i,null,2)}`);return t.value}}async notify(e,t,n){if(!this.checkChannel(this._requestSender))throw Error();let r=e.paramsSerializer.serializeToJson(t);zn(r),this._requestSender.sendNotification({method:e.method,params:r},n)}};function zn(e){if(e!==null&&Array.isArray(e)&&typeof e!=`object`)throw Error(`Invalid value! Only null, array and object is allowed.`)}var Bn=class e extends Error{constructor(t,n,r=Sn.genericApplicationError){super(t),G(this,`data`),G(this,`code`),this.data=n,this.code=r,Object.setPrototypeOf(this,e.prototype)}},Vn=class e{constructor(e,t,n,r,i=!1){G(this,`method`),G(this,`paramsSerializer`),G(this,`resultSerializer`),G(this,`errorSerializer`),G(this,`isOptional`),G(this,`kind`,`request`),this.method=e,this.paramsSerializer=t,this.resultSerializer=n,this.errorSerializer=r,this.isOptional=i}withMethod(t){return new e(t,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new e(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},Hn=class e{constructor(e,t){G(this,`method`),G(this,`paramsSerializer`),G(this,`kind`,`notification`),this.method=e,this.paramsSerializer=t}withMethod(t){return new e(t,this.paramsSerializer)}};function K(e){return new Vn((e||{}).method,Pn.sAny(),Pn.sAny(),Pn.sAny())}function q(e){return new Hn((e||{}).method,Pn.sAny())}var Un=(gn=Symbol(),_n=class{constructor(e){G(this,`error`),G(this,gn),this.error=e}},G(_n,`factory`,e=>new _n(e)),_n);function Wn(e){let t=Gn(e.server),n=Gn(e.client);return new Kn(e.tags||[],t,n)}function Gn(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.method?r.method:n;t[n]=r.withMethod(e)}return t}var Kn=class e{constructor(e=[],t,n){G(this,`tags`),G(this,`server`),G(this,`client`),this.tags=e,this.server=t,this.client=n}_onlyDesignTime(){return Error(`This property is not meant to be accessed at runtime`)}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,n,r){let i=this.buildCounterpart(e,n),a=this.registerHandlers(e,t,r,i);return{counterpart:i,dispose:()=>a.dispose()}}buildCounterpart(e,t){let n={};for(let[r,i]of Object.entries(t)){let t;t=i.kind===`request`?i.isOptional?async(t,n)=>{t===void 0&&(t={});try{return await e.request(i,t,n)}catch(e){if(e&&e.code===Sn.methodNotFound)return Fn;throw e}}:(t,n)=>(t===void 0&&(t={}),e.request(i,t,n)):(t,n)=>(t===void 0&&(t={}),e.notify(i,t,n)),n[r]=t}return n}registerHandlers(e,t,n,r){let i=[];for(let[a,o]of Object.entries(t))if(o.kind===`request`){let t=n[a];if(!t)continue;let s=this.createRequestHandler(r,t);i.push(e.registerRequestHandler(o,s))}else{let t=n[a];t&&i.push(e.registerNotificationHandler(o,(e,n)=>{t(e,{context:n,counterpart:r})}))}return{dispose:()=>i.forEach(e=>e.dispose())}}createRequestHandler(e,t){return async(n,r,i)=>{let a=await t(n,{context:i,counterpart:e,newErr:Un.factory,requestId:r});return a instanceof Un?a.error:{ok:a}}}static getServerFromStream(e,t,n,r){let i=Rn.fromTransport(t,n),{server:a}=e.getServer(i,r);return i.startListen(),{channel:i,server:a}}static registerServerToStream(e,t,n,r){let i=Rn.fromTransport(t,n),{client:a}=e.registerServer(i,r);return i.startListen(),{channel:i,client:a}}getServer(e,t){let{counterpart:n,dispose:r}=this.getInterface(e,this.client,this.server,t);return{server:n,dispose:r}}registerServer(e,t){let{counterpart:n,dispose:r}=this.getInterface(e,this.server,this.client,t);return{client:n,dispose:r}}withContext(){return new e(this.tags,this.server,this.client)}},qn=(function(e){return e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`,e})({}),J=(function(e){return e[e.File=1]=`File`,e[e.Module=2]=`Module`,e[e.Namespace=3]=`Namespace`,e[e.Package=4]=`Package`,e[e.Class=5]=`Class`,e[e.Method=6]=`Method`,e[e.Property=7]=`Property`,e[e.Field=8]=`Field`,e[e.Constructor=9]=`Constructor`,e[e.Enum=10]=`Enum`,e[e.Interface=11]=`Interface`,e[e.Function=12]=`Function`,e[e.Variable=13]=`Variable`,e[e.Constant=14]=`Constant`,e[e.String=15]=`String`,e[e.Number=16]=`Number`,e[e.Boolean=17]=`Boolean`,e[e.Array=18]=`Array`,e[e.Object=19]=`Object`,e[e.Key=20]=`Key`,e[e.Null=21]=`Null`,e[e.EnumMember=22]=`EnumMember`,e[e.Struct=23]=`Struct`,e[e.Event=24]=`Event`,e[e.Operator=25]=`Operator`,e[e.TypeParameter=26]=`TypeParameter`,e})({}),Jn=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),Yn=(function(e){return e[e.Type=1]=`Type`,e[e.Parameter=2]=`Parameter`,e})({}),Xn=(function(e){return e[e.None=0]=`None`,e[e.Full=1]=`Full`,e[e.Incremental=2]=`Incremental`,e})({}),Y=(function(e){return e[e.Text=1]=`Text`,e[e.Method=2]=`Method`,e[e.Function=3]=`Function`,e[e.Constructor=4]=`Constructor`,e[e.Field=5]=`Field`,e[e.Variable=6]=`Variable`,e[e.Class=7]=`Class`,e[e.Interface=8]=`Interface`,e[e.Module=9]=`Module`,e[e.Property=10]=`Property`,e[e.Unit=11]=`Unit`,e[e.Value=12]=`Value`,e[e.Enum=13]=`Enum`,e[e.Keyword=14]=`Keyword`,e[e.Snippet=15]=`Snippet`,e[e.Color=16]=`Color`,e[e.File=17]=`File`,e[e.Reference=18]=`Reference`,e[e.Folder=19]=`Folder`,e[e.EnumMember=20]=`EnumMember`,e[e.Constant=21]=`Constant`,e[e.Struct=22]=`Struct`,e[e.Event=23]=`Event`,e[e.Operator=24]=`Operator`,e[e.TypeParameter=25]=`TypeParameter`,e})({}),Zn=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),Qn=(function(e){return e[e.PlainText=1]=`PlainText`,e[e.Snippet=2]=`Snippet`,e})({}),$n=(function(e){return e[e.Text=1]=`Text`,e[e.Read=2]=`Read`,e[e.Write=3]=`Write`,e})({}),er=(function(e){return e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`,e})({}),tr=(function(e){return e.PlainText=`plaintext`,e.Markdown=`markdown`,e})({}),nr=(function(e){return e[e.Error=1]=`Error`,e[e.Warning=2]=`Warning`,e[e.Information=3]=`Information`,e[e.Hint=4]=`Hint`,e})({}),rr=(function(e){return e[e.Unnecessary=1]=`Unnecessary`,e[e.Deprecated=2]=`Deprecated`,e})({}),ir=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.TriggerForIncompleteCompletions=3]=`TriggerForIncompleteCompletions`,e})({}),ar=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.ContentChange=3]=`ContentChange`,e})({}),or=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.Automatic=2]=`Automatic`,e})({}),sr=(function(e){return e.Relative=`relative`,e})({}),X=class{constructor(e){this.method=e}},Z={textDocumentImplementation:new X(`textDocument/implementation`),textDocumentTypeDefinition:new X(`textDocument/typeDefinition`),textDocumentDocumentColor:new X(`textDocument/documentColor`),textDocumentColorPresentation:new X(`textDocument/colorPresentation`),textDocumentFoldingRange:new X(`textDocument/foldingRange`),textDocumentDeclaration:new X(`textDocument/declaration`),textDocumentSelectionRange:new X(`textDocument/selectionRange`),textDocumentPrepareCallHierarchy:new X(`textDocument/prepareCallHierarchy`),textDocumentSemanticTokensFull:new X(`textDocument/semanticTokens/full`),textDocumentSemanticTokensFullDelta:new X(`textDocument/semanticTokens/full/delta`),textDocumentLinkedEditingRange:new X(`textDocument/linkedEditingRange`),workspaceWillCreateFiles:new X(`workspace/willCreateFiles`),workspaceWillRenameFiles:new X(`workspace/willRenameFiles`),workspaceWillDeleteFiles:new X(`workspace/willDeleteFiles`),textDocumentMoniker:new X(`textDocument/moniker`),textDocumentPrepareTypeHierarchy:new X(`textDocument/prepareTypeHierarchy`),textDocumentInlineValue:new X(`textDocument/inlineValue`),textDocumentInlayHint:new X(`textDocument/inlayHint`),textDocumentDiagnostic:new X(`textDocument/diagnostic`),textDocumentInlineCompletion:new X(`textDocument/inlineCompletion`),textDocumentWillSaveWaitUntil:new X(`textDocument/willSaveWaitUntil`),textDocumentCompletion:new X(`textDocument/completion`),textDocumentHover:new X(`textDocument/hover`),textDocumentSignatureHelp:new X(`textDocument/signatureHelp`),textDocumentDefinition:new X(`textDocument/definition`),textDocumentReferences:new X(`textDocument/references`),textDocumentDocumentHighlight:new X(`textDocument/documentHighlight`),textDocumentDocumentSymbol:new X(`textDocument/documentSymbol`),textDocumentCodeAction:new X(`textDocument/codeAction`),workspaceSymbol:new X(`workspace/symbol`),textDocumentCodeLens:new X(`textDocument/codeLens`),textDocumentDocumentLink:new X(`textDocument/documentLink`),textDocumentFormatting:new X(`textDocument/formatting`),textDocumentRangeFormatting:new X(`textDocument/rangeFormatting`),textDocumentRangesFormatting:new X(`textDocument/rangesFormatting`),textDocumentOnTypeFormatting:new X(`textDocument/onTypeFormatting`),textDocumentRename:new X(`textDocument/rename`),workspaceExecuteCommand:new X(`workspace/executeCommand`),workspaceDidCreateFiles:new X(`workspace/didCreateFiles`),workspaceDidRenameFiles:new X(`workspace/didRenameFiles`),workspaceDidDeleteFiles:new X(`workspace/didDeleteFiles`),workspaceDidChangeConfiguration:new X(`workspace/didChangeConfiguration`),textDocumentDidOpen:new X(`textDocument/didOpen`),textDocumentDidChange:new X(`textDocument/didChange`),textDocumentDidClose:new X(`textDocument/didClose`),textDocumentDidSave:new X(`textDocument/didSave`),textDocumentWillSave:new X(`textDocument/willSave`),workspaceDidChangeWatchedFiles:new X(`workspace/didChangeWatchedFiles`)},cr=Wn({server:{textDocumentImplementation:K({method:`textDocument/implementation`}),textDocumentTypeDefinition:K({method:`textDocument/typeDefinition`}),textDocumentDocumentColor:K({method:`textDocument/documentColor`}),textDocumentColorPresentation:K({method:`textDocument/colorPresentation`}),textDocumentFoldingRange:K({method:`textDocument/foldingRange`}),textDocumentDeclaration:K({method:`textDocument/declaration`}),textDocumentSelectionRange:K({method:`textDocument/selectionRange`}),textDocumentPrepareCallHierarchy:K({method:`textDocument/prepareCallHierarchy`}),callHierarchyIncomingCalls:K({method:`callHierarchy/incomingCalls`}),callHierarchyOutgoingCalls:K({method:`callHierarchy/outgoingCalls`}),textDocumentSemanticTokensFull:K({method:`textDocument/semanticTokens/full`}),textDocumentSemanticTokensFullDelta:K({method:`textDocument/semanticTokens/full/delta`}),textDocumentSemanticTokensRange:K({method:`textDocument/semanticTokens/range`}),textDocumentLinkedEditingRange:K({method:`textDocument/linkedEditingRange`}),workspaceWillCreateFiles:K({method:`workspace/willCreateFiles`}),workspaceWillRenameFiles:K({method:`workspace/willRenameFiles`}),workspaceWillDeleteFiles:K({method:`workspace/willDeleteFiles`}),textDocumentMoniker:K({method:`textDocument/moniker`}),textDocumentPrepareTypeHierarchy:K({method:`textDocument/prepareTypeHierarchy`}),typeHierarchySupertypes:K({method:`typeHierarchy/supertypes`}),typeHierarchySubtypes:K({method:`typeHierarchy/subtypes`}),textDocumentInlineValue:K({method:`textDocument/inlineValue`}),textDocumentInlayHint:K({method:`textDocument/inlayHint`}),inlayHintResolve:K({method:`inlayHint/resolve`}),textDocumentDiagnostic:K({method:`textDocument/diagnostic`}),workspaceDiagnostic:K({method:`workspace/diagnostic`}),textDocumentInlineCompletion:K({method:`textDocument/inlineCompletion`}),initialize:K({method:`initialize`}),shutdown:K({method:`shutdown`}),textDocumentWillSaveWaitUntil:K({method:`textDocument/willSaveWaitUntil`}),textDocumentCompletion:K({method:`textDocument/completion`}),completionItemResolve:K({method:`completionItem/resolve`}),textDocumentHover:K({method:`textDocument/hover`}),textDocumentSignatureHelp:K({method:`textDocument/signatureHelp`}),textDocumentDefinition:K({method:`textDocument/definition`}),textDocumentReferences:K({method:`textDocument/references`}),textDocumentDocumentHighlight:K({method:`textDocument/documentHighlight`}),textDocumentDocumentSymbol:K({method:`textDocument/documentSymbol`}),textDocumentCodeAction:K({method:`textDocument/codeAction`}),codeActionResolve:K({method:`codeAction/resolve`}),workspaceSymbol:K({method:`workspace/symbol`}),workspaceSymbolResolve:K({method:`workspaceSymbol/resolve`}),textDocumentCodeLens:K({method:`textDocument/codeLens`}),codeLensResolve:K({method:`codeLens/resolve`}),textDocumentDocumentLink:K({method:`textDocument/documentLink`}),documentLinkResolve:K({method:`documentLink/resolve`}),textDocumentFormatting:K({method:`textDocument/formatting`}),textDocumentRangeFormatting:K({method:`textDocument/rangeFormatting`}),textDocumentRangesFormatting:K({method:`textDocument/rangesFormatting`}),textDocumentOnTypeFormatting:K({method:`textDocument/onTypeFormatting`}),textDocumentRename:K({method:`textDocument/rename`}),textDocumentPrepareRename:K({method:`textDocument/prepareRename`}),workspaceExecuteCommand:K({method:`workspace/executeCommand`}),workspaceDidChangeWorkspaceFolders:q({method:`workspace/didChangeWorkspaceFolders`}),windowWorkDoneProgressCancel:q({method:`window/workDoneProgress/cancel`}),workspaceDidCreateFiles:q({method:`workspace/didCreateFiles`}),workspaceDidRenameFiles:q({method:`workspace/didRenameFiles`}),workspaceDidDeleteFiles:q({method:`workspace/didDeleteFiles`}),notebookDocumentDidOpen:q({method:`notebookDocument/didOpen`}),notebookDocumentDidChange:q({method:`notebookDocument/didChange`}),notebookDocumentDidSave:q({method:`notebookDocument/didSave`}),notebookDocumentDidClose:q({method:`notebookDocument/didClose`}),initialized:q({method:`initialized`}),exit:q({method:`exit`}),workspaceDidChangeConfiguration:q({method:`workspace/didChangeConfiguration`}),textDocumentDidOpen:q({method:`textDocument/didOpen`}),textDocumentDidChange:q({method:`textDocument/didChange`}),textDocumentDidClose:q({method:`textDocument/didClose`}),textDocumentDidSave:q({method:`textDocument/didSave`}),textDocumentWillSave:q({method:`textDocument/willSave`}),workspaceDidChangeWatchedFiles:q({method:`workspace/didChangeWatchedFiles`}),setTrace:q({method:`$/setTrace`}),cancelRequest:q({method:`$/cancelRequest`}),progress:q({method:`$/progress`})},client:{workspaceWorkspaceFolders:K({method:`workspace/workspaceFolders`}).optional(),workspaceConfiguration:K({method:`workspace/configuration`}).optional(),workspaceFoldingRangeRefresh:K({method:`workspace/foldingRange/refresh`}).optional(),windowWorkDoneProgressCreate:K({method:`window/workDoneProgress/create`}).optional(),workspaceSemanticTokensRefresh:K({method:`workspace/semanticTokens/refresh`}).optional(),windowShowDocument:K({method:`window/showDocument`}).optional(),workspaceInlineValueRefresh:K({method:`workspace/inlineValue/refresh`}).optional(),workspaceInlayHintRefresh:K({method:`workspace/inlayHint/refresh`}).optional(),workspaceDiagnosticRefresh:K({method:`workspace/diagnostic/refresh`}).optional(),clientRegisterCapability:K({method:`client/registerCapability`}).optional(),clientUnregisterCapability:K({method:`client/unregisterCapability`}).optional(),windowShowMessageRequest:K({method:`window/showMessageRequest`}).optional(),workspaceCodeLensRefresh:K({method:`workspace/codeLens/refresh`}).optional(),workspaceApplyEdit:K({method:`workspace/applyEdit`}).optional(),windowShowMessage:q({method:`window/showMessage`}),windowLogMessage:q({method:`window/logMessage`}),telemetryEvent:q({method:`telemetry/event`}),textDocumentPublishDiagnostics:q({method:`textDocument/publishDiagnostics`}),logTrace:q({method:`$/logTrace`}),cancelRequest:q({method:`$/cancelRequest`}),progress:q({method:`$/progress`})}});function lr(e,t){if(e.textModel!==t)throw Error(`Expected text model to be ${t}, but got ${e.textModel}`);return e}var Q=(vn=class{constructor(){G(this,`_store`,new ur)}dispose(){this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}},G(vn,`None`,Object.freeze({dispose(){}})),vn),ur=(yn=class{constructor(){G(this,`_toDispose`,new Set),G(this,`_isDisposed`,!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(let e of this._toDispose)e.dispose()}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._isDisposed?yn.DISABLE_DISPOSED_WARNING||console.warn(Error(`Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!`).stack):this._toDispose.add(e),e}},G(yn,`DISABLE_DISPOSED_WARNING`,!1),yn),dr=new Map([[er.Empty,``],[er.QuickFix,`quickfix`],[er.Refactor,`refactor`],[er.RefactorExtract,`refactor.extract`],[er.RefactorInline,`refactor.inline`],[er.RefactorRewrite,`refactor.rewrite`],[er.Source,`source`],[er.SourceOrganizeImports,`source.organizeImports`],[er.SourceFixAll,`source.fixAll`]]);function fr(e){if(e)return dr.get(e)??e}var pr=new Map([[a.CodeActionTriggerType.Invoke,or.Invoked],[a.CodeActionTriggerType.Auto,or.Automatic]]);function mr(e){return pr.get(e)??or.Invoked}var hr=new Map([[Y.Text,a.CompletionItemKind.Text],[Y.Method,a.CompletionItemKind.Method],[Y.Function,a.CompletionItemKind.Function],[Y.Constructor,a.CompletionItemKind.Constructor],[Y.Field,a.CompletionItemKind.Field],[Y.Variable,a.CompletionItemKind.Variable],[Y.Class,a.CompletionItemKind.Class],[Y.Interface,a.CompletionItemKind.Interface],[Y.Module,a.CompletionItemKind.Module],[Y.Property,a.CompletionItemKind.Property],[Y.Unit,a.CompletionItemKind.Unit],[Y.Value,a.CompletionItemKind.Value],[Y.Enum,a.CompletionItemKind.Enum],[Y.Keyword,a.CompletionItemKind.Keyword],[Y.Snippet,a.CompletionItemKind.Snippet],[Y.Color,a.CompletionItemKind.Color],[Y.File,a.CompletionItemKind.File],[Y.Reference,a.CompletionItemKind.Reference],[Y.Folder,a.CompletionItemKind.Folder],[Y.EnumMember,a.CompletionItemKind.EnumMember],[Y.Constant,a.CompletionItemKind.Constant],[Y.Struct,a.CompletionItemKind.Struct],[Y.Event,a.CompletionItemKind.Event],[Y.Operator,a.CompletionItemKind.Operator],[Y.TypeParameter,a.CompletionItemKind.TypeParameter]]);function gr(e){return e?hr.get(e)??a.CompletionItemKind.Text:a.CompletionItemKind.Text}var _r=new Map([[Zn.Deprecated,a.CompletionItemTag.Deprecated]]);function vr(e){return _r.get(e)}var yr=new Map([[a.CompletionTriggerKind.Invoke,ir.Invoked],[a.CompletionTriggerKind.TriggerCharacter,ir.TriggerCharacter],[a.CompletionTriggerKind.TriggerForIncompleteCompletions,ir.TriggerForIncompleteCompletions]]);function br(e){return yr.get(e)??ir.Invoked}var xr=new Map([[Qn.Snippet,a.CompletionItemInsertTextRule.InsertAsSnippet]]);function Sr(e){if(e)return xr.get(e)}var Cr=new Map([[J.File,a.SymbolKind.File],[J.Module,a.SymbolKind.Module],[J.Namespace,a.SymbolKind.Namespace],[J.Package,a.SymbolKind.Package],[J.Class,a.SymbolKind.Class],[J.Method,a.SymbolKind.Method],[J.Property,a.SymbolKind.Property],[J.Field,a.SymbolKind.Field],[J.Constructor,a.SymbolKind.Constructor],[J.Enum,a.SymbolKind.Enum],[J.Interface,a.SymbolKind.Interface],[J.Function,a.SymbolKind.Function],[J.Variable,a.SymbolKind.Variable],[J.Constant,a.SymbolKind.Constant],[J.String,a.SymbolKind.String],[J.Number,a.SymbolKind.Number],[J.Boolean,a.SymbolKind.Boolean],[J.Array,a.SymbolKind.Array],[J.Object,a.SymbolKind.Object],[J.Key,a.SymbolKind.Key],[J.Null,a.SymbolKind.Null],[J.EnumMember,a.SymbolKind.EnumMember],[J.Struct,a.SymbolKind.Struct],[J.Event,a.SymbolKind.Event],[J.Operator,a.SymbolKind.Operator],[J.TypeParameter,a.SymbolKind.TypeParameter]]);function wr(e){return Cr.get(e)??a.SymbolKind.File}var Tr=new Map([[Jn.Deprecated,a.SymbolTag.Deprecated]]);function Er(e){return Tr.get(e)}var Dr=new Map([[$n.Text,a.DocumentHighlightKind.Text],[$n.Read,a.DocumentHighlightKind.Read],[$n.Write,a.DocumentHighlightKind.Write]]);function Or(e){return e?Dr.get(e)??a.DocumentHighlightKind.Text:a.DocumentHighlightKind.Text}var kr=new Map([[qn.Comment,a.FoldingRangeKind.Comment],[qn.Imports,a.FoldingRangeKind.Imports],[qn.Region,a.FoldingRangeKind.Region]]);function Ar(e){if(e)return kr.get(e)}var jr=new Map([[e.Error,nr.Error],[e.Warning,nr.Warning],[e.Info,nr.Information],[e.Hint,nr.Hint]]);function Mr(e){return jr.get(e)??nr.Error}var Nr=new Map([[nr.Error,e.Error],[nr.Warning,e.Warning],[nr.Information,e.Info],[nr.Hint,e.Hint]]);function Pr(t){return t?Nr.get(t)??e.Error:e.Error}var Fr=new Map([[rr.Unnecessary,u.Unnecessary],[rr.Deprecated,u.Deprecated]]);function Ir(e){return Fr.get(e)}var Lr=new Map([[a.SignatureHelpTriggerKind.Invoke,ar.Invoked],[a.SignatureHelpTriggerKind.TriggerCharacter,ar.TriggerCharacter],[a.SignatureHelpTriggerKind.ContentChange,ar.ContentChange]]);function Rr(e){return Lr.get(e)??ar.Invoked}function zr(e){if(e)return{id:e.command,title:e.title,arguments:e.arguments}}var Br=new Map([[Yn.Type,a.InlayHintKind.Type],[Yn.Parameter,a.InlayHintKind.Parameter]]);function Vr(e){return e?Br.get(e)??a.InlayHintKind.Type:a.InlayHintKind.Type}function Hr(e,t){if(`targetUri`in e){let n=t.bridge.translateBackRange({uri:e.targetUri},e.targetRange);return{uri:n.textModel.uri,range:n.range,originSelectionRange:e.originSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.originSelectionRange).range:void 0,targetSelectionRange:e.targetSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.targetSelectionRange).range:void 0}}else{let n=t.bridge.translateBackRange({uri:e.uri},e.range);return{uri:n.textModel.uri,range:n.range}}}function $(e){return!e||e.length===0?{language:`*`}:e.map(e=>`notebook`in e?typeof e.notebook==`string`?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function Ur(e,t){if(!t)return!0;let n=e.getLanguageId();if(e.uri.toString(!0),!t||t.length===0)return!0;for(let e of t)if(!(e.language&&e.language!==`*`&&e.language!==n))return!0;return!1}function Wr(e){let t={severity:Pr(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message,source:e.source,code:typeof e.code==`string`?e.code:e.code?.toString()};return e.tags&&(t.tags=e.tags.map(e=>Ir(e)).filter(e=>e!==void 0)),e.relatedInformation&&(t.relatedInformation=e.relatedInformation.map(e=>({resource:r.parse(e.location.uri),startLineNumber:e.location.range.start.line+1,startColumn:e.location.range.start.character+1,endLineNumber:e.location.range.end.line+1,endColumn:e.location.range.end.character+1,message:e.message}))),t}var Gr=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(hr.keys())},completionItem:{tagSupport:{valueSet:Array.from(_r.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentCompletion,!0,e=>a.registerCompletionItemProvider($(e.documentSelector),new Kr(this._connection,e))))}},Kr=class{constructor(e,t){G(this,`resolveCompletionItem`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCompletionItem=async(e,t)=>(Jr(e,await this._client.server.completionItemResolve(e._lspItem),this._client.bridge,e._translated,e._model),e))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentCompletion({textDocument:i.textDocument,position:i.position,context:n.triggerCharacter?{triggerKind:br(n.triggerKind),triggerCharacter:n.triggerCharacter}:void 0});return a?{suggestions:(Array.isArray(a)?a:a.items).map(n=>({...qr(n,this._client.bridge,i,e,t),_lspItem:n,_translated:i,_model:e}))}:{suggestions:[]}}};function qr(e,n,r,i,a){let o=e.insertText||e.label,s;e.textEdit&&(`range`in e.textEdit?(o=e.textEdit.newText,s=lr(n.translateBackRange(r.textDocument,e.textEdit.range),i).range):(o=e.textEdit.newText,s={insert:lr(n.translateBackRange(r.textDocument,e.textEdit.insert),i).range,replace:lr(n.translateBackRange(r.textDocument,e.textEdit.replace),i).range})),s||=t.fromPositions(a,a);let c={label:e.label,kind:gr(e.kind),insertText:o,sortText:e.sortText,filterText:e.filterText,preselect:e.preselect,commitCharacters:e.commitCharacters,range:s};return Jr(c,e,n,r,i),c}function Jr(e,t,n,r,i){t.detail!==void 0&&(e.detail=t.detail),t.documentation!==void 0&&(e.documentation=Yr(t.documentation)),t.insertTextFormat!==void 0&&(e.insertTextRules=Sr(t.insertTextFormat)),t.tags&&t.tags.length>0&&(e.tags=t.tags.map(vr).filter(e=>e!==void 0)),t.additionalTextEdits&&t.additionalTextEdits.length>0&&(e.additionalTextEdits=t.additionalTextEdits.map(e=>({range:lr(n.translateBackRange(r.textDocument,e.range),i).range,text:e.newText}))),t.command&&(e.command=zr(t.command))}function Yr(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var Xr=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[tr.Markdown,tr.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentHover,!0,e=>a.registerHoverProvider($(e.documentSelector),new Zr(this._connection,e))))}},Zr=class{constructor(e,t){this._client=e,this._capabilities=t}async provideHover(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentHover({textDocument:r.textDocument,position:r.position});return!i||!i.contents?null:{contents:Qr(i.contents),range:i.range?this._client.bridge.translateBackRange(r.textDocument,i.range).range:void 0}}};function Qr(e){return Array.isArray(e)?e.map(e=>$r(e)):[$r(e)]}function $r(e){return typeof e==`string`?{value:e,isTrusted:!0}:`kind`in e?{value:e.value,isTrusted:!0}:{value:`\`\`\`${e.language}
${e.value}
\`\`\``,isTrusted:!0}}var ei=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{signatureHelp:{dynamicRegistration:!0,contextSupport:!0,signatureInformation:{documentationFormat:[tr.Markdown,tr.PlainText],parameterInformation:{labelOffsetSupport:!0},activeParameterSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentSignatureHelp,!0,e=>a.registerSignatureHelpProvider($(e.documentSelector),new ti(this._connection,e))))}},ti=class{constructor(e,t){G(this,`signatureHelpTriggerCharacters`),G(this,`signatureHelpRetriggerCharacters`),this._client=e,this._capabilities=t,this.signatureHelpTriggerCharacters=t.triggerCharacters,this.signatureHelpRetriggerCharacters=t.retriggerCharacters}async provideSignatureHelp(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentSignatureHelp({textDocument:i.textDocument,position:i.position,context:{triggerKind:Rr(r.triggerKind),triggerCharacter:r.triggerCharacter,isRetrigger:r.isRetrigger}});return a?{value:{signatures:a.signatures.map(e=>({label:e.label,documentation:ni(e.documentation),parameters:e.parameters?.map(e=>({label:e.label,documentation:ni(e.documentation)}))||[],activeParameter:e.activeParameter})),activeSignature:a.activeSignature||0,activeParameter:a.activeParameter||0},dispose:()=>{}}:null}};function ni(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var ri=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{definition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDefinition,!0,e=>a.registerDefinitionProvider($(e.documentSelector),new ii(this._connection,e))))}},ii=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDefinition(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDefinition({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Hr(e,this._client)):Hr(i,this._client):null}},ai=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{declaration:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDeclaration,!0,e=>a.registerDeclarationProvider($(e.documentSelector),new oi(this._connection,e))))}},oi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDeclaration(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDeclaration({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Hr(e,this._client)):Hr(i,this._client):null}},si=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{typeDefinition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentTypeDefinition,!0,e=>a.registerTypeDefinitionProvider($(e.documentSelector),new ci(this._connection,e))))}},ci=class{constructor(e,t){this._client=e,this._capabilities=t}async provideTypeDefinition(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentTypeDefinition({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Hr(e,this._client)):Hr(i,this._client):null}},li=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{implementation:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentImplementation,!0,e=>a.registerImplementationProvider($(e.documentSelector),new ui(this._connection,e))))}},ui=class{constructor(e,t){this._client=e,this._capabilities=t}async provideImplementation(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentImplementation({textDocument:r.textDocument,position:r.position});return i?Array.isArray(i)?i.map(e=>Hr(e,this._client)):Hr(i,this._client):null}},di=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{references:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentReferences,!0,e=>a.registerReferenceProvider($(e.documentSelector),new fi(this._connection,e))))}},fi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideReferences(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentReferences({textDocument:i.textDocument,position:i.position,context:{includeDeclaration:n.includeDeclaration}});return a?a.map(e=>{let t=this._client.bridge.translateBackRange({uri:e.uri},e.range);return{uri:t.textModel.uri,range:t.range}}):null}},pi=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentHighlight:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDocumentHighlight,!0,e=>a.registerDocumentHighlightProvider($(e.documentSelector),new mi(this._connection,e))))}},mi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentHighlights(e,t,n){let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentDocumentHighlight({textDocument:r.textDocument,position:r.position});return i?i.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,kind:Or(e.kind)})):null}},hi=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentSymbol:{dynamicRegistration:!0,hierarchicalDocumentSymbolSupport:!0,symbolKind:{valueSet:Array.from(Cr.keys())},tagSupport:{valueSet:[Jn.Deprecated]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDocumentSymbol,!0,e=>a.registerDocumentSymbolProvider($(e.documentSelector),new gi(this._connection,e))))}},gi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentSymbols(e,t){let n=this._client.bridge.translate(e,new f(1,1)),r=await this._client.server.textDocumentDocumentSymbol({textDocument:n.textDocument});return r?Array.isArray(r)&&r.length>0?`location`in r[0]?r.map(e=>vi(e,this._client)):r.map(e=>_i(e,this._client,n.textDocument)):[]:null}};function _i(e,t,n){return{name:e.name,detail:e.detail||``,kind:wr(e.kind),tags:e.tags?.map(e=>Er(e)).filter(e=>e!==void 0)||[],range:t.bridge.translateBackRange(n,e.range).range,selectionRange:t.bridge.translateBackRange(n,e.selectionRange).range,children:e.children?.map(e=>_i(e,t,n))||[]}}function vi(e,t){return{name:e.name,detail:``,kind:wr(e.kind),tags:e.tags?.map(e=>Er(e)).filter(e=>e!==void 0)||[],range:t.bridge.translateBackRange({uri:e.location.uri},e.location.range).range,selectionRange:t.bridge.translateBackRange({uri:e.location.uri},e.location.range).range,children:[]}}var yi=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rename:{dynamicRegistration:!0,prepareSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentRename,!0,e=>a.registerRenameProvider($(e.documentSelector),new bi(this._connection,e))))}},bi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideRenameEdits(e,t,n,r){let i=this._client.bridge.translate(e,t),a=await this._client.server.textDocumentRename({textDocument:i.textDocument,position:i.position,newName:n});return a?xi(a,this._client):null}async resolveRenameLocation(e,t,n){if(!this._capabilities.prepareProvider)return null;let r=this._client.bridge.translate(e,t),i=await this._client.server.textDocumentPrepareRename({textDocument:r.textDocument,position:r.position});if(!i)return null;if(`range`in i&&`placeholder`in i)return{range:this._client.bridge.translateBackRange(r.textDocument,i.range).range,text:i.placeholder};if(`defaultBehavior`in i)return null;if(`start`in i&&`end`in i){let t=this._client.bridge.translateBackRange(r.textDocument,i).range;return{range:t,text:e.getValueInRange(t)}}return null}};function xi(e,t){let n=[];if(e.changes)for(let r in e.changes){let i=e.changes[r];for(let e of i){let i=t.bridge.translateBackRange({uri:r},e.range);n.push({resource:i.textModel.uri,versionId:void 0,textEdit:{range:i.range,text:e.newText}})}}if(e.documentChanges){for(let r of e.documentChanges)if(`textDocument`in r){let e=r.textDocument.uri;for(let i of r.edits){let a=t.bridge.translateBackRange({uri:e},i.range);n.push({resource:a.textModel.uri,versionId:r.textDocument.version,textEdit:{range:a.range,text:i.newText}})}}}return{edits:n}}var Si=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeAction:{dynamicRegistration:!0,codeActionLiteralSupport:{codeActionKind:{valueSet:Array.from(dr.keys())}},isPreferredSupport:!0,disabledSupport:!0,dataSupport:!0,resolveSupport:{properties:[`edit`]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentCodeAction,!0,e=>a.registerCodeActionProvider($(e.documentSelector),new Ci(this._connection,e))))}},Ci=class{constructor(e,t){G(this,`resolveCodeAction`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCodeAction=async(e,t)=>{if(e._lspAction){let t=await this._client.server.codeActionResolve(e._lspAction);t.edit&&(e.edit=wi(t.edit,this._client)),t.command&&(e.command=zr(t.command))}return e})}async provideCodeActions(e,n,r,i){let a=this._client.bridge.translate(e,n.getStartPosition()),o=await this._client.server.textDocumentCodeAction({textDocument:a.textDocument,range:this._client.bridge.translateRange(e,n),context:{diagnostics:r.markers.map(n=>({range:this._client.bridge.translateRange(e,t.lift(n)),message:n.message,severity:Mr(n.severity)})),triggerKind:mr(r.trigger)}});return o?{actions:(Array.isArray(o)?o:[o]).map(e=>{if(`title`in e&&!(`kind`in e)){let t=e;return{title:t.title,command:zr(t)}}else{let t=e;return{title:t.title,kind:fr(t.kind),isPreferred:t.isPreferred,disabled:t.disabled?.reason,edit:t.edit?wi(t.edit,this._client):void 0,command:zr(t.command),_lspAction:t}}}),dispose:()=>{}}:null}};function wi(e,t){let n=[];if(e.changes)for(let r in e.changes){let i=e.changes[r];for(let e of i){let i=t.bridge.translateBackRange({uri:r},e.range);n.push({resource:i.textModel.uri,versionId:void 0,textEdit:{range:i.range,text:e.newText}})}}if(e.documentChanges){for(let r of e.documentChanges)if(`textDocument`in r){let e=r.textDocument.uri;for(let i of r.edits){let a=t.bridge.translateBackRange({uri:e},i.range);n.push({resource:a.textModel.uri,versionId:r.textDocument.version??void 0,textEdit:{range:a.range,text:i.newText}})}}}return{edits:n}}var Ti=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeLens:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentCodeLens,!0,e=>a.registerCodeLensProvider($(e.documentSelector),new Ei(this._connection,e))))}},Ei=class{constructor(e,t){this._client=e,this._capabilities=t}async provideCodeLenses(e,t){let n=this._client.bridge.translate(e,new f(1,1)),r=await this._client.server.textDocumentCodeLens({textDocument:n.textDocument});return r?{lenses:r.map(t=>({range:lr(this._client.bridge.translateBackRange(n.textDocument,t.range),e).range,command:zr(t.command),_lspCodeLens:t})),dispose:()=>{}}:null}async resolveCodeLens(e,t,n){if(!this._capabilities.resolveProvider||!t._lspCodeLens)return t;let r=await this._client.server.codeLensResolve(t._lspCodeLens);return r.command&&(t.command={id:r.command.command,title:r.command.title,arguments:r.command.arguments}),t}},Di=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentLink:{dynamicRegistration:!0,tooltipSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDocumentLink,!0,e=>a.registerLinkProvider($(e.documentSelector),new Oi(this._connection,e))))}},Oi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideLinks(e,t){let n=this._client.bridge.translate(e,new f(1,1)),r=await this._client.server.textDocumentDocumentLink({textDocument:n.textDocument});return r?{links:r.map(e=>({range:this._client.bridge.translateBackRange(n.textDocument,e.range).range,url:e.target,tooltip:e.tooltip}))}:null}async resolveLink(e,t){return this._capabilities.resolveProvider,e}},ki=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{formatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentFormatting,!0,e=>a.registerDocumentFormattingEditProvider($(e.documentSelector),new Ai(this._connection,e))))}},Ai=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentFormattingEdits(e,t,n){let r=this._client.bridge.translate(e,new f(1,1)),i=await this._client.server.textDocumentFormatting({textDocument:r.textDocument,options:{tabSize:t.tabSize,insertSpaces:t.insertSpaces}});return i?i.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,text:e.newText})):null}},ji=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rangeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentRangeFormatting,!0,e=>a.registerDocumentRangeFormattingEditProvider($(e.documentSelector),new Mi(this._connection,e))))}},Mi=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentRangeFormattingEdits(e,t,n,r){let i=this._client.bridge.translate(e,t.getStartPosition()),a=await this._client.server.textDocumentRangeFormatting({textDocument:i.textDocument,range:this._client.bridge.translateRange(e,t),options:{tabSize:n.tabSize,insertSpaces:n.insertSpaces}});return a?a.map(e=>({range:this._client.bridge.translateBackRange(i.textDocument,e.range).range,text:e.newText})):null}},Ni=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{onTypeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentOnTypeFormatting,!0,e=>a.registerOnTypeFormattingEditProvider($(e.documentSelector),new Pi(this._connection,e))))}},Pi=class{constructor(e,t){G(this,`autoFormatTriggerCharacters`),this._client=e,this._capabilities=t,this.autoFormatTriggerCharacters=[t.firstTriggerCharacter,...t.moreTriggerCharacter||[]]}async provideOnTypeFormattingEdits(e,t,n,r,i){let a=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentOnTypeFormatting({textDocument:a.textDocument,position:a.position,ch:n,options:{tabSize:r.tabSize,insertSpaces:r.insertSpaces}});return o?o.map(e=>({range:this._client.bridge.translateBackRange(a.textDocument,e.range).range,text:e.newText})):null}},Fi=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{foldingRange:{dynamicRegistration:!0,rangeLimit:5e3,lineFoldingOnly:!1,foldingRangeKind:{valueSet:[qn.Comment,qn.Imports,qn.Region]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentFoldingRange,!0,e=>a.registerFoldingRangeProvider($(e.documentSelector),new Ii(this._connection,e))))}},Ii=class{constructor(e,t){this._client=e,this._capabilities=t}async provideFoldingRanges(e,t,n){let r=this._client.bridge.translate(e,new f(1,1)),i=await this._client.server.textDocumentFoldingRange({textDocument:r.textDocument});return i?i.map(e=>({start:e.startLine+1,end:e.endLine+1,kind:Ar(e.kind)})):null}},Li=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{selectionRange:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentSelectionRange,!0,e=>a.registerSelectionRangeProvider($(e.documentSelector),new Ri(this._connection,e))))}},Ri=class{constructor(e,t){this._client=e,this._capabilities=t}async provideSelectionRanges(e,t,n){let r=this._client.bridge.translate(e,t[0]),i=await this._client.server.textDocumentSelectionRange({textDocument:r.textDocument,positions:t.map(t=>this._client.bridge.translate(e,t).position)});return i?i.map(e=>this.convertSelectionRange(e,r.textDocument)):null}convertSelectionRange(e,t){let n=[],r=e;for(;r;)n.push({range:this._client.bridge.translateBackRange(t,r.range).range}),r=r.parent;return n}},zi=class extends Q{constructor(e){super(),G(this,`_providers`,new Set),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{inlayHint:{dynamicRegistration:!0,resolveSupport:{properties:[`tooltip`,`textEdits`,`label.tooltip`,`label.location`,`label.command`]}}},workspace:{inlayHint:{refreshSupport:!0}}})),this._register(this._connection.connection.registerRequestHandler(cr.client.workspaceInlayHintRefresh,async()=>{for(let e of this._providers)e.refresh();return{ok:null}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentInlayHint,!0,e=>{let t=new Bi(this._connection,e);this._providers.add(t);let n=a.registerInlayHintsProvider($(e.documentSelector),t);return{dispose:()=>{this._providers.delete(t),n.dispose()}}}))}},Bi=class{constructor(e,t){G(this,`_onDidChangeInlayHints`,new l),G(this,`onDidChangeInlayHints`,this._onDidChangeInlayHints.event),G(this,`resolveInlayHint`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveInlayHint=async(e,t)=>{let n=await this._client.server.inlayHintResolve(e._lspInlayHint);return n.tooltip&&(e.tooltip=Ui(n.tooltip)),n.label!==e._lspInlayHint.label&&(e.label=Hi(n.label)),n.textEdits&&(e.textEdits=n.textEdits.map(t=>({range:this._client.bridge.translateBackRange({uri:e._targetUri},t.range).range,text:t.newText}))),e})}refresh(){this._onDidChangeInlayHints.fire()}async provideInlayHints(e,t,n){let r=this._client.bridge.translate(e,t.getStartPosition()),i=await Vi(async()=>await this._client.server.textDocumentInlayHint({textDocument:r.textDocument,range:this._client.bridge.translateRange(e,t)}));return i?{hints:i.map(t=>({label:Hi(t.label),position:lr(this._client.bridge.translateBack(r.textDocument,t.position),e).position,kind:Vr(t.kind),tooltip:Ui(t.tooltip),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight,textEdits:t.textEdits?.map(t=>({range:lr(this._client.bridge.translateBackRange(r.textDocument,t.range),e).range,text:t.newText})),_lspInlayHint:t,_targetUri:r.textDocument.uri})),dispose:()=>{}}:null}};async function Vi(e){for(let t=3;;t--)try{return await e()}catch(e){if(e.message===`content modified`&&t>0)continue;throw e}}function Hi(e){return typeof e==`string`?e:e.map(e=>{let n={label:e.value,tooltip:Ui(e.tooltip),command:zr(e.command)};return e.location&&(n.location={uri:r.parse(e.location.uri),range:new t(e.location.range.start.line+1,e.location.range.start.character+1,e.location.range.end.line+1,e.location.range.end.character+1)}),n})}function Ui(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var Wi=class extends Q{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{semanticTokens:{dynamicRegistration:!0,requests:{range:!0,full:{delta:!0}},tokenTypes:[`namespace`,`type`,`class`,`enum`,`interface`,`struct`,`typeParameter`,`parameter`,`variable`,`property`,`enumMember`,`event`,`function`,`method`,`macro`,`keyword`,`modifier`,`comment`,`string`,`number`,`regexp`,`operator`,`decorator`],tokenModifiers:[`declaration`,`definition`,`readonly`,`static`,`deprecated`,`abstract`,`async`,`modification`,`documentation`,`defaultLibrary`],formats:[sr.Relative],overlappingTokenSupport:!1,multilineTokenSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentSemanticTokensFull,!0,e=>a.registerDocumentSemanticTokensProvider($(e.documentSelector),new Gi(this._connection,e))))}},Gi=class{constructor(e,t){this._client=e,this._capabilities=t}getLegend(){return{tokenTypes:this._capabilities.legend.tokenTypes,tokenModifiers:this._capabilities.legend.tokenModifiers}}releaseDocumentSemanticTokens(e){}async provideDocumentSemanticTokens(e,t,n){let r=this._client.bridge.translate(e,e.getPositionAt(0)),i=this._capabilities.full;if(t&&i&&typeof i==`object`&&i.delta){let e=await this._client.server.textDocumentSemanticTokensFullDelta({textDocument:r.textDocument,previousResultId:t});return e?`edits`in e?{resultId:e.resultId,edits:e.edits.map(e=>({start:e.start,deleteCount:e.deleteCount,data:e.data?new Uint32Array(e.data):void 0}))}:{resultId:e.resultId,data:new Uint32Array(e.data)}:null}let a=await this._client.server.textDocumentSemanticTokensFull({textDocument:r.textDocument});return a?{resultId:a.resultId,data:new Uint32Array(a.data)}:null}async provideDocumentSemanticTokensEdits(e,t,n){return this.provideDocumentSemanticTokens(e,t,n)}},Ki=class extends Q{constructor(e){super(),G(this,`_diagnosticsMarkerOwner`,`lsp`),G(this,`_pullDiagnosticProviders`,new Map),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{publishDiagnostics:{relatedInformation:!0,tagSupport:{valueSet:[...Fr.keys()]},versionSupport:!0,codeDescriptionSupport:!0,dataSupport:!0},diagnostic:{dynamicRegistration:!0,relatedDocumentSupport:!0}}})),this._register(this._connection.connection.registerNotificationHandler(cr.client.textDocumentPublishDiagnostics,e=>this._handlePublishDiagnostics(e))),this._register(this._connection.capabilities.registerCapabilityHandler(Z.textDocumentDiagnostic,!0,e=>{let t=new ur;for(let n of d.getModels())this._addPullDiagnosticProvider(n,e,t);return t.add(d.onDidCreateModel(n=>{this._addPullDiagnosticProvider(n,e,t)})),t}))}_addPullDiagnosticProvider(e,t,n){if(e.getLanguageId(),!Ur(e,t.documentSelector))return;let r=new qi(e,this._connection,this._diagnosticsMarkerOwner,t);this._pullDiagnosticProviders.set(e,r),n.add(r),n.add(e.onWillDispose(()=>{this._pullDiagnosticProviders.delete(e)}))}_handlePublishDiagnostics(e){let t=e.uri;try{let n=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!n||n.isDisposed())return;let r=e.diagnostics.map(e=>Wr(e));d.setModelMarkers(n,this._diagnosticsMarkerOwner,r)}catch(e){console.debug(`Could not set diagnostics for ${t}:`,e)}}},qi=class extends Q{constructor(e,t,n,r){super(),G(this,`_updateHandle`),G(this,`_previousResultId`),this._model=e,this._connection=t,this._markerOwner=n,this._capability=r,this._register(this._model.onDidChangeContent(()=>{this._scheduleDiagnosticUpdate()})),this._scheduleDiagnosticUpdate()}_scheduleDiagnosticUpdate(){this._updateHandle!==void 0&&clearTimeout(this._updateHandle),this._updateHandle=window.setTimeout(()=>{this._updateHandle=void 0,this._requestDiagnostics()},500)}async _requestDiagnostics(){if(!this._model.isDisposed())try{let e=this._connection.bridge.translate(this._model,new f(1,1)),t=await this._connection.server.textDocumentDiagnostic({textDocument:e.textDocument,identifier:this._capability.identifier,previousResultId:this._previousResultId});if(this._model.isDisposed())return;this._handleDiagnosticReport(t)}catch(e){console.error(`Error requesting diagnostics:`,e)}}_handleDiagnosticReport(e){if(e.kind===`full`){this._previousResultId=e.resultId;let t=e.items.map(e=>Wr(e));d.setModelMarkers(this._model,this._markerOwner,t),`relatedDocuments`in e&&e.relatedDocuments&&this._handleRelatedDocuments(e.relatedDocuments)}else e.kind===`unchanged`&&(this._previousResultId=e.resultId)}_handleRelatedDocuments(e){for(let[t,n]of Object.entries(e))try{let e=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!e||e.isDisposed())continue;if(n.kind===`full`){let t=n.items.map(e=>Wr(e));d.setModelMarkers(e,this._markerOwner,t)}}catch(e){console.debug(`Could not set related diagnostics for ${t}:`,e)}}dispose(){this._updateHandle!==void 0&&(clearTimeout(this._updateHandle),this._updateHandle=void 0),super.dispose()}},Ji=class{constructor(e,t,n,r){this.server=e,this.bridge=t,this.capabilities=n,this.connection=r}},Yi=class extends Q{constructor(e){super(),G(this,`_staticCapabilities`,new Set),G(this,`_dynamicFromStatic`,ta.create()),G(this,`_registrations`,new Map),G(this,`_serverCapabilities`),this._connection=e,this._register(this._connection.registerRequestHandler(cr.client.clientRegisterCapability,async e=>{for(let t of e.registrations){let e=$i(t.method),n=new Zi(t.id,e,t.registerOptions,!1);this._registerCapabilityOptions(n)}return{ok:null}})),this._register(this._connection.registerRequestHandler(cr.client.clientUnregisterCapability,async e=>{for(let t of e.unregisterations){let e=$i(t.method),n=this._registrations.get(e),r=n?.registrations.get(t.id);if(!r)throw Error(`No registration for method ${t.method} with id ${t.id}`);r?.handlerDisposables.forEach(e=>e.dispose()),n?.registrations.delete(t.id)}return{ok:null}}))}_registerCapabilityOptions(e){let t=this._registrations.get(e.capability);if(t||(t=new ea,this._registrations.set(e.capability,t)),t.registrations.has(e.id))throw Error(`Handler for method ${e.capability.method} with id ${e.id} already registered`);t.registrations.set(e.id,e);for(let n of t.handlers)!n.handleStaticCapability&&e.isFromStatic||e.handlerDisposables.set(n,n.handler(e.options))}setServerCapabilities(e){if(this._serverCapabilities)throw Error(`Server capabilities already set`);this._serverCapabilities=e;for(let t of Object.values(Z)){let n=this._dynamicFromStatic.getOptions(t,e);n&&this._registerCapabilityOptions(new Zi(t.method,t,n,!0))}}getClientCapabilities(){let e={};for(let t of this._staticCapabilities)na(e,t.cap);return e}addStaticClientCapabilities(e){let t={cap:e};return this._staticCapabilities.add(t),{dispose:()=>{this._staticCapabilities.delete(t)}}}registerCapabilityHandler(e,t,n){let r=this._registrations.get(e);r||(r=new ea,this._registrations.set(e,r));let i=new Xi(e,t,n);r.handlers.add(i);for(let e of r.registrations.values())!i.handleStaticCapability&&e.isFromStatic||e.handlerDisposables.set(i,n(e.options));return{dispose:()=>{r.handlers.delete(i);for(let e of r.registrations.values()){let t=e.handlerDisposables.get(i);t&&(t.dispose(),e.handlerDisposables.delete(i))}}}}},Xi=class{constructor(e,t,n){this.capability=e,this.handleStaticCapability=t,this.handler=n}},Zi=class{constructor(e,t,n,r){G(this,`handlerDisposables`,new Map),this.id=e,this.capability=t,this.options=n,this.isFromStatic=r}},Qi=new Map([...Object.values(Z)].map(e=>[e.method,e]));function $i(e){let t=Qi.get(e);if(!t)throw Error(`No capability found for method ${e}`);return t}var ea=class{constructor(){G(this,`handlers`,new Set),G(this,`registrations`,new Map)}},ta=class e{constructor(){G(this,`_mappings`,new Map)}static create(){let t=new e;return t.set(Z.textDocumentDidChange,e=>{if(e.textDocumentSync!==void 0)return typeof e.textDocumentSync==`object`?{syncKind:e.textDocumentSync.change??Xn.None,documentSelector:null}:{syncKind:e.textDocumentSync,documentSelector:null}}),t.set(Z.textDocumentCompletion,e=>e.completionProvider),t.set(Z.textDocumentHover,e=>e.hoverProvider),t.set(Z.textDocumentSignatureHelp,e=>e.signatureHelpProvider),t.set(Z.textDocumentDefinition,e=>e.definitionProvider),t.set(Z.textDocumentReferences,e=>e.referencesProvider),t.set(Z.textDocumentDocumentHighlight,e=>e.documentHighlightProvider),t.set(Z.textDocumentDocumentSymbol,e=>e.documentSymbolProvider),t.set(Z.textDocumentCodeAction,e=>e.codeActionProvider),t.set(Z.textDocumentCodeLens,e=>e.codeLensProvider),t.set(Z.textDocumentDocumentLink,e=>e.documentLinkProvider),t.set(Z.textDocumentFormatting,e=>e.documentFormattingProvider),t.set(Z.textDocumentRangeFormatting,e=>e.documentRangeFormattingProvider),t.set(Z.textDocumentOnTypeFormatting,e=>e.documentOnTypeFormattingProvider),t.set(Z.textDocumentRename,e=>e.renameProvider),t.set(Z.textDocumentFoldingRange,e=>e.foldingRangeProvider),t.set(Z.textDocumentDeclaration,e=>e.declarationProvider),t.set(Z.textDocumentTypeDefinition,e=>e.typeDefinitionProvider),t.set(Z.textDocumentImplementation,e=>e.implementationProvider),t.set(Z.textDocumentDocumentColor,e=>e.colorProvider),t.set(Z.textDocumentSelectionRange,e=>e.selectionRangeProvider),t.set(Z.textDocumentLinkedEditingRange,e=>e.linkedEditingRangeProvider),t.set(Z.textDocumentPrepareCallHierarchy,e=>e.callHierarchyProvider),t.set(Z.textDocumentSemanticTokensFull,e=>e.semanticTokensProvider),t.set(Z.textDocumentInlayHint,e=>e.inlayHintProvider),t.set(Z.textDocumentInlineValue,e=>e.inlineValueProvider),t.set(Z.textDocumentDiagnostic,e=>e.diagnosticProvider),t.set(Z.textDocumentMoniker,e=>e.monikerProvider),t.set(Z.textDocumentPrepareTypeHierarchy,e=>e.typeHierarchyProvider),t.set(Z.workspaceSymbol,e=>e.workspaceSymbolProvider),t.set(Z.workspaceExecuteCommand,e=>e.executeCommandProvider),t}set(e,t){if(this._mappings.has(e.method))throw Error(`Capability for method ${e.method} already registered`);this._mappings.set(e.method,t)}getOptions(e,t){let n=this._mappings.get(e.method);if(n)return n(t)}};function na(e,t){for(let n of Object.keys(t)){let r=t[n];if(r===void 0)continue;let i=e[n];if(i===void 0){e[n]=r;continue}if(typeof r!=`object`||!r){e[n]=r;continue}if(typeof i!=`object`||!i){e[n]=r;continue}na(i,r)}}var ra=class extends Q{constructor(e,t){super(),G(this,`_managedModels`,new Map),G(this,`_managedModelsReverse`,new Map),G(this,`_started`,!1),this._server=e,this._capabilities=t,this._register(this._capabilities.addStaticClientCapabilities({textDocument:{synchronization:{dynamicRegistration:!0,willSave:!1,willSaveWaitUntil:!1,didSave:!1}}})),this._register(t.registerCapabilityHandler(Z.textDocumentDidChange,!0,e=>{if(this._started)return{dispose:()=>{}};this._started=!0,this._register(d.onDidCreateModel(e=>{this._getOrCreateManagedModel(e)}));for(let e of d.getModels())this._getOrCreateManagedModel(e);return{dispose:()=>{}}}))}_getOrCreateManagedModel(e){if(!this._started)throw Error(`Not started`);let t=e.uri.toString(!0).toLowerCase(),n=this._managedModels.get(e);return n||(n=new ia(e,this._server),this._managedModels.set(e,n),this._managedModelsReverse.set(t,e)),e.onWillDispose(()=>{n.dispose(),this._managedModels.delete(e),this._managedModelsReverse.delete(t)}),n}translateBack(e,t){let n=e.uri.toLowerCase(),r=this._managedModelsReverse.get(n);if(!r)throw Error(`No text model for uri ${n}`);return{textModel:r,position:new f(t.line+1,t.character+1)}}translateBackRange(e,n){let r=e.uri.toLowerCase(),i=this._managedModelsReverse.get(r);if(!i)throw Error(`No text model for uri ${r}`);return{textModel:i,range:new t(n.start.line+1,n.start.character+1,n.end.line+1,n.end.character+1)}}translate(e,t){return{textDocument:{uri:e.uri.toString(!0)},position:{line:t.lineNumber-1,character:t.column-1}}}translateRange(e,t){return{start:{line:t.startLineNumber-1,character:t.startColumn-1},end:{line:t.endLineNumber-1,character:t.endColumn-1}}}},ia=class extends Q{constructor(e,t){super(),this._textModel=e,this._api=t;let n=e.uri.toString(!0).toLowerCase();this._api.textDocumentDidOpen({textDocument:{languageId:e.getLanguageId(),uri:n,version:e.getVersionId(),text:e.getValue()}}),this._register(e.onDidChangeContent(t=>{let r=t.changes.map(e=>aa(e));this._api.textDocumentDidChange({textDocument:{uri:n,version:e.getVersionId()},contentChanges:r})})),this._register({dispose:()=>{this._api.textDocumentDidClose({textDocument:{uri:n}})}})}};function aa(e){return{range:oa(e.range),rangeLength:e.rangeLength,text:e.text}}function oa(e){return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}var sa=class{constructor(e){G(this,`_connection`),G(this,`_capabilitiesRegistry`),G(this,`_bridge`),G(this,`_initPromise`);let t=Rn.fromTransport(e),n=cr.getServer(t,{});t.startListen(),this._capabilitiesRegistry=new Yi(t),this._bridge=new ra(n.server,this._capabilitiesRegistry),this._connection=new Ji(n.server,this._bridge,this._capabilitiesRegistry,t),this.createFeatures(),this._initPromise=this._init()}async _init(){let e=await this._connection.server.initialize({processId:null,capabilities:this._capabilitiesRegistry.getClientCapabilities(),rootUri:null});this._connection.server.initialized({}),this._capabilitiesRegistry.setServerCapabilities(e.capabilities)}createFeatures(){let e=new ur;return e.add(new Gr(this._connection)),e.add(new Xr(this._connection)),e.add(new ei(this._connection)),e.add(new ri(this._connection)),e.add(new ai(this._connection)),e.add(new si(this._connection)),e.add(new li(this._connection)),e.add(new di(this._connection)),e.add(new pi(this._connection)),e.add(new hi(this._connection)),e.add(new yi(this._connection)),e.add(new Si(this._connection)),e.add(new Ti(this._connection)),e.add(new Di(this._connection)),e.add(new ki(this._connection)),e.add(new ji(this._connection)),e.add(new Ni(this._connection)),e.add(new Fi(this._connection)),e.add(new Li(this._connection)),e.add(new zi(this._connection)),e.add(new Wi(this._connection)),e.add(new Ki(this._connection)),e}},ca=null;typeof WebSocket<`u`?ca=WebSocket:typeof MozWebSocket<`u`?ca=MozWebSocket:typeof global<`u`?ca=global.WebSocket||global.MozWebSocket:typeof window<`u`?ca=window.WebSocket||window.MozWebSocket:typeof self<`u`&&(ca=self.WebSocket||self.MozWebSocket);var la=ca;function ua(e){return`host`in e?{address:`${e.forceTls?`wss`:`ws`}://${e.host}:${e.port}`}:e}var da=class e extends On{constructor(e){super(),G(this,`socket`),G(this,`errorEmitter`,new Cn),G(this,`onError`,this.errorEmitter),this.socket=e,e.onmessage=e=>{try{let t=e.data;if(typeof t==`string`){let e=JSON.parse(t);this._dispatchReceivedMessage(e)}else throw Error(`Not supported`)}catch(e){this.errorEmitter.fire({error:e})}},e.onclose=e=>{this._onConnectionClosed()}}static connectTo(t){let n=new la(ua(t).address);return new Promise((t,r)=>{n.onerror=e=>{r(e)},n.onopen=()=>{t(new e(n))}})}static fromWebSocket(t){return new e(t)}close(){this.socket.close()}dispose(){this.close()}_sendImpl(e){let t=JSON.stringify(e);return new Promise((e,n)=>{this.socket.send(t,t=>{t?n(t):e()})})}toString(){return`${this.id}@${this.socket.url}`}},fa=class extends On{constructor(e,t=void 0,n=void 0){super(),G(this,`_windowLike`),G(this,`_source`),G(this,`_loadingState`),G(this,`_disposed`,!1),G(this,`_messageHandler`,({data:e,source:t})=>{this._source&&t!==this._source||typeof e==`object`&&e&&this._dispatchReceivedMessage(e)}),this._windowLike=e,this._source=t,this._loadingState=n,this._windowLike.addEventListener(`message`,this._messageHandler)}async _sendImpl(e){if(this._disposed)throw Error(`Transport is disposed`);this._loadingState&&!this._loadingState.loaded&&await this._loadingState.onLoaded,this._windowLike.postMessage(e)}toString(){return`${this.id}@${this._windowLike}`}dispose(){this._disposed||(this._disposed=!0,this._windowLike.removeEventListener(`message`,this._messageHandler))}};function pa(e){if(typeof window>`u`)throw Error(`call this function from the main browser thread`);return new fa(e)}function ma(e){if(typeof window>`u`)throw Error(`call this function from the main browser thread`);return new fa(e.contentWindow,e.contentWindow,{loaded:window.document.readyState===`complete`,onLoaded:new Promise(e=>{window.addEventListener(`load`,()=>e())})})}function ha(){return c}globalThis.MonacoEnvironment?.globalAPI&&(globalThis.monaco=ha());var ga=i({CancellationTokenSource:()=>p,Emitter:()=>l,KeyCode:()=>ee,KeyMod:()=>o,MarkerSeverity:()=>e,MarkerTag:()=>u,Position:()=>f,Range:()=>t,Selection:()=>s,SelectionDirection:()=>m,Token:()=>n,Uri:()=>r,createWebWorker:()=>et,css:()=>Ft,editor:()=>d,html:()=>Ut,json:()=>an,languages:()=>a,lsp:()=>fn,typescript:()=>tt}),_a=ha();_a.languages.css=Ft,_a.languages.html=Ut,_a.languages.typescript=tt,_a.languages.json=an;function va(e){return new Worker(`/app/assets/editor.worker-Cn2oRESe.js`,{name:e?.name})}function ya(e){return new Worker(`/app/assets/css.worker-CvXBzhp8.js`,{name:e?.name})}function ba(e){return new Worker(`/app/assets/html.worker-BO6WuOEO.js`,{name:e?.name})}function xa(e){return new Worker(`/app/assets/json.worker-BkJRGcCJ.js`,{name:e?.name})}function Sa(e){return new Worker(`/app/assets/ts.worker-B6r0Skfj.js`,{name:e?.name})}var Ca=!1,wa=!1;function Ta(){if(!wa){wa=!0;try{let e=new va;setTimeout(()=>e.terminate(),0)}catch{}}}function Ea(){Ca||(Ca=!0,self.MonacoEnvironment={getWorker(e,t){switch(t){case`json`:return new xa;case`css`:case`scss`:case`less`:return new ya;case`html`:case`handlebars`:case`razor`:return new ba;case`typescript`:case`javascript`:return new Sa;default:return new va}}})}var Da=[{token:``,foreground:`D4D4D4`},{token:`comment`,foreground:`6A9955`,fontStyle:`italic`},{token:`comment.line`,foreground:`6A9955`,fontStyle:`italic`},{token:`comment.block`,foreground:`6A9955`,fontStyle:`italic`},{token:`keyword`,foreground:`569CD6`,fontStyle:`bold`},{token:`keyword.control`,foreground:`C586C0`},{token:`string`,foreground:`CE9178`},{token:`string.escape`,foreground:`D7BA7D`},{token:`number`,foreground:`B5CEA8`},{token:`regexp`,foreground:`D16969`},{token:`type`,foreground:`4EC9B0`},{token:`type.identifier`,foreground:`4EC9B0`},{token:`class`,foreground:`4EC9B0`},{token:`interface`,foreground:`4EC9B0`},{token:`function`,foreground:`DCDCAA`},{token:`method`,foreground:`DCDCAA`},{token:`variable`,foreground:`9CDCFE`},{token:`variable.predefined`,foreground:`4FC1FF`},{token:`constant`,foreground:`4FC1FF`},{token:`tag`,foreground:`569CD6`},{token:`attribute.name`,foreground:`9CDCFE`},{token:`attribute.value`,foreground:`CE9178`},{token:`delimiter`,foreground:`D4D4D4`},{token:`operator`,foreground:`D4D4D4`},{token:`metatag`,foreground:`569CD6`},{token:`metatag.content.html`,foreground:`CE9178`},{token:`key`,foreground:`9CDCFE`},{token:`string.key`,foreground:`9CDCFE`},{token:`string.value`,foreground:`CE9178`}],Oa=[{token:``,foreground:`24292E`},{token:`comment`,foreground:`6A737D`,fontStyle:`italic`},{token:`keyword`,foreground:`D73A49`,fontStyle:`bold`},{token:`string`,foreground:`032F62`},{token:`number`,foreground:`005CC5`},{token:`type`,foreground:`22863A`},{token:`function`,foreground:`6F42C1`},{token:`variable`,foreground:`24292E`},{token:`tag`,foreground:`22863A`},{token:`attribute.name`,foreground:`6F42C1`},{token:`attribute.value`,foreground:`032F62`}];function ka(e){e.editor.defineTheme(`nexus-dark`,{base:`vs-dark`,inherit:!0,rules:Da,colors:{"editor.background":`#1E1E1E`,"editor.foreground":`#D4D4D4`,"editorLineNumber.foreground":`#858585`,"editorLineNumber.activeForeground":`#C6C6C6`,"editor.selectionBackground":`#264F78`,"editor.inactiveSelectionBackground":`#3A3D41`,"editor.lineHighlightBackground":`#2A2D2E`,"editorCursor.foreground":`#AEAFAD`,"editorWhitespace.foreground":`#3B3B3B`,"editorIndentGuide.background":`#404040`,"editorIndentGuide.activeBackground":`#707070`,"editorBracketMatch.background":`#0064001a`,"editorBracketMatch.border":`#888888`}}),e.editor.defineTheme(`nexus-light`,{base:`vs`,inherit:!0,rules:Oa,colors:{"editor.background":`#FFFFFF`,"editor.foreground":`#24292E`,"editorLineNumber.foreground":`#959DA5`,"editorLineNumber.activeForeground":`#24292E`,"editor.selectionBackground":`#C8E1FF`,"editor.lineHighlightBackground":`#F6F8FA`,"editorCursor.foreground":`#24292E`,"editorIndentGuide.background":`#EFF2F5`,"editorIndentGuide.activeBackground":`#D0D7DE`}})}function Aa(){return`nexus-dark`}function ja(e){e.editor.setTheme(Aa())}var Ma=!1;function Na(){a.getLanguages().some(e=>e.id===`nginx`)||(a.register({id:`nginx`,extensions:[`.conf`],aliases:[`Nginx`,`nginx`]}),a.setMonarchTokensProvider(`nginx`,{defaultToken:``,ignoreCase:!0,tokenizer:{root:[[/\s+#.*$/,`comment`],[/#.*$/,`comment`],[/\b(server|listen|location|root|index|include|proxy_pass|proxy_set_header|fastcgi_pass|try_files|return|rewrite|if|set|limit_req|upstream|map|geo|ssl_certificate|access_log|error_log|gzip|types|default_type)\b/,`keyword`],[/\$[a-zA-Z_][\w]*/,`variable.predefined`],[/"[^"]*"/,`string`],[/'[^']*'/,`string`],[/\d+\.\d+\.\d+\.\d+/,`number`],[/\d+[kmg]?\b/,`number`],[/[{};]/,`delimiter`]]}}))}function Pa(){return Ma||=(Ea(),ka(ga),Na(),ja(ga),!0),ga}function Fa(e){return{theme:Aa(),automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!0},matchBrackets:`always`,fontSize:14,fontLigatures:!0,fontFamily:`ui-monospace, SFMono-Regular, 'Cascadia Code', Menlo, Monaco, Consolas, 'Courier New', monospace`,minimap:{enabled:!0},tabSize:4,insertSpaces:!0,wordWrap:`off`,scrollBeyondLastLine:!1,suggestOnTriggerCharacters:!0,smoothScrolling:!0,renderWhitespace:`selection`,colorDecorators:!0,occurrencesHighlight:`singleFile`,selectionHighlight:!0,renderLineHighlight:`line`,guides:{bracketPairs:!0,bracketPairsHorizontal:!0,indentation:!0,highlightActiveIndentation:!0},...e}}var Ia={js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`javascript`,ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`typescript`,vue:`html`,py:`python`,pyw:`python`,rb:`ruby`,sh:`shell`,bash:`shell`,zsh:`shell`,fish:`shell`,php:`php`,phtml:`php`,java:`java`,go:`go`,rs:`rust`,c:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,h:`c`,hpp:`cpp`,cs:`csharp`,swift:`swift`,kt:`kotlin`,kts:`kotlin`,html:`html`,htm:`html`,xhtml:`html`,css:`css`,scss:`scss`,sass:`scss`,less:`less`,json:`json`,jsonc:`json`,xml:`xml`,xsl:`xml`,xsd:`xml`,svg:`xml`,yaml:`yaml`,yml:`yaml`,toml:`toml`,md:`markdown`,mdx:`mdx`,sql:`sql`,graphql:`graphql`,gql:`graphql`,dockerfile:`dockerfile`,conf:`ini`,cfg:`ini`,cnf:`ini`,ini:`ini`,properties:`ini`,env:`ini`,tpl:`html`,twig:`twig`,blade:`php`,lua:`lua`,pl:`perl`,pm:`perl`,ps1:`powershell`,psm1:`powershell`,bat:`bat`,cmd:`bat`,r:`r`,dart:`dart`,scala:`scala`,clj:`clojure`,ex:`elixir`,exs:`elixir`,erl:`elixir`,hs:`haskell`,ml:`fsharp`,fs:`fsharp`,fsx:`fsharp`,vb:`vb`,pas:`pascal`,dockerignore:`plaintext`,gitignore:`plaintext`,gitattributes:`plaintext`,editorconfig:`ini`,htaccess:`shell`,service:`ini`,socket:`ini`,timer:`ini`,mount:`ini`,fstab:`ini`,crt:`plaintext`,pem:`plaintext`,key:`plaintext`,pub:`plaintext`,log:`plaintext`,lock:`json`},La={dockerfile:`dockerfile`,makefile:`makefile`,gnumakefile:`makefile`,"cmakelists.txt":`plaintext`,gemfile:`ruby`,rakefile:`ruby`,vagrantfile:`ruby`,nginx:`nginx`,"nginx.conf":`nginx`,".env":`ini`,".env.example":`ini`,".env.local":`ini`,".gitignore":`plaintext`,".dockerignore":`plaintext`,".htaccess":`shell`,hosts:`plaintext`,crontab:`shell`,"supervisord.conf":`ini`,"php.ini":`ini`,"my.cnf":`ini`},Ra=[{title:`自动`,value:`auto`},{title:`Plain Text`,value:`plaintext`},{title:`PHP`,value:`php`},{title:`JavaScript`,value:`javascript`},{title:`TypeScript`,value:`typescript`},{title:`JSON`,value:`json`},{title:`HTML`,value:`html`},{title:`CSS`,value:`css`},{title:`SCSS`,value:`scss`},{title:`Shell`,value:`shell`},{title:`Python`,value:`python`},{title:`Go`,value:`go`},{title:`Rust`,value:`rust`},{title:`Java`,value:`java`},{title:`C`,value:`c`},{title:`C++`,value:`cpp`},{title:`C#`,value:`csharp`},{title:`SQL`,value:`sql`},{title:`YAML`,value:`yaml`},{title:`TOML`,value:`toml`},{title:`INI / Config`,value:`ini`},{title:`Markdown`,value:`markdown`},{title:`Dockerfile`,value:`dockerfile`},{title:`Nginx`,value:`nginx`},{title:`XML`,value:`xml`},{title:`Vue (HTML)`,value:`html`},{title:`Ruby`,value:`ruby`},{title:`Perl`,value:`perl`},{title:`PowerShell`,value:`powershell`}];function za(e,t){let n=e.toLowerCase(),r=(t?.split(`/`).pop()??e).toLowerCase();if(La[r])return La[r];if(La[n])return La[n];if(n.endsWith(`.blade.php`))return`php`;let i=n.split(`.`);if(i.length>2&&i[i.length-1]===`php`&&i.slice(-2).join(`.`)===`blade.php`)return`php`;let a=n.includes(`.`)?n.split(`.`).pop()??``:``;return a&&Ia[a]?Ia[a]:r.includes(`nginx`)&&(r.endsWith(`.conf`)||r===`nginx.conf`)?`nginx`:`plaintext`}function Ba(e,t,n){return n&&n!==`auto`?n:za(e,t)}var Va={class:`text-truncate`,style:{"max-width":`130px`}},Ha={key:0,class:`text-warning ml-1`,style:{"font-size":`10px`}},Ua={class:`file-editor-main d-flex flex-grow-1 min-h-0`},Wa={class:`file-editor-content d-flex flex-column flex-grow-1 min-w-0 min-h-0`},Ga={class:`file-editor-body flex-grow-1 position-relative min-h-0`},Ka={class:`file-editor-status text-caption px-3 py-1 d-flex flex-wrap align-center ga-3`},qa={class:`text-mono`},Ja={key:0,class:`text-primary`,style:{"font-size":`11px`}},Ya={class:`text-truncate flex-grow-1 text-medium-emphasis`},Xa={key:2,class:`text-warning`},Za={key:0,class:`text-warning ml-1`},Qa=`nexus_file_editor_float`,$a=st(Re({__name:`FileEditorWorkbench`,props:{serverId:{},currentPath:{}},emits:[`saved`,`closed`,`path-change`,`paste-target`],setup(e,{expose:t,emit:n}){let r=Pa(),i=e,a=n,o=nt(),s=Math.min(1120,Math.round(window.innerWidth*.88)),c=Math.min(760,Math.round(window.innerHeight*.82)),{panelStyle:l,startDrag:u,startResize:d,clampToViewport:ee}=Pt(Qa,{x:Math.max(24,(window.innerWidth-s)/2),y:Math.max(24,(window.innerHeight-c)/2),w:s,h:c}),f=Me([]),p=y(null),m=y(!1),h=y(!1),_=y(!1),v=y(!1),x=y(!1),te=y(1),C=y(1),ae=y(i.currentPath||`/www/wwwroot`),se=k(()=>{let e=H(i.currentPath||`/www/wwwroot`);return e===`/`||e.startsWith(`/www/wwwroot`)?xt:e}),ce=y(!0),le=y(!1),O=y(null),ue=y(),j=null,pe=null,me=0;function he(){f.value=f.value.slice()}function ge(e,t){e.modified!==t&&(e.modified=t,he())}let ye=y(null),xe=y(!1),F=k(()=>f.value.find(e=>e.id===p.value)??null),Ce=k(()=>F.value?Ba(F.value.name,F.value.path,F.value.languageId):`plaintext`),we=k({get:()=>F.value?.languageId??`auto`,set:e=>{F.value&&(F.value.languageId=e===`auto`?null:e)}}),Te=k(()=>h.value?void 0:l.value),Ee=k(()=>xe.value?`关闭编辑器`:`关闭文件`),De=k(()=>{let e=(ye.value?f.value.find(e=>e.id===ye.value):f.value.find(e=>e.modified))?.name??`文件`;return xe.value?`「${e}」等未保存的更改将丢失,确定吗?`:`「${e}」已修改但未保存,确定要关闭吗?`}),Oe=k(()=>O.value?f.value.find(e=>e.id===O.value)?.name??``:``);function Ae(e){return e.replace(/\r\n/g,`
`).replace(/\r/g,`
`)}function je(e,t){let n=Ae(e);return t===`CRLF`?n.replace(/\n/g,`\r
`):n}function Ne(e){return Ba(e.name,e.path,e.languageId)}function Pe(e){return`${i.serverId}:${H(e)}`}function Fe(e){let t=Ct(H(e));t&&(ae.value=t)}function Ie(e){ae.value=H(e),a(`path-change`,ae.value)}function Le(e){h.value||e.target.closest(`button, .v-tab, .v-btn, input, a`)||u(e)}function Re(){if(!j)return;let e=j.getPosition();te.value=e?.lineNumber??1,C.value=e?.column??1}function ze(e=!1){if(!j||!F.value)return;let t=F.value,n=j.saveViewState();t.viewState=n?ne(n):null;let r=()=>{!j||F.value?.id!==t.id||(t.content=Ae(j.getValue()),ge(t,t.content!==t.originalContent))};if(e){pe&&=(clearTimeout(pe),null),r();return}pe&&clearTimeout(pe),pe=setTimeout(r,250)}async function Be(){let e=++me;if(await He(),await He(),e!==me||!F.value)return;Ge();let t=(n=0)=>{if(e!==me||!j)return;j.layout();let r=ue.value;r&&(r.clientWidth<2||r.clientHeight<2)&&n<12&&setTimeout(()=>t(n+1),50)};requestAnimationFrame(()=>t())}function B(){me++,pe&&=(clearTimeout(pe),null),j?.dispose(),j=null,v.value=!1}function Ve(){for(let e of f.value)e.model?.dispose();f.value=[],p.value=null,B(),h.value=!1,m.value=!1}function Ue(e){let t=F.value;!t||!t.model||(t.languageId=e===`auto`||!e?null:e,r.editor.setModelLanguage(t.model,Ne(t)))}function We(e){if(j){if(!e.model){let t=Ne(e),n=Ae(e.content);e.model=ne(r.editor.createModel(n,t,r.Uri.parse(`nexus://${i.serverId}${e.path}`)))}j.setModel(e.model),e.viewState&&j.restoreViewState(e.viewState),r.editor.setModelLanguage(e.model,Ne(e)),Fe(e.path),Re()}}function Ge(){if(!ue.value||!F.value)return;B(),v.value=!1;let e=F.value;if(!e.model){let t=Ne(e),n=Ae(e.content);e.model=ne(r.editor.createModel(n,t,r.Uri.parse(`nexus://${i.serverId}${e.path}`)))}j=r.editor.create(ue.value,{...Fa(),model:e.model,wordWrap:ce.value?`on`:`off`,automaticLayout:!0}),e.viewState&&j.restoreViewState(e.viewState),j.onDidChangeModelContent(()=>{ze(),Re()}),j.onDidChangeCursorPosition(()=>{Re()}),j.addCommand(r.KeyMod.CtrlCmd|r.KeyCode.KeyS,()=>{at()}),j.addCommand(r.KeyCode.Escape,()=>{h.value&&=!1}),j.addCommand(r.KeyMod.Alt|r.KeyCode.KeyZ,()=>{it()}),Fe(e.path),ja(r),v.value=!0,Re()}function Ke(e){if(typeof e!=`string`||!e)return;ze(!0),p.value=e;let t=f.value.find(t=>t.id===e);t&&(j?We(t):Be())}function Je(e){p.value=e,m.value=!1,He(()=>{ee();let t=f.value.find(t=>t.id===e);t&&(j?We(t):Be())})}function Ye(e){let t=Pe(e.path),n=f.value.find(e=>e.id===t);if(n){p.value=t,m.value=!1,Be().then(()=>{j&&We(n)});return}let a=Ae(e.content),o=Ba(e.name,e.path,null),s=ne(r.editor.createModel(a,o,r.Uri.parse(`nexus://${i.serverId}${e.path}`)));f.value=[...f.value,{id:t,path:e.path,name:e.name,content:a,originalContent:a,modified:!1,languageId:null,eol:e.eol,etag:e.etag,mtime:e.mtime,model:s,viewState:null}],p.value=t,m.value=!1,Fe(e.path),Be()}function Xe(e){let t=f.value.findIndex(t=>t.id===e);if(!(t<0)){if(f.value[t].model?.dispose(),f.value=f.value.filter(t=>t.id!==e),f.value.length===0){p.value=null,B(),h.value=!1,m.value=!1,a(`closed`);return}if(p.value===e){let e=f.value[Math.min(t,f.value.length-1)];p.value=e.id,Be().then(()=>{let t=f.value.find(t=>t.id===e.id);t&&j&&We(t)})}}}function Ze(e){let t=f.value.find(t=>t.id===e);if(!t)return;if(p.value===e&&ze(!0),t.modified){ye.value=e,xe.value=!1,x.value=!0;return}let n=p.value===e;n&&B(),Xe(e),n&&p.value&&Be()}function $e(){if(ze(!0),f.value.some(e=>e.modified)){ye.value=null,xe.value=!0,x.value=!0;return}Ve(),a(`closed`)}function et(){x.value=!1,ye.value=null,xe.value=!1}function tt(){if(x.value=!1,xe.value)Ve(),a(`closed`);else if(ye.value){let e=ye.value,t=p.value===e;t&&B(),Xe(e),t&&p.value&&Be()}ye.value=null,xe.value=!1}async function rt(){let e=xe.value,t=ye.value;if(await at(),x.value=!1,xe.value=!1,ye.value=null,e){f.value.some(e=>e.modified)||(Ve(),a(`closed`));return}if(t){let e=f.value.find(e=>e.id===t);if(e&&!e.modified){let e=p.value===t;e&&B(),Xe(t),e&&p.value&&Be()}}}function it(){ce.value=!ce.value,j?.updateOptions({wordWrap:ce.value?`on`:`off`})}async function at(e=!1){if(!i.serverId){o(`请先选择服务器`,`error`);return}ze(!0);let t=F.value;if(!t||!t.modified)return;let n=je(j?.getValue()??t.content,t.eol);_.value=!0;try{let r=await M.post(`/sync/write-file`,{server_id:i.serverId,path:t.path,content:n,etag:e?null:t.etag}),s=Ae(n);t.content=s,t.originalContent=s,ge(t,!1),t.etag=r?.etag??null,he(),o(`文件已保存`),a(`saved`,t.path)}catch(e){if(e instanceof ie&&e.status===409){O.value=t.id,le.value=!0;return}o(e instanceof ie||e instanceof Error?e.message:`保存失败`,`error`)}finally{_.value=!1}}function st(){le.value=!1,O.value=null}async function dt(){le.value=!1;let e=O.value;O.value=null,!(!e||p.value!==e)&&await at(!0)}function ft(){le.value=!1;let e=O.value;if(O.value=null,!e)return;let t=f.value.find(t=>t.id===e);if(t){if(t.content=t.originalContent,ge(t,!1),t.model){let e=je(t.originalContent,t.eol);t.model.setValue(Ae(e))}he(),o(`已放弃本地修改`,`info`)}}qe(()=>i.currentPath,e=>{e&&(ae.value=H(e))}),qe(h,()=>{He(()=>j?.layout())}),qe(m,e=>{e||He(()=>j?.layout())});function ht(){return f.value.length>0}return t({openFile:Ye,hasOpenTabs:ht}),ke(()=>{for(let e of f.value)e.model?.dispose();B()}),(t,n)=>(L(),z(ve,null,[(L(),I(be,{to:`body`},[f.value.length>0&&!m.value?(L(),z(`div`,{key:0,class:fe([`file-editor-float`,{"file-editor-float--maximized":h.value}]),style:Qe(Te.value)},[P(D,{border:``,rounded:`lg`,class:`file-editor-panel d-flex flex-column h-100`},{default:S(()=>[g(`div`,{class:fe([`file-editor-toolbar d-flex align-center flex-shrink-0`,{"file-editor-toolbar--draggable":!h.value}]),onMousedown:Le},[h.value?V(``,!0):(L(),I(_e,{key:0,size:`16`,class:`ml-2 mr-1 text-disabled file-editor-drag-hint`,onMousedown:n[0]||=N(()=>{},[`stop`])},{default:S(()=>[...n[20]||=[R(` mdi-drag `,-1)]]),_:1})),P(mt,{modelValue:p.value,"onUpdate:modelValue":[n[1]||=e=>p.value=e,Ke],density:`compact`,"show-arrows":``,class:`file-editor-tabs flex-grow-1 min-w-0`,onMousedown:n[2]||=N(()=>{},[`stop`])},{default:S(()=>[(L(!0),z(ve,null,Se(f.value,e=>(L(),I(pt,{key:e.id,value:e.id,class:`text-none px-2`},{default:S(()=>[g(`span`,Va,b(e.name),1),e.modified?(L(),z(`span`,Ha,`●`)):V(``,!0),P(A,{icon:`mdi-close`,size:`x-small`,variant:`text`,class:`ml-1 opacity-60`,density:`compact`,onClick:N(t=>Ze(e.id),[`stop`])},null,8,[`onClick`])]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),P(E,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[3]||=N(()=>{},[`stop`])}),P(ut,{modelValue:we.value,"onUpdate:modelValue":[n[4]||=e=>we.value=e,Ue],items:T(Ra),"item-title":`title`,"item-value":`value`,density:`compact`,variant:`plain`,"hide-details":``,class:`file-editor-lang-select flex-shrink-0`,onMousedown:n[5]||=N(()=>{},[`stop`])},null,8,[`modelValue`,`items`]),P(A,{size:`small`,variant:`text`,color:ce.value?`primary`:void 0,title:ce.value?`关闭自动换行 (Alt+Z)`:`开启自动换行 (Alt+Z)`,density:`compact`,class:`flex-shrink-0 text-none px-2`,onMousedown:n[6]||=N(()=>{},[`stop`]),onClick:it},{default:S(()=>[...n[21]||=[R(` 自动换行 `,-1)]]),_:1},8,[`color`,`title`]),P(E,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[7]||=N(()=>{},[`stop`])}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-save`,loading:_.value,disabled:!F.value?.modified||!v.value,class:`flex-shrink-0 mr-1`,onMousedown:n[8]||=N(()=>{},[`stop`]),onClick:at},{default:S(()=>[...n[22]||=[R(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`]),P(A,{size:`small`,variant:`text`,icon:h.value?`mdi-fullscreen-exit`:`mdi-fullscreen`,title:h.value?`退出全屏 (Esc)`:`全屏`,density:`compact`,onMousedown:n[9]||=N(()=>{},[`stop`]),onClick:n[10]||=e=>h.value=!h.value},null,8,[`icon`,`title`]),P(A,{size:`small`,variant:`text`,icon:`mdi-window-minimize`,title:`最小化`,density:`compact`,onMousedown:n[11]||=N(()=>{},[`stop`]),onClick:n[12]||=e=>m.value=!0}),P(A,{size:`small`,variant:`text`,icon:`mdi-close`,title:`关闭编辑器`,density:`compact`,class:`mr-1`,onMousedown:n[13]||=N(()=>{},[`stop`]),onClick:$e})],34),g(`div`,Ua,[g(`aside`,{class:`file-editor-sidebar flex-shrink-0`,onMousedown:n[15]||=N(()=>{},[`stop`])},[P(jt,{embedded:``,"server-id":e.serverId||null,"root-path":se.value,"current-path":ae.value,onNavigate:Ie,onPasteTarget:n[14]||=e=>a(`paste-target`,e)},null,8,[`server-id`,`root-path`,`current-path`])],32),g(`div`,Wa,[g(`div`,Ga,[v.value?V(``,!0):(L(),I(oe,{key:0,indeterminate:``,absolute:``,class:`file-editor-progress`})),g(`div`,{ref_key:`editorHost`,ref:ue,class:`file-editor-host`},null,512)]),g(`div`,Ka,[g(`span`,qa,b(te.value)+`:`+b(C.value),1),P(E,{vertical:``,style:{height:`12px`}}),g(`span`,null,b(Ce.value),1),P(E,{vertical:``,style:{height:`12px`}}),ce.value?(L(),z(`span`,Ja,`换行`)):V(``,!0),ce.value?(L(),I(E,{key:1,vertical:``,style:{height:`12px`}})):V(``,!0),g(`span`,Ya,b(F.value?.path??``),1),F.value?.modified?(L(),z(`span`,Xa,`未保存`)):V(``,!0)])])]),h.value?V(``,!0):(L(),z(`div`,{key:0,class:`file-editor-resize`,title:`拖动调整大小`,onMousedown:n[16]||=N((...e)=>T(d)&&T(d)(...e),[`stop`])},null,32))]),_:1})],6)):V(``,!0),f.value.length>0&&m.value?(L(),I(D,{key:1,border:``,rounded:`lg`,class:`file-editor-dock`},{default:S(()=>[n[23]||=g(`span`,{class:`text-caption text-medium-emphasis mr-2`},`编辑器`,-1),(L(!0),z(ve,null,Se(f.value,e=>(L(),I(ct,{key:e.id,size:`small`,color:e.id===p.value?`primary`:void 0,variant:`tonal`,class:`cursor-pointer`,onClick:t=>Je(e.id)},{default:S(()=>[R(b(e.name)+` `,1),e.modified?(L(),z(`span`,Za,`●`)):V(``,!0)]),_:2},1032,[`color`,`onClick`]))),128)),P(ot),P(A,{size:`x-small`,variant:`text`,icon:`mdi-dock-window`,title:`展开`,onClick:n[17]||=e=>m.value=!1}),P(A,{size:`x-small`,variant:`text`,icon:`mdi-close`,title:`关闭全部`,onClick:$e})]),_:1})):V(``,!0)])),P(lt,{modelValue:x.value,"onUpdate:modelValue":n[18]||=e=>x.value=e,"max-width":`400`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[R(b(Ee.value),1)]),_:1}),P(de,null,{default:S(()=>[R(b(De.value),1)]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:et},{default:S(()=>[...n[24]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:tt},{default:S(()=>[...n[25]||=[R(`不保存`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:rt},{default:S(()=>[...n[26]||=[R(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:le.value,"onUpdate:modelValue":n[19]||=e=>le.value=e,"max-width":`440`,persistent:``},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,{class:`text-warning`},{default:S(()=>[P(_e,{start:``},{default:S(()=>[...n[27]||=[R(`mdi-alert-outline`,-1)]]),_:1}),n[28]||=R(` 文件冲突 `,-1)]),_:1}),P(de,null,{default:S(()=>[R(` 「`+b(Oe.value)+`」已被外部修改。`,1),n[29]||=g(`br`,null,null,-1),n[30]||=g(`strong`,null,`覆盖`,-1),n[31]||=R(`会以当前编辑内容覆盖服务器版本;`,-1),n[32]||=g(`strong`,null,`放弃`,-1),n[33]||=R(`会丢弃本地修改。 `,-1)]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:st},{default:S(()=>[...n[34]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:ft},{default:S(()=>[...n[35]||=[R(`放弃本地修改`,-1)]]),_:1}),P(A,{color:`warning`,variant:`flat`,onClick:dt},{default:S(()=>[...n[36]||=[R(`强制覆盖`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-7924b5d3`]]),eo=Symbol(`filesPage`);function to(e){je(eo,ue(e))}function no(){let e=Ee(eo);if(!e)throw Error(`useFilesPageContext() must be used inside FilesPage`);return e}var ro=Ae({divider:[Number,String],...Oe()},`VBreadcrumbsDivider`),io=Te()({name:`VBreadcrumbsDivider`,props:ro(),setup(e,{slots:t}){return Le(()=>g(`li`,{"aria-hidden":`true`,class:fe([`v-breadcrumbs-divider`,e.class]),style:Qe(e.style)},[t?.default?.()??e.divider])),{}}}),ao=Ae({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...Oe(),...Ze(te(),[`width`,`maxWidth`]),...he(),...Ne({tag:`li`})},`VBreadcrumbsItem`),oo=Te()({name:`VBreadcrumbsItem`,props:ao(),setup(e,{slots:t,attrs:n}){let r=C(e,n),i=k(()=>e.active||r.isActive?.value),{dimensionStyles:a}=Ge(e),{textColorClasses:o,textColorStyles:s}=pe(()=>i.value?e.activeColor:e.color);return Le(()=>P(e.tag,{class:fe([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":i.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:i.value&&e.activeClass},o.value,e.class]),style:Qe([s.value,a.value,e.style]),"aria-current":i.value?`page`:void 0},{default:()=>[r.isLink.value?g(`a`,Ie({class:`v-breadcrumbs-item--link`,onClick:r.navigate.value},r.linkProps),[t.default?.()??e.title]):t.default?.()??e.title]})),{}}}),so=Ae({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:Ve,items:{type:Array,default:()=>[]},...Oe(),...Be(),...Xe(),...Ne({tag:`ul`})},`VBreadcrumbs`),co=Te()({name:`VBreadcrumbs`,props:so(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=Je(()=>e.bgColor),{densityClasses:i}=De(e),{roundedClasses:a}=we(e);Fe({VBreadcrumbsDivider:{divider:le(()=>e.divider)},VBreadcrumbsItem:{activeClass:le(()=>e.activeClass),activeColor:le(()=>e.activeColor),color:le(()=>e.color),disabled:le(()=>e.disabled)}});let o=k(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return Le(()=>{let s=!!(t.prepend||e.icon);return P(e.tag,{class:fe([`v-breadcrumbs`,n.value,i.value,a.value,e.class]),style:Qe([r.value,e.style])},{default:()=>[s&&g(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[t.prepend?P(me,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},t.prepend):P(_e,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),o.value.map(({item:e,raw:n},r,i)=>g(ve,null,[t.item?.({item:e,index:r})??P(oo,Ie({key:r,disabled:r>=i.length-1},typeof e==`string`?{title:e}:e),{default:t.title?()=>t.title?.({item:e,index:r}):void 0}),r<i.length-1&&P(io,null,{default:t.divider?()=>t.divider?.({item:n,index:r}):void 0})])),t.default?.()]})}),{}}}),lo={class:`text-body-2 mr-4`},uo=Re({__name:`FilesBreadcrumb`,setup(e){let t=no();return(e,n)=>(L(),z(ve,null,[P(co,{items:T(t).breadcrumbs,class:`pa-0 mb-2`},{item:S(({item:e,index:n})=>[P(oo,{disabled:e.disabled,class:fe({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>T(t).onBreadcrumbClick(n)},{default:S(()=>[R(b(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:S(()=>[...n[1]||=[R(`/`,-1)]]),_:1},8,[`items`]),T(t).selectedFileCount>0?(L(),I(D,{key:0,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:S(()=>[P(de,{class:`d-flex align-center py-2`},{default:S(()=>[g(`span`,lo,`已选择 `+b(T(t).selectedFileCount)+` 个文件`,1),P(ot),P(A,{size:`small`,variant:`text`,color:`error`,onClick:T(t).batchDelete},{default:S(()=>[...n[2]||=[R(`批量删除`,-1)]]),_:1},8,[`onClick`]),P(A,{size:`small`,variant:`text`,onClick:n[0]||=e=>T(t).selectedFiles=[]},{default:S(()=>[...n[3]||=[R(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):V(``,!0)],64))}});function fo(e){if(e.type===`symlink`)return`—`;let t=(e.owner??``).trim(),n=(e.group??``).trim();return t?!n||n===t?t:`${t}:${n}`:`—`}function po(e){if(e===`root`)return`warning`}function mo(e){let t=[];e.permissions&&t.push(e.permissions),e.mode_octal&&t.push(e.mode_octal);let n=(e.owner??``).trim(),r=(e.group??``).trim();return n&&t.push(r&&r!==n?`${n}:${r}`:n),t.join(` · `)||`—`}var ho=[{label:`文件 644`,mode:`644`,for:`file`},{label:`目录 755`,mode:`755`,for:`directory`},{label:`私密 600`,mode:`600`,for:`file`},{label:`协作 775`,mode:`775`,for:`directory`},{label:`可执行 755`,mode:`755`,for:`file`}],go=`docs/deploy/nexus-files-sudoers.example`;function _o(e){let t=e.toLowerCase();return t.includes(`permission denied`)||t.includes(`operation not permitted`)||t.includes(`无法访问`)||t.includes(`无权限`)||t.includes(`无写入权限`)||t.includes(`读取失败`)||t.includes(`chmod 失败`)}function vo(e,t){if(!t||t===`root`||e.type!==`file`)return!1;let n=e.permissions??``;if(n.length<10)return!1;let r=(e.owner??``).trim(),i=(e.group??``).trim(),a=n.slice(1,4),o=n.slice(4,7),s=n.slice(7,10);return r===t?!a.includes(`r`):(i&&i===t||!s.includes(`r`))&&!o.includes(`r`)}function yo(){return`目标机安装示例:${go}(复制到 /etc/sudoers.d/nexus-files 后执行 visudo -cf 校验)`}function bo(e){if(e.isRootSsh)return null;let t=[],n=e.unreadableCount??0;if(e.lastReadDeniedPath&&t.push(`无法读取「${e.lastReadDeniedPath}」:当前 SSH 用户无权限。`),n>0&&e.sshUser&&t.push(`当前目录约 ${n} 个文件对 SSH 用户「${e.sshUser}」不可读。`),t.length>0&&(e.filesElevation===`off`?t.push(`此服务器「文件提权」已关闭,不会自动 sudo。`):e.canSudo?e.whitelistOk?t.push(`系统已自动尝试 sudo -n 提权,如仍失败请检查 sudoers 白名单。`):t.push(`已有 sudo 但白名单不完整(须含 bash、chmod、chown、tee、cat 等)。`):t.push(`请配置免密 sudo(NOPASSWD)或使用「一键配置」,或改用 root SSH 用户。`)),!t.length)return null;let r=e.filesElevation===`off`||!e.canSudo||!e.whitelistOk?` ${yo()}`:``;return{type:!e.canSudo||e.filesElevation===`off`?`error`:`warning`,text:`${t.join(` `)}${r}`}}var xo={key:0,class:`text-body-2 mb-3 text-medium-emphasis`},So={key:1,class:`text-caption mb-4`},Co={class:`d-flex flex-wrap ga-2 mb-4`},wo={class:`d-flex align-center flex-wrap ga-2 mb-2`},To={class:`text-body-2`},Eo={key:0,class:`text-caption mt-1`},Do={class:`text-caption text-medium-emphasis mb-0`},Oo=Re({__name:`FilePermissionDialog`,props:{modelValue:{type:Boolean},file:{},serverId:{},loading:{type:Boolean}},emits:[`update:modelValue`,`apply`],setup(e,{emit:t}){let n=e,r=t,i=y(``),a=y(``),o=y(``),s=y(null),c=y(!1),l=y(!1),u=k(()=>n.file?.type===`directory`),d=k(()=>n.file?.name??``),ee=k(()=>n.file?mo(n.file):``),f=k(()=>{let e=n.file?.type===`directory`?`directory`:`file`;return ho.filter(t=>t.for===e||t.for===`file`)}),p=k(()=>s.value?s.value.is_root||s.value.can_sudo_nopasswd&&s.value.whitelist_ok?`success`:s.value.can_sudo_nopasswd?`warning`:`error`:`info`);qe(()=>[n.modelValue,n.file],([e,t])=>{!e||!t||(i.value=t.mode_octal||``,a.value=t.owner||``,o.value=t.group&&t.group!==t.owner?t.group:``,l.value=!1,s.value=null,n.serverId&&h())});function m(e){return e===`off`?`关闭提权`:e===`always_sudo`?`始终 sudo`:`自动 sudo`}async function h(){if(n.serverId){c.value=!0;try{s.value=await M.get(`/servers/${n.serverId}/files-capability`)}catch(e){s.value={ssh_user:``,is_root:!1,files_elevation:`auto_sudo`,can_sudo_nopasswd:!1,whitelist_ok:!1,message:e instanceof Error?e.message:`检测失败`,docs_path:`docs/deploy/nexus-files-sudoers.example`}}finally{c.value=!1}}}function _(e){return t=>!!String(t||``).trim()||`${e}不能为空`}function v(e){return/^[0-7]{3,4}$/.test(String(e||``).trim())||`格式: 34 位八进制`}let x=/^[a-zA-Z0-9_.-]+$/;function te(e){let t=String(e||``).trim();return t?x.test(t)||`仅允许字母、数字、._-`:!0}function ne(e){let t=String(e||``).trim();return t?a.value.trim()?x.test(t)||`仅允许字母、数字、._-`:`请先填写属主`:!0}function ie(e){i.value=e}function C(){let e=i.value.trim();if(!/^[0-7]{3,4}$/.test(e))return;let t=a.value.trim(),s=o.value.trim(),c=u.value&&l.value;if(c){let t=n.file?.name??`该目录`;if(!window.confirm(`确认对目录「${t}」及其全部子项递归应用权限 ${e}?此操作影响范围大且不可自动撤销。`))return}r(`apply`,{mode:e,owner:t||void 0,group:s||void 0,recursive:c||void 0})}return(t,n)=>(L(),I(lt,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[5]||=e=>r(`update:modelValue`,e)},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[6]||=[R(`修改权限`,-1)]]),_:1}),P(de,null,{default:S(()=>[d.value?(L(),z(`p`,xo,b(d.value),1)):V(``,!0),ee.value?(L(),z(`p`,So,` 当前:`+b(ee.value),1)):V(``,!0),g(`div`,Co,[(L(!0),z(ve,null,Se(f.value,e=>(L(),I(ct,{key:e.mode+e.label,size:`small`,variant:`tonal`,color:`primary`,onClick:t=>ie(e.mode)},{default:S(()=>[R(b(e.label),1)]),_:2},1032,[`onClick`]))),128))]),P(B,{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,label:`八进制权限`,variant:`outlined`,density:`compact`,placeholder:`644 / 755`,rules:[_(`权限`),v],class:`mb-2`,onKeydown:se(C,[`enter`])},null,8,[`modelValue`,`rules`]),P(B,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,label:`属主(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[te],class:`mb-2`},null,8,[`modelValue`,`rules`]),P(B,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e,label:`属组(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[ne],class:`mb-2`},null,8,[`modelValue`,`rules`]),u.value?(L(),I(dt,{key:2,modelValue:l.value,"onUpdate:modelValue":n[3]||=e=>l.value=e,label:`同时修改子项(递归 chmod/chown`,density:`compact`,"hide-details":``,color:`warning`,class:`mb-2`},null,8,[`modelValue`])):V(``,!0),P(E,{class:`my-4`}),g(`div`,wo,[n[8]||=g(`span`,{class:`text-caption text-medium-emphasis`},`提权能力`,-1),P(A,{size:`small`,variant:`tonal`,loading:c.value,disabled:!e.serverId,onClick:h},{default:S(()=>[...n[7]||=[R(` 检测提权能力 `,-1)]]),_:1},8,[`loading`,`disabled`])]),s.value?(L(),I(vt,{key:3,type:p.value,variant:`tonal`,density:`compact`,class:`mb-2`},{default:S(()=>[g(`div`,To,b(s.value.message),1),s.value.ssh_user?(L(),z(`div`,Eo,` SSH 用户:`+b(s.value.ssh_user)+` · 策略:`+b(m(s.value.files_elevation)),1)):V(``,!0)]),_:1},8,[`type`])):V(``,!0),g(`p`,Do,[n[9]||=R(` 非 root 用户写/chmod 失败时将按服务器策略尝试 `,-1),n[10]||=g(`code`,null,`sudo -n`,-1),R(`。 `+b(T(yo)()),1)])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[4]||=e=>r(`update:modelValue`,!1)},{default:S(()=>[...n[11]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:e.loading,onClick:C},{default:S(()=>[...n[12]||=[R(`应用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),ko={class:`text-body-2 mb-3`},Ao={class:`text-body-2 mb-2 text-truncate`},jo={class:`text-truncate`},Mo={key:1,class:`files-preview-body text-body-2`},No=st(Re({__name:`FilesDialogs`,setup(e){let t=no();return(e,n)=>(L(),z(ve,null,[P(lt,{modelValue:T(t).showUpload,"onUpdate:modelValue":n[2]||=e=>T(t).showUpload=e,"max-width":`500`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[25]||=[R(`上传文件`,-1)]]),_:1}),P(de,null,{default:S(()=>[P(ft,{modelValue:T(t).uploadFiles,"onUpdate:modelValue":n[0]||=e=>T(t).uploadFiles=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[1]||=e=>T(t).showUpload=!1},{default:S(()=>[...n[26]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:T(t).uploading,onClick:T(t).doUpload},{default:S(()=>[...n[27]||=[R(`上传`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showNewFile,"onUpdate:modelValue":n[5]||=e=>T(t).showNewFile=e,"max-width":`400`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[28]||=[R(`新建文件`,-1)]]),_:1}),P(de,null,{default:S(()=>[P(B,{modelValue:T(t).newFileName,"onUpdate:modelValue":n[3]||=e=>T(t).newFileName=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[T(t).validatePathSegment],placeholder:`example.conf`,autofocus:``,onKeydown:se(T(t).doNewFile,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[4]||=e=>T(t).showNewFile=!1},{default:S(()=>[...n[29]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:T(t).actionLoading,onClick:T(t).doNewFile},{default:S(()=>[...n[30]||=[R(`创建`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showMkdir,"onUpdate:modelValue":n[8]||=e=>T(t).showMkdir=e,"max-width":`400`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[31]||=[R(`新建目录`,-1)]]),_:1}),P(de,null,{default:S(()=>[P(B,{modelValue:T(t).mkdirName,"onUpdate:modelValue":n[6]||=e=>T(t).mkdirName=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[T(t).validatePathSegment],onKeydown:se(T(t).doMkdir,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[7]||=e=>T(t).showMkdir=!1},{default:S(()=>[...n[32]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:T(t).doMkdir},{default:S(()=>[...n[33]||=[R(`创建`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showFileDelete,"onUpdate:modelValue":n[10]||=e=>T(t).showFileDelete=e,"max-width":`400`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[34]||=[R(`确认删除`,-1)]]),_:1}),P(de,null,{default:S(()=>[n[35]||=R(` 确定要删除 `,-1),g(`strong`,null,b(T(t).deletingFile?.name),1),n[36]||=R(` 吗? `,-1)]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[9]||=e=>T(t).showFileDelete=!1},{default:S(()=>[...n[37]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`error`,variant:`flat`,onClick:T(t).doDeleteFile},{default:S(()=>[...n[38]||=[R(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showRename,"onUpdate:modelValue":n[13]||=e=>T(t).showRename=e,"max-width":`400`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[39]||=[R(`重命名`,-1)]]),_:1}),P(de,null,{default:S(()=>[P(B,{modelValue:T(t).newName,"onUpdate:modelValue":n[11]||=e=>T(t).newName=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[T(t).required(`名称`)],autofocus:``,onKeydown:se(T(t).doRename,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[12]||=e=>T(t).showRename=!1},{default:S(()=>[...n[40]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,onClick:T(t).doRename},{default:S(()=>[...n[41]||=[R(`确定`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(Oo,{modelValue:T(t).showChmod,"onUpdate:modelValue":n[14]||=e=>T(t).showChmod=e,file:T(t).chmodFile,"server-id":T(t).selectedServer,loading:T(t).chmodLoading,onApply:T(t).doChmod},null,8,[`modelValue`,`file`,`server-id`,`loading`,`onApply`]),P(lt,{modelValue:T(t).showCompress,"onUpdate:modelValue":n[18]||=e=>T(t).showCompress=e,"max-width":`440`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[42]||=[R(`压缩`,-1)]]),_:1}),P(de,null,{default:S(()=>[g(`p`,ko,`将压缩 `+b(T(t).compressPaths.length)+` 项到当前目录`,1),P(B,{modelValue:T(t).compressDest,"onUpdate:modelValue":n[15]||=e=>T(t).compressDest=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),P(ut,{modelValue:T(t).compressFormat,"onUpdate:modelValue":n[16]||=e=>T(t).compressFormat=e,items:[{title:`tar.gz`,value:`tar.gz`},{title:`zip`,value:`zip`}],"item-title":`title`,"item-value":`value`,label:`格式`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[17]||=e=>T(t).showCompress=!1},{default:S(()=>[...n[43]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:T(t).actionLoading,onClick:T(t).doCompress},{default:S(()=>[...n[44]||=[R(`压缩`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showDecompress,"onUpdate:modelValue":n[21]||=e=>T(t).showDecompress=e,"max-width":`440`},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,null,{default:S(()=>[...n[45]||=[R(`解压`,-1)]]),_:1}),P(de,null,{default:S(()=>[g(`p`,Ao,b(T(t).decompressSource),1),P(B,{modelValue:T(t).decompressDest,"onUpdate:modelValue":n[19]||=e=>T(t).decompressDest=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[20]||=e=>T(t).showDecompress=!1},{default:S(()=>[...n[46]||=[R(`取消`,-1)]]),_:1}),P(A,{color:`primary`,variant:`flat`,loading:T(t).actionLoading,onClick:T(t).doDecompress},{default:S(()=>[...n[47]||=[R(`解压`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),P(lt,{modelValue:T(t).showPreview,"onUpdate:modelValue":n[24]||=e=>T(t).showPreview=e,"max-width":`900`,scrollable:``},{default:S(()=>[P(D,{border:``},{default:S(()=>[P(re,{class:`d-flex align-center`},{default:S(()=>[g(`span`,jo,b(T(t).previewTitle),1),P(ot),P(A,{icon:`mdi-close`,variant:`text`,onClick:n[22]||=e=>T(t).showPreview=!1})]),_:1}),P(E),P(de,{style:{"max-height":`70vh`}},{default:S(()=>[T(t).previewLoading?(L(),I(oe,{key:0,indeterminate:``,class:`mb-2`})):(L(),z(`pre`,Mo,b(T(t).previewContent),1))]),_:1}),P(w,null,{default:S(()=>[P(ot),P(A,{variant:`text`,onClick:n[23]||=e=>T(t).showPreview=!1},{default:S(()=>[...n[48]||=[R(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-2d690974`]]),Po=Ae({id:String,interactive:Boolean,text:String,...j(F({closeOnBack:!1,location:`end`,locationStrategy:`connected`,eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:`auto`,scrim:!1,scrollStrategy:`reposition`,transition:null}),[`absolute`,`retainFocus`,`captureFocus`,`disableInitialFocus`])},`VTooltip`),Fo=Te()({name:`VTooltip`,props:Po(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=_(e,`modelValue`),{scopeId:r}=Ke(),i=Ce(),a=le(()=>e.id||`v-tooltip-${i}`),o=y(),s=k(()=>e.location.split(` `).length>1?e.location:e.location+` center`),c=k(()=>e.origin===`auto`||e.origin===`overlap`||e.origin.split(` `).length>1||e.location.split(` `).length>1?e.origin:e.origin+` center`),l=le(()=>e.transition==null?n.value?`scale-transition`:`fade-transition`:e.transition),u=k(()=>Ie({"aria-describedby":a.value},e.activatorProps));return Le(()=>{let i=Ye.filterProps(e);return P(Ye,Ie({ref:o,class:[`v-tooltip`,{"v-tooltip--interactive":e.interactive},e.class],style:e.style,id:a.value},i,{modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,transition:l.value,absolute:!0,location:s.value,origin:c.value,role:`tooltip`,activatorProps:u.value,_disableGlobalStack:!0},r),{activator:t.activator,default:(...n)=>t.default?.(...n)??e.text})}),Ue({},o)}}),Io={class:`d-flex align-center ga-2 min-w-0`},Lo={class:`min-w-0`},Ro={key:0,class:`text-caption text-medium-emphasis text-truncate`},zo={class:`text-medium-emphasis`},Bo={class:`text-medium-emphasis`},Vo={class:`d-flex ga-1`},Ho={key:0,class:`text-center text-medium-emphasis py-8`},Uo={key:0,class:`text-caption mt-2 text-disabled`},Wo=st(Re({__name:`FilesList`,setup(e){let t=no();return(e,n)=>(L(),z(ve,null,[P(D,{elevation:`0`,border:``,rounded:`lg`,class:fe([`position-relative`,{"files-drop-active":T(t).dropActive}]),onDragenter:n[1]||=N(e=>T(t).dropActive=!0,[`prevent`]),onDragover:n[2]||=N(e=>T(t).dropActive=!0,[`prevent`]),onDragleave:n[3]||=N(e=>T(t).dropActive=!1,[`prevent`]),onDrop:N(T(t).onDropFiles,[`prevent`])},{default:S(()=>[T(t).loadingVisible?(L(),I(oe,{key:0,indeterminate:``,color:`primary`,height:`2`,class:`files-table-progress`})):V(``,!0),P(h,{modelValue:T(t).selectedFiles,"onUpdate:modelValue":n[0]||=e=>T(t).selectedFiles=e,items:T(t).displayedFiles,headers:T(t).fileHeaders,loading:T(t).loadingVisible,"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"row-props":T(t).fileRowProps},{"item.name":S(({item:e})=>[g(`div`,Io,[P(_e,{color:T(t).entryIconColor(e),size:`20`},{default:S(()=>[R(b(T(t).entryIcon(e)),1)]),_:2},1032,[`color`]),T(t).isEntryLikelyUnreadable(e,T(t).sshUserForFiles)?(L(),I(_e,{key:0,size:`18`,color:`warning`,title:`当前 SSH 用户可能无法读取`},{default:S(()=>[...n[20]||=[R(` mdi-shield-lock `,-1)]]),_:1})):V(``,!0),g(`div`,Lo,[g(`span`,{class:fe({"font-weight-medium":e.type===`directory`})},b(e.name),3),e.type===`symlink`&&e.link_target?(L(),z(`div`,Ro,` → `+b(e.link_target),1)):V(``,!0)])])]),"item.owner":S(({item:e})=>[P(Fo,{text:T(t).permissionTooltip(e),location:`top`},{activator:S(({props:n})=>[P(ct,Ie(n,{size:`small`,variant:`tonal`,color:T(t).ownerChipColor(e.owner||``),class:`text-none`}),{default:S(()=>[R(b(T(t).formatOwnerChip(e)),1)]),_:2},1040,[`color`])]),_:2},1032,[`text`])]),"item.size":S(({item:e})=>[g(`span`,zo,b(e.type===`directory`?`—`:T(t).formatSize(e.size)),1)]),"item.modified":S(({item:e})=>[g(`span`,Bo,b(e.modified||`—`),1)]),"item.actions":S(({item:e})=>[g(`div`,Vo,[T(t).isRegularFile(e)?(L(),I(A,{key:0,variant:`text`,size:`x-small`,density:`compact`,color:`primary`,onClick:N(n=>T(t).editFile(e),[`stop`])},{default:S(()=>[...n[21]||=[R(` 编辑 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),T(t).isRegularFile(e)?(L(),I(A,{key:1,variant:`text`,size:`x-small`,density:`compact`,onClick:N(n=>T(t).previewFile(e),[`stop`])},{default:S(()=>[...n[22]||=[R(` 查看 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),T(t).isRegularFile(e)?(L(),I(A,{key:2,variant:`text`,size:`x-small`,density:`compact`,onClick:N(n=>T(t).downloadFile(e),[`stop`])},{default:S(()=>[...n[23]||=[R(` 下载 `,-1)]]),_:1},8,[`onClick`])):V(``,!0),P(A,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:N(n=>T(t).confirmDeleteFile(e),[`stop`])},{default:S(()=>[...n[24]||=[R(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"no-data":S(()=>[T(t).pageReady&&!T(t).loading&&!T(t).loadingVisible&&T(t).files.length===0?(L(),z(`div`,Ho,[P(_e,{size:`40`,class:`mb-2`},{default:S(()=>[...n[25]||=[R(`mdi-folder-open-outline`,-1)]]),_:1}),g(`div`,null,b(T(t).emptyHint),1),T(t).selectedServer?(L(),z(`div`,Uo,` 单击目录进入 · 双击文件编辑 · Ctrl+A 全选 · Ctrl+C/V 复制粘贴 `)):V(``,!0)])):V(``,!0)]),_:1},8,[`modelValue`,`items`,`headers`,`loading`,`row-props`])]),_:1},8,[`class`,`onDrop`]),P(xe,{modelValue:T(t).showContextMenu,"onUpdate:modelValue":n[19]||=e=>T(t).showContextMenu=e,target:[T(t).contextX,T(t).contextY],location:`bottom start`},{default:S(()=>[P(We,{density:`compact`,nav:``},{default:S(()=>[T(t).contextFile&&T(t).contextFile.type===`directory`?(L(),I(Pe,{key:0,"prepend-icon":`mdi-folder-open`,onClick:n[4]||=e=>T(t).contextAction(`open`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[26]||=[R(`打开`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile&&T(t).isRegularFile(T(t).contextFile)?(L(),I(Pe,{key:1,"prepend-icon":`mdi-pencil`,onClick:n[5]||=e=>T(t).contextAction(`edit`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[27]||=[R(`编辑`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile&&T(t).isRegularFile(T(t).contextFile)?(L(),I(Pe,{key:2,"prepend-icon":`mdi-eye`,onClick:n[6]||=e=>T(t).contextAction(`preview`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[28]||=[R(`查看`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile&&T(t).isRegularFile(T(t).contextFile)?(L(),I(Pe,{key:3,"prepend-icon":`mdi-download`,onClick:n[7]||=e=>T(t).contextAction(`download`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[29]||=[R(`下载`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile?(L(),I(Pe,{key:4,"prepend-icon":`mdi-content-copy`,onClick:n[8]||=e=>T(t).contextAction(`copy`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[30]||=[R(`复制 (Ctrl+C)`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile?(L(),I(Pe,{key:5,"prepend-icon":`mdi-content-cut`,onClick:n[9]||=e=>T(t).contextAction(`cut`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[31]||=[R(`剪切 (Ctrl+X)`,-1)]]),_:1})]),_:1})):V(``,!0),P(Pe,{"prepend-icon":`mdi-content-paste`,disabled:!T(t).canPasteHere,onClick:n[10]||=e=>T(t).contextAction(`paste`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[32]||=[R(`粘贴到当前目录 (Ctrl+V)`,-1)]]),_:1})]),_:1},8,[`disabled`]),T(t).contextFile?.type===`directory`&&T(t).canPasteHere?(L(),I(Pe,{key:6,"prepend-icon":`mdi-folder-arrow-down`,onClick:n[11]||=e=>T(t).contextAction(`pasteInto`)},{default:S(()=>[P(v,null,{default:S(()=>[R(`粘贴到「`+b(T(t).contextFile.name)+`」`,1)]),_:1})]),_:1})):V(``,!0),P(Pe,{"prepend-icon":`mdi-link-variant`,onClick:n[12]||=e=>T(t).contextAction(`copyPath`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[33]||=[R(`复制路径`,-1)]]),_:1})]),_:1}),P(Pe,{"prepend-icon":`mdi-console`,onClick:n[13]||=e=>T(t).contextAction(`terminal`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[34]||=[R(`终端`,-1)]]),_:1})]),_:1}),P(E),T(t).contextFile&&(T(t).isRegularFile(T(t).contextFile)||T(t).contextFile.type===`directory`)?(L(),I(Pe,{key:7,"prepend-icon":`mdi-zip-box`,onClick:n[14]||=e=>T(t).contextAction(`compress`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[35]||=[R(`压缩`,-1)]]),_:1})]),_:1})):V(``,!0),T(t).contextFile&&T(t).isArchiveName(T(t).contextFile.name)?(L(),I(Pe,{key:8,"prepend-icon":`mdi-package-up`,onClick:n[15]||=e=>T(t).contextAction(`decompress`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[36]||=[R(`解压`,-1)]]),_:1})]),_:1})):V(``,!0),P(E),P(Pe,{"prepend-icon":`mdi-file-rename-box`,onClick:n[16]||=e=>T(t).contextAction(`rename`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[37]||=[R(`重命名`,-1)]]),_:1})]),_:1}),P(Pe,{"prepend-icon":`mdi-lock`,onClick:n[17]||=e=>T(t).contextAction(`chmod`)},{default:S(()=>[P(v,null,{default:S(()=>[...n[38]||=[R(`修改权限`,-1)]]),_:1})]),_:1}),P(E),P(Pe,{"prepend-icon":`mdi-delete`,onClick:n[18]||=e=>T(t).contextAction(`delete`)},{default:S(()=>[P(v,{class:`text-error`},{default:S(()=>[...n[39]||=[R(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`])],64))}}),[[`__scopeId`,`data-v-af3d7de3`]]),Go={class:`d-flex flex-wrap align-center justify-space-between ga-2`},Ko=Re({__name:`FilesPermissionAlert`,setup(e){let t=no();return(e,n)=>T(t).filesAccessHint?(L(),I(vt,{key:0,type:T(t).filesAccessHint.type,variant:`tonal`,closable:``,prominent:``,density:`comfortable`,class:`mb-4`,icon:`mdi-shield-lock-outline`,"onClick:close":T(t).dismissFilesAccessHint},{default:S(()=>[g(`div`,Go,[g(`span`,null,b(T(t).filesAccessHint.text.split(`目标机安装示例`)[0].trim()),1),T(t).sshUserForFiles&&T(t).sshUserForFiles!==`root`?(L(),I(A,{key:0,size:`small`,variant:`flat`,color:`primary`,"prepend-icon":`mdi-auto-fix`,loading:T(t).setupSudoLoading,disabled:T(t).setupSudoDone,onClick:N(T(t).setupFilesSudo,[`stop`])},{default:S(()=>[R(b(T(t).setupSudoDone?`已配置`:`一键配置 sudo 权限`),1)]),_:1},8,[`loading`,`disabled`,`onClick`])):V(``,!0)])]),_:1},8,[`type`,`onClick:close`])):V(``,!0)}}),qo={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},Jo=Re({__name:`FilesStatusBar`,setup(e){let t=no();return(e,n)=>(L(),z(`div`,qo,[g(`span`,null,b(T(t).statusSummary),1),T(t).browseError?(L(),I(ct,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:S(()=>[R(b(T(t).browseError),1)]),_:1})):V(``,!0),T(t).hasClipboard?(L(),I(ct,{key:1,size:`x-small`,color:`info`,variant:`tonal`,class:`cursor-pointer`,onClick:n[0]||=()=>T(t).pasteClipboard()},{default:S(()=>[R(b(T(t).clipboardSummary)+` → `+b(T(t).pasteDestLabel)+` · Ctrl+V 粘贴 `,1)]),_:1})):V(``,!0)]))}}),Yo=Re({__name:`FilesToolbar`,setup(e){let t=no();return(e,n)=>(L(),I(D,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:S(()=>[P(at,{align:`center`,dense:``},{default:S(()=>[P(it,{cols:`12`,sm:`4`},{default:S(()=>[P(ut,{modelValue:T(t).selectedServer,"onUpdate:modelValue":[n[0]||=e=>T(t).selectedServer=e,T(t).onServerChange],items:T(t).serverList,"item-title":`name`,"item-value":`id`,label:`选择服务器`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-server`},null,8,[`modelValue`,`items`,`onUpdate:modelValue`])]),_:1}),P(it,{cols:`12`,sm:`4`},{default:S(()=>[P(B,{modelValue:T(t).currentPath,"onUpdate:modelValue":n[1]||=e=>T(t).currentPath=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":T(t).browseCurrent,onKeydown:se(T(t).browseCurrent,[`enter`])},null,8,[`modelValue`,`onClick:appendInner`,`onKeydown`])]),_:1}),P(it,{cols:`12`,sm:`3`},{default:S(()=>[P(B,{modelValue:T(t).fileFilter,"onUpdate:modelValue":n[2]||=e=>T(t).fileFilter=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),P(it,{cols:`12`,sm:`3`},{default:S(()=>[P(ut,{modelValue:T(t).extFilter,"onUpdate:modelValue":n[3]||=e=>T(t).extFilter=e,items:T(t).FILE_EXT_FILTERS,"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),P(it,{cols:`12`,sm:`2`},{default:S(()=>[P(ut,{modelValue:T(t).sortBy,"onUpdate:modelValue":n[4]||=e=>T(t).sortBy=e,items:T(t).sortOptions,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),P(it,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:S(()=>[P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:n[5]||=e=>T(t).showUpload=!0},{default:S(()=>[...n[10]||=[R(` 上传 `,-1)]]),_:1}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!T(t).selectedServer,onClick:n[6]||=e=>T(t).showNewFile=!0},{default:S(()=>[...n[11]||=[R(` 新建文件 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:n[7]||=e=>T(t).showMkdir=!0},{default:S(()=>[...n[12]||=[R(` 新建目录 `,-1)]]),_:1}),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!T(t).selectedServer||!T(t).selectedFileCount,onClick:n[8]||=e=>T(t).openCompressDialog()},{default:S(()=>[...n[13]||=[R(` 压缩 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-paste`,disabled:!T(t).canPasteHere,onClick:n[9]||=()=>T(t).pasteClipboard()},{default:S(()=>[...n[14]||=[R(` 粘贴 `,-1)]]),_:1},8,[`disabled`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!T(t).canGoUp,onClick:T(t).goUp},{default:S(()=>[...n[15]||=[R(` 上级 `,-1)]]),_:1},8,[`disabled`,`onClick`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:T(t).browseCurrent},{default:S(()=>[...n[16]||=[R(`刷新`,-1)]]),_:1},8,[`onClick`]),P(A,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!T(t).selectedServer,onClick:T(t).openInTerminal},{default:S(()=>[...n[17]||=[R(` 终端 `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:1})]),_:1})]),_:1}))}}),Xo=y(null);function Zo(){let e=k(()=>Xo.value!==null),t=k(()=>Xo.value?`${Xo.value.mode===`cut`?`已剪切`:`已复制`} ${Xo.value.paths.length} 项`:``);function n(e,t,n){if(!n.length)return!1;let r=[...new Set(n.map(e=>H(e)))];return Xo.value={mode:e,serverId:t,paths:r,label:r.map(e=>e.split(`/`).pop()||e).join(`, `)},!0}function r(){Xo.value=null}function i(e){return!!(Xo.value&&e&&Xo.value.serverId===e)}function a(e,t){let n=H(t);for(let t of e){let e=H(t);if(n===e)return`「${e.split(`/`).pop()||e}」与目标路径相同,无需粘贴`;if(n.startsWith(`${e}/`))return`不能粘贴到源目录「${e}」的内部`}return null}async function o(e){let t=Xo.value;if(!t)throw Error(`剪贴板为空`);let n=H(e),i=a(t.paths,n);if(i)throw Error(i);let o=t.mode===`cut`?`move`:`copy`;await M.post(`/sync/file-clipboard`,{server_id:t.serverId,mode:o,sources:t.paths,dest_dir:n}),t.mode===`cut`&&r()}return{clipboard:Xo,hasClipboard:e,clipboardSummary:t,setFromSelection:n,clear:r,canPasteOnServer:i,validatePasteTarget:a,pasteToDirectory:o}}function Qo(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function $o(e,t,n){function r(r){if(!Qo(r.target)){if(r.key===`F5`){r.preventDefault(),e.refresh();return}if(r.key===`Backspace`){r.preventDefault(),e.goUp();return}if(r.key===`F2`&&t.value.length===1){r.preventDefault(),e.renameSelection();return}if(r.key===`Delete`&&t.value.length>0&&(r.preventDefault(),e.deleteSelection()),(r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`a`){r.preventDefault(),e.selectAll();return}if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`c`){t.value.length>0&&(r.preventDefault(),e.copySelection());return}if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`x`){t.value.length>0&&(r.preventDefault(),e.cutSelection());return}(r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`v`&&n.value&&(r.preventDefault(),e.pasteClipboard())}}ze(()=>window.addEventListener(`keydown`,r)),ke(()=>window.removeEventListener(`keydown`,r))}var es=`nexus:files:last_server_id`,ts=`nexus:files-hint-dismissed`,ns=5e3;function rs(e,t){return`${e}:${t}`}var is=$e(`files`,()=>{let e=y(null),t=y(xt),n=y([]),r=y(!1),i=y(!1),a=y(``),o=y(null),s=y(null),c=y(!1),l=y(!1),u=y(!1),d=y(!1),ee=y(!1),f=y(!1),p=new Map;function m(e){return Date.now()-e.at<=ns}function h(e,t){return p.get(rs(e,t))??null}function g(e,t){let n=h(e,t);return!n||!m(n)?null:n.items}function _(e,t){return h(e,t)?.etag}function v(e,t){let n=h(e,t);n&&(n.at=Date.now())}function b(e,t,n,r){let i=rs(e,t),a=p.get(i);if(p.set(i,{items:n,at:Date.now(),etag:r??a?.etag}),p.size>50){let e=[...p.entries()].sort((e,t)=>e[1].at-t[1].at)[0];e&&p.delete(e[0])}}function x(e,t){if(e==null){p.clear();return}if(t==null){let t=`${e}:`;for(let e of[...p.keys()])e.startsWith(t)&&p.delete(e);return}p.delete(rs(e,t))}function S(){s.value=null,c.value=!1,u.value=!1}return{selectedServer:e,currentPath:t,files:n,loading:r,loadingVisible:i,browseError:a,filesCapability:o,lastReadDeniedPath:s,accessHintDismissed:c,setupSudoLoading:l,setupSudoDone:u,pageReady:d,routeReady:ee,initing:f,getCacheEntry:h,getCached:g,getCachedEtag:_,touchCache:v,setCached:b,invalidateCache:x,resetForServerChange:S}}),as={directory:0,symlink:1,file:2};function os(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=as[e.type]??9,a=as[n.type]??9;if(i!==a)return i-a;let o=0;return o=t===`name`?e.name.localeCompare(n.name):t===`size`?(e.size??0)-(n.size??0):(e.modified??``).localeCompare(n.modified??``),o*r})}var ss=[{title:`全部`,value:``},{title:`.conf / .ini`,value:`conf,ini`},{title:`.log`,value:`log`},{title:`.sh`,value:`sh`},{title:`.py`,value:`py`},{title:`.json`,value:`json`},{title:`.yml / .yaml`,value:`yml,yaml`},{title:`.txt`,value:`txt`},{title:`.php`,value:`php`},{title:`.js / .ts`,value:`js,ts`}];function cs(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function ls(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}var us=300*1024,ds=2*1024*1024,fs=40,ps=4,ms=new Map;function hs(e,t){return`${e}:${H(t)}`}function gs(e){let t=H(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function _s(){ms.clear()}function vs(e,t){let n=H(t);for(let t of[...ms.keys()]){if(!t.startsWith(`${e}:`)){ms.delete(t);continue}gs(t.slice(`${e}:`.length))!==n&&ms.delete(t)}}function ys(e,t){ms.delete(hs(e,t))}function bs(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function xs(e){return e!=null&&e>0&&e>2097152}function Ss(e){return typeof e==`string`?{content:e,mtime:null,etag:null,eol:`LF`}:{content:e.content??JSON.stringify(e,null,2),mtime:e.mtime??null,etag:e.etag??null,eol:e.eol??`LF`}}async function Cs(e,t,n=us){let r=hs(e,t),i=ms.get(r);if(i!==void 0)return i;let a=Ss(await M.post(`/sync/read-file`,{server_id:e,path:H(t),max_size:n}));return ms.set(r,a),a}function ws(e,t,n){let r=n.filter(bs).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,fs);if(!r.length)return;let i=0,a=async()=>{for(;i<r.length;){let n=r[i++],a=U(t,n.name),o=hs(e,a);if(!ms.has(o))try{await Cs(e,a)}catch{}}},o=Math.min(ps,r.length);Promise.all(Array.from({length:o},()=>a()))}function Ts(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function Es(e){let t=nt(),{selectedServer:n,currentPath:r}=x(is()),{selectedFiles:i,selectedAbsolutePaths:a,clearSelection:o}=e.selection,{setFromSelection:s,canPasteOnServer:c,pasteToDirectory:l}=Zo(),u=y(!1),d=y(!1),ee=y(!1),f=y(``),p=y(!1),m=y(!1),h=y(``),g=y(`tar.gz`),_=y([]),v=y(!1),b=y(``),S=y(`.`),te=y(!1),ne=y([]),re=y(!1),ie=y(``),C=e.actionLoading??y(!1),ae=y(null),w=y(!1),T=y(``),oe=y(null),se=y(!1),ce=y(!1),E=y(null),D=y(!1),le=y(0),O=y(0),ue=y(null);function de(e){if(e)return H(e);let t=i.value.filter(e=>e.type===`directory`);return t.length===1&&i.value.length===1?U(r.value,t[0].name):H(r.value)}let A=k(()=>{let e=de();return e===H(r.value)?`当前目录`:e});function j(e){if(!n.value)return;let r=a(e);if(!r.length){t(`请先选择文件或目录`,`warning`);return}s(`copy`,n.value,r)&&t(`已复制 ${r.length} 项`)}function fe(e){if(!n.value)return;let r=a(e);if(!r.length){t(`请先选择文件或目录`,`warning`);return}s(`cut`,n.value,r)&&t(`已剪切 ${r.length} 项`)}async function pe(r){if(!n.value){t(`请先选择服务器`,`warning`);return}if(!c(n.value)){t(`剪贴板为空或服务器不一致`,`warning`);return}let i=de(r);C.value=!0;try{await l(i),o(),e.invalidateAfterMutation(i),await e.browse({force:!0}),t(`已粘贴到 ${i}`)}catch(e){t(e instanceof Error?e.message:`粘贴失败`,`error`)}finally{C.value=!1}}async function me(e){if(u.value=!1,!n.value){t(`请先选择服务器`,`warning`);return}let r=e.dataTransfer?.files;r?.length&&(ne.value=Array.from(r),await Oe())}function he(t){if(D.value=!1,!ue.value)return;let n=ue.value;switch(t){case`open`:e.openEntry(n);break;case`copy`:j([n]);break;case`cut`:fe([n]);break;case`paste`:pe();break;case`pasteInto`:n.type===`directory`&&pe(U(r.value,n.name));break;case`edit`:e.editFile(n);break;case`preview`:e.previewFile(n);break;case`download`:we(n);break;case`copyPath`:ge(n);break;case`terminal`:e.openInTerminal();break;case`compress`:_e([n]);break;case`decompress`:ve(n);break;case`rename`:xe(n);break;case`chmod`:P(n);break;case`delete`:Te(n);break}}async function ge(e){let n=U(r.value,e.name);try{await navigator.clipboard.writeText(n),t(`路径已复制`)}catch{t(`复制失败`,`error`)}}function _e(e){if(!n.value)return;let a=e?.length?e:i.value.length?i.value:[];if(!a.length){t(`请选择要压缩的文件或目录`,`warning`);return}_.value=a.map(e=>U(r.value,e.name));let o=a.length===1?a[0].name.replace(/\.[^.]+$/,``):`archive`;h.value=U(r.value,`${o}.tar.gz`),g.value=`tar.gz`,m.value=!0}function ve(e){if(n.value){if(!ls(e.name)){t(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}b.value=U(r.value,e.name),S.value=r.value,v.value=!0}}async function ye(){if(!(!n.value||!_.value.length||!h.value)){C.value=!0;try{let r=h.value;g.value===`zip`&&!r.endsWith(`.zip`)&&(r=r.replace(/\.tar\.gz$/i,`.zip`),r.endsWith(`.zip`)||(r+=`.zip`)),await M.post(`/sync/compress`,{server_id:n.value,paths:_.value,dest:r,format:g.value}),m.value=!1,o(),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`压缩完成`)}catch(e){t(e instanceof Error?e.message:`压缩失败`,`error`)}finally{C.value=!1}}}async function N(){if(!(!n.value||!b.value)){C.value=!0;try{await M.post(`/sync/decompress`,{server_id:n.value,path:b.value,dest:S.value||`.`}),v.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`解压完成`)}catch(e){t(e instanceof Error?e.message:`解压失败`,`error`)}finally{C.value=!1}}}async function be(){if(!n.value||!f.value)return;let i=wt(f.value);if(i!==!0){t(i,`warning`);return}let a=f.value,o=U(r.value,a);C.value=!0;try{await M.post(`/sync/write-file`,{server_id:n.value,path:o,content:``}),ee.value=!1,f.value=``,ys(n.value,o),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`文件已创建`),await He(),e.editorWorkbench.value?.openFile({path:o,name:a,content:``})}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{C.value=!1}}function xe(e){oe.value=e,T.value=e.name,w.value=!0}async function Se(){if(!(!n.value||!oe.value||!T.value))try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`rename`,path:U(r.value,oe.value.name),new_path:U(r.value,T.value)}),w.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`重命名成功`)}catch(e){t(e instanceof Error?e.message:`重命名失败`,`error`)}}function P(e){E.value=e,se.value=!0}async function F(i){if(!(!n.value||!E.value)){ce.value=!0;try{await M.post(`/sync/chmod`,{server_id:n.value,path:U(r.value,E.value.name),mode:i.mode,owner:i.owner,group:i.group,recursive:i.recursive??!1}),se.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`权限已修改`)}catch(e){t(e instanceof Error?e.message:`修改权限失败`,`error`)}finally{ce.value=!1}}}async function Ce(){if(!n.value||!i.value.length||!confirm(`确定删除 ${i.value.length} 个文件?`))return;let a=0,s=0;for(let e of i.value)try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`delete`,path:U(r.value,e.name)}),a++}catch{s++}o(),e.invalidateAfterMutation(),await e.browse({force:!0}),s===0?t(`已删除 ${a} 项`):t(`删除完成:成功 ${a},失败 ${s}`,s>0?`warning`:`success`)}async function we(e){if(n.value)try{let i=U(r.value,e.name),{blob:a,filename:o}=await M.download(`/sync/download`,{server_id:n.value,path:i});Ts(a,o),t(`已下载 ${o}`)}catch(e){t(e instanceof Error?e.message:`下载失败`,`error`)}}async function Te(e){ae.value=e,te.value=!0}async function Ee(){if(!(!n.value||!ae.value)){C.value=!0;try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`delete`,path:U(r.value,ae.value.name)}),te.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`已删除`)}catch(e){t(e instanceof Error?e.message:`删除失败`,`error`)}finally{C.value=!1}}}async function De(){if(!n.value||!ie.value)return;let i=wt(ie.value);if(i!==!0){t(i,`warning`);return}C.value=!0;try{await M.post(`/sync/file-ops`,{server_id:n.value,operation:`mkdir`,path:U(r.value,ie.value)}),p.value=!1,ie.value=``,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`目录已创建`)}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{C.value=!1}}async function Oe(){if(!(!n.value||!ne.value.length)){re.value=!0;try{let i=new FormData;for(let e of ne.value)i.append(`files`,e);i.append(`server_id`,String(n.value)),i.append(`remote_path`,r.value),await M.upload(`/sync/upload`,i),d.value=!1,ne.value=[],e.invalidateAfterMutation(),await e.browse({force:!0}),t(`上传成功`)}catch(e){t(e instanceof Error?e.message:`上传失败`,`error`)}finally{re.value=!1}}}function ke(e){return e instanceof HTMLElement?!!e.closest(`button, a, input, .v-checkbox, .v-selection-control`):!1}function I(e){let t=e.item;return{class:t.type===`directory`?`files-row--dir`:void 0,style:{cursor:t.type===`directory`||t.type===`symlink`?`pointer`:`default`},onClick:e=>{ke(e.target)||e.detail===1&&Ae(e,{item:t})},onDblclick:e=>{ke(e.target)||je(e,{item:t})},onContextmenu:e=>{ke(e.target)||L(e,{item:t})}}}function Ae(t,{item:n}){(n.type===`directory`||n.type===`symlink`)&&e.openEntry(n)}function je(t,{item:n}){n.type===`file`&&e.editFile(n)}function L(e,{item:t}){e.preventDefault(),ue.value=t,le.value=e.clientX,O.value=e.clientY,D.value=!0}return{dropActive:u,showUpload:d,showNewFile:ee,newFileName:f,showMkdir:p,showCompress:m,compressDest:h,compressFormat:g,compressPaths:_,showDecompress:v,decompressSource:b,decompressDest:S,showFileDelete:te,uploadFiles:ne,uploading:re,mkdirName:ie,actionLoading:C,deletingFile:ae,showRename:w,newName:T,renamingFile:oe,showChmod:se,chmodLoading:ce,chmodFile:E,showContextMenu:D,contextX:le,contextY:O,contextFile:ue,copyToClipboard:j,cutToClipboard:fe,pasteClipboard:pe,onDropFiles:me,contextAction:he,openCompressDialog:_e,openDecompressDialog:ve,doCompress:ye,doDecompress:N,doNewFile:be,startRename:xe,doRename:Se,startChmod:P,doChmod:F,batchDelete:Ce,downloadFile:we,confirmDeleteFile:Te,doDeleteFile:Ee,doMkdir:De,doUpload:Oe,fileRowProps:I,pasteDestLabel:A}}var Ds=!1;function Os(){O(()=>import(`./FileEditorWorkbench-X10tXE3c.js`),[]),Ta()}function ks(){Ds||(Ds=!0,typeof requestIdleCallback==`function`?requestIdleCallback(Os,{timeout:3e3}):setTimeout(Os,300))}var As=200,js=0,Ms=null,Ns=``,Ps=null;function Fs(e){return e.includes(`No such file or directory`)||e.includes(`not a directory`)}function Is(e,t){return Fs(e)?`路径不存在:${t},请检查服务器「target_path」设置`:e.includes(`Permission denied`)||e.includes(`Operation not permitted`)?`无读取权限(${t}`:e.includes(`connection_error`)||e.includes(`SSH pool at capacity`)?`SSH 连接失败或连接池繁忙,请稍后点「刷新」重试`:e.includes(`timed out`)||e.includes(`timeout`)?`远程命令超时(${t}),请检查目标机负载或网络`:e}function Ls(e){e.loading=!0,!Ps&&(Ps=setTimeout(()=>{Ps=null,e.loading&&(e.loadingVisible=!0)},As))}function Rs(e){e.loading=!1,Ps&&=(clearTimeout(Ps),null),e.loadingVisible=!1}async function zs(e,t,n){let r={};n&&(r[`If-None-Match`]=n);try{return await ce(`/files/browse`,{method:`GET`,params:{server_id:e,path:t},headers:r})}catch(n){if(!(n instanceof ie&&(n.status>=500||n.status===404||n.status===405)))throw n;return{status:200,data:await M.post(`/sync/browse`,{server_id:e,path:t}),etag:null}}}function Bs(e){let t=nt(),n=ge(),r=ae(),i=is(),{selectedServer:a,currentPath:o,files:s,loading:c,loadingVisible:l,browseError:u,pageReady:d,filesCapability:ee}=x(i);function f(){let e={...n.query};a.value?(e.server_id=String(a.value),e.path=o.value===`/www/wwwroot`?void 0:o.value):(delete e.server_id,delete e.path),r.replace({query:e})}let p=k(()=>d.value?a.value?u.value?u.value:e?.value.trim()?`无匹配文件`:ee.value?.is_root?`目录为空(${o.value}),可在上方修改路径或到「服务器」核对 target_path`:`目录为空(${o.value}`:`请先选择服务器`:`正在加载…`);function m(e,n,r,a,c){if(c!==js)return!1;let{items:l,error:d}=bt(r??{items:[]});if(d&&Fs(d)&&n!==`/`){u.value=``;let e=Ct(n);if(e)return t(`路径 "${n}" 不存在,已自动跳转到上级目录`,`info`),o.value=e,h(),!0}return u.value=d?Is(d,n):``,d&&!Fs(d)&&t(Is(d,n),`warning`),s.value=l,d||i.setCached(e,n,l,a??void 0),e&&l.length&&(vs(e,n),ws(e,n,l),ks()),!0}async function h(e){if(!a.value)return;let n=H(o.value),r=a.value,c=`${r}:${n}`;if(!e?.force){let e=i.getCached(r,n);if(e){s.value=e,u.value=``,Rs(i),f();return}}if(Ms&&Ns===c)return Ms;Ns=c;let l=++js;Ls(i),o.value=n;let d=e?.force?void 0:i.getCachedEtag(r,n);return Ms=(async()=>{try{let e=await zs(r,n,d);if(l!==js)return;if(e.status===304){let t=i.getCacheEntry(r,n);if(t){s.value=t.items,i.touchCache(r,n),u.value=``;return}if(e=await zs(r,n),l!==js)return}m(r,n,e.data,e.etag,l)}catch(e){if(l!==js)return;let n=ht(e,`浏览目录失败`);u.value=n,t(n,`error`)}finally{l===js&&(Rs(i),f()),Ns===c&&(Ms=null,Ns=``)}})(),Ms}function g(){if(!a.value){t(`请先选择服务器`,`warning`);return}o.value=H(o.value),i.invalidateCache(a.value,o.value),h({force:!0})}function _(e){if(!a.value)return;let t=e??o.value;i.invalidateCache(a.value,H(t)),_s()}return{emptyHint:p,browse:h,browseCurrent:g,invalidateAfterMutation:_,loadingVisible:l}}function Vs(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`:`—`}function Hs(e){let t=nt(),{selectedServer:n,currentPath:r,lastReadDeniedPath:i,accessHintDismissed:a}=x(is()),o=y(!1),s=y(``),c=y(``),l=y(!1),u=y(null);async function d(){let e=Date.now()+8e3;for(;Date.now()<e;){if(u.value?.openFile)return u.value;await new Promise(e=>setTimeout(e,40)),await He()}return u.value}function ee(e,n){return xs(e.size)?(t(`文件超过 2MB${Vs(e.size)}),无法${n},请下载或使用终端`,`warning`),!0):!1}function f(t){n.value&&t&&ys(n.value,t),e.invalidateAfterMutation(),e.browse({force:!0})}async function p(e){if(!n.value||ee(e,`查看`))return;let u=U(r.value,e.name);s.value=e.name,c.value=``,l.value=!0,o.value=!0,(e.size??0)>307200&&t(`文件较大(${Vs(e.size)}),正在加载…`,`info`);try{c.value=(await Cs(n.value,u,2097152)).content||`(空文件)`}catch(n){let r=n instanceof Error?n.message:`读取失败`;c.value=r,_o(r)&&(i.value=e.name,a.value=!1),t(r,`error`)}finally{l.value=!1}}async function m(o){if(n.value&&!ee(o,`编辑`)){(o.size??0)>307200&&t(`文件较大(${Vs(o.size)}),正在加载…`,`info`),e.actionLoading.value=!0;try{let e=U(r.value,o.name),i=await Cs(n.value,e,ds),a=await d();if(!a){t(`编辑器尚未就绪,请稍后重试`,`error`);return}a.openFile({path:e,name:o.name,content:i.content,eol:i.eol,etag:i.etag,mtime:i.mtime})}catch(e){let n=e instanceof Error?e.message:`读取失败`;_o(n)&&(i.value=o.name,a.value=!1),t(n,`error`)}finally{e.actionLoading.value=!1}}}return{showPreview:o,previewTitle:s,previewContent:c,previewLoading:l,editorWorkbench:u,previewFile:p,editFile:m,onEditorSaved:f,formatSize:Vs}}function Us(e){let t=nt(),n=ge(),r=ae(),{servers:i,loadServers:a}=gt(),o=is(),{selectedServer:s,currentPath:c,pageReady:l,routeReady:u,initing:d,accessHintDismissed:ee}=x(o),f=k(()=>Tt(c.value)),p=k(()=>Ct(c.value)!==null);function m(e){if(e==null)return xt;let t=i.value.find(t=>t.id===e)?.target_path?.trim();return t?H(t):xt}function h(){let e=n.query.path;return typeof e==`string`&&e.trim()?H(e):m(s.value)}function g(){let e=n.query.server_id;if(e){let t=Number(e);if(Number.isFinite(t)&&i.value.some(e=>e.id===t))return t}let t=sessionStorage.getItem(es);if(t){let e=Number(t);if(Number.isFinite(e)&&i.value.some(t=>t.id===e))return e}return i.value[0]?.id??null}function _(n){if(!s.value){t(`请先选择服务器`,`warning`);return}c.value=H(n),e.clearSelection(),e.browse()}function v(e){if(e.type===`directory`){_(U(c.value,e.name));return}if(e.type===`symlink`){let n=e.link_target?.trim();n?.startsWith(`/`)?_(n):t(n?`符号链接 → ${n}`:`相对符号链接(请在终端中打开)`,`info`)}}function y(){let e=Ct(c.value);e!=null&&_(e)}function b(e){let t=f.value[e];t&&!t.disabled&&_(t.path)}function S(){s.value&&r.push({path:`/terminal`,query:{server_id:String(s.value),path:c.value||`/`}})}function te(){d.value||(s.value&&sessionStorage.setItem(es,String(s.value)),o.invalidateCache(),c.value=m(s.value),e.clearSelection(),o.resetForServerChange(),sessionStorage.removeItem(ts),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}return ze(async()=>{d.value=!0;try{if(await a(),sessionStorage.getItem(`nexus:files-hint-dismissed`)&&(ee.value=!0),!i.value.length){t(`暂无可用服务器,请先在「服务器」页添加`,`warning`),l.value=!0;return}let r=g();if(r==null){l.value=!0;return}s.value=r;let o=n.query.path;c.value=typeof o==`string`&&o?H(o):m(r),await e.refreshFilesCapability(),await e.browse(),l.value=!0,u.value=!0}finally{d.value=!1}}),qe(()=>n.query.server_id,t=>{u.value&&t&&Number(t)!==s.value&&(s.value=Number(t),c.value=h(),o.resetForServerChange(),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}),qe(()=>n.query.path,()=>{if(!u.value||!s.value)return;let t=h();t!==H(c.value)&&(c.value=t,e.clearSelection(),e.browse())}),{serverList:i,breadcrumbs:f,canGoUp:p,navigateToPath:_,openEntry:v,goUp:y,onBreadcrumbClick:b,openInTerminal:S,onServerChange:te,defaultPathForServer:m}}function Ws(e){let t=nt(),{selectedServer:n,files:r,browseError:i,filesCapability:a,lastReadDeniedPath:o,accessHintDismissed:s,setupSudoLoading:c,setupSudoDone:l}=x(is()),u=k(()=>a.value?.ssh_user??null),d=k(()=>{let e=u.value;return e?r.value.filter(t=>vo(t,e)).length:0}),ee=k(()=>{if(s.value||!n.value||i.value&&Fs(i.value))return null;let e=a.value;return bo({sshUser:e?.ssh_user,canSudo:e?.can_sudo_nopasswd??!1,whitelistOk:e?.whitelist_ok??!1,isRootSsh:e?.is_root??!1,filesElevation:e?.files_elevation,capabilityMessage:e?.message,lastReadDeniedPath:o.value,unreadableCount:d.value})});function f(){s.value=!0,sessionStorage.setItem(ts,`1`)}async function p(){if(!n.value){a.value=null;return}try{a.value=await M.get(`/servers/${n.value}/files-capability`)}catch{a.value=null}}async function m(){if(n.value){c.value=!0;try{let r=await M.post(`/servers/${n.value}/setup-files-sudo`,{});l.value=!0,t(r.message||`sudoers 配置成功,文件管理器现在可自动提权`,`success`),f(),await p(),await e.browse({force:!0})}catch(e){t(`一键配置失败:${e instanceof Error?e.message:`配置失败`}`,`error`)}finally{c.value=!1}}}return{sshUserForFiles:u,filesAccessHint:ee,dismissFilesAccessHint:f,refreshFilesCapability:p,setupFilesSudo:m}}function Gs(){let{currentPath:e}=x(is()),t=y([]),n=k(()=>t.value.length);function r(){t.value=[]}function i(n){return(n?.length?n:t.value).map(t=>U(e.value,t.name))}return{selectedFiles:t,selectedFileCount:n,clearSelection:r,selectedAbsolutePaths:i}}function Ks(){let e=y(``),t=y(``),n=y(`name`),r=[{title:`名称`,value:`name`},{title:`大小`,value:`size`},{title:`修改时间`,value:`modified`}],{selectedServer:i,currentPath:a,files:o,loading:s,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d}=x(is()),ee=Gs(),{selectedFiles:f,selectedFileCount:p,clearSelection:m}=ee,{emptyHint:h,browse:g,browseCurrent:_,invalidateAfterMutation:v,loadingVisible:b}=Bs(e),S=Ws({browse:g}),{sshUserForFiles:te,filesAccessHint:ne,dismissFilesAccessHint:re,setupFilesSudo:ie}=S,C=Us({browse:g,refreshFilesCapability:S.refreshFilesCapability,clearSelection:m}),ae=y(!1),w=Hs({browse:g,invalidateAfterMutation:v,actionLoading:ae}),T=Es({browse:g,invalidateAfterMutation:v,selection:ee,openEntry:C.openEntry,editFile:w.editFile,previewFile:w.previewFile,openInTerminal:C.openInTerminal,editorWorkbench:w.editorWorkbench,actionLoading:ae}),{hasClipboard:oe,clipboardSummary:se,canPasteOnServer:ce}=Zo(),E=k(()=>ce(i.value)),D=k(()=>{let r=os(o.value,n.value,`asc`),i=t.value;i&&(r=r.filter(e=>cs(e.name,i)));let a=e.value.trim().toLowerCase();return a&&(r=r.filter(e=>e.name.toLowerCase().includes(a))),r}),le=k(()=>{let e=o.value.filter(e=>e.type===`directory`).length,t=o.value.filter(e=>e.type===`file`).length,n=o.value.filter(e=>e.type===`symlink`).length,r=o.value.filter(bs).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(``)} · ${a.value}`});function O(e){return ls(e)}function ue(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function de(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function A(e){return e.type===`file`}return $o({refresh:_,goUp:C.goUp,renameSelection:()=>{f.value.length===1&&T.startRename(f.value[0])},deleteSelection:()=>{f.value.length>0&&T.batchDelete()},selectAll:()=>{f.value=[...D.value]},copySelection:()=>T.copyToClipboard(),cutSelection:()=>T.cutToClipboard(),pasteClipboard:()=>{T.pasteClipboard()}},f,E),{FILE_EXT_FILTERS:ss,validatePathSegment:wt,required:_t,fileFilter:e,extFilter:t,sortBy:n,sortOptions:r,selectedServer:i,currentPath:a,files:o,loading:s,loadingVisible:b,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d,serverList:C.serverList,onServerChange:C.onServerChange,browseCurrent:_,filesAccessHint:ne,dismissFilesAccessHint:re,setupFilesSudo:ie,sshUserForFiles:te,statusSummary:le,hasClipboard:oe,clipboardSummary:se,pasteDestLabel:T.pasteDestLabel,canPasteHere:E,breadcrumbs:C.breadcrumbs,onBreadcrumbClick:C.onBreadcrumbClick,canGoUp:C.canGoUp,goUp:C.goUp,selectedFiles:f,selectedFileCount:p,displayedFiles:D,fileHeaders:[{title:`名称`,key:`name`},{title:`归属`,key:`owner`,width:110,sortable:!1},{title:`大小`,key:`size`,width:120},{title:`修改时间`,key:`modified`,width:180},{title:`操作`,key:`actions`,width:200,align:`end`}],fileRowProps:T.fileRowProps,dropActive:T.dropActive,onDropFiles:T.onDropFiles,emptyHint:h,entryIcon:ue,entryIconColor:de,isEntryLikelyUnreadable:vo,formatOwnerChip:fo,ownerChipColor:po,permissionTooltip:mo,formatSize:w.formatSize,isRegularFile:A,isArchiveName:O,showUpload:T.showUpload,uploadFiles:T.uploadFiles,uploading:T.uploading,doUpload:T.doUpload,showNewFile:T.showNewFile,newFileName:T.newFileName,doNewFile:T.doNewFile,showMkdir:T.showMkdir,mkdirName:T.mkdirName,doMkdir:T.doMkdir,showFileDelete:T.showFileDelete,deletingFile:T.deletingFile,doDeleteFile:T.doDeleteFile,showRename:T.showRename,newName:T.newName,doRename:T.doRename,showChmod:T.showChmod,chmodFile:T.chmodFile,chmodLoading:T.chmodLoading,doChmod:T.doChmod,showCompress:T.showCompress,compressDest:T.compressDest,compressFormat:T.compressFormat,compressPaths:T.compressPaths,doCompress:T.doCompress,showDecompress:T.showDecompress,decompressSource:T.decompressSource,decompressDest:T.decompressDest,doDecompress:T.doDecompress,showContextMenu:T.showContextMenu,contextX:T.contextX,contextY:T.contextY,contextFile:T.contextFile,contextAction:T.contextAction,actionLoading:ae,batchDelete:T.batchDelete,openCompressDialog:T.openCompressDialog,showPreview:w.showPreview,previewTitle:w.previewTitle,previewContent:w.previewContent,previewLoading:w.previewLoading,editorWorkbench:w.editorWorkbench,onEditorSaved:w.onEditorSaved,navigateToPath:C.navigateToPath,pasteClipboard:T.pasteClipboard,editFile:w.editFile,previewFile:w.previewFile,downloadFile:T.downloadFile,confirmDeleteFile:T.confirmDeleteFile,openInTerminal:C.openInTerminal}}var qs=Re({__name:`FilesPage`,setup(e){let t=Ks();to(t);let{editorWorkbench:n}=t;return(e,r)=>(L(),I(rt,{fluid:``,class:`pa-6`},{default:S(()=>[P(Yo),P(Ko),P(Jo),P(uo),P(Wo),P(No),P($a,{ref_key:`editorWorkbench`,ref:n,"server-id":T(t).selectedServer??0,"current-path":T(t).currentPath,onSaved:r[0]||=e=>T(t).onEditorSaved(e),onPathChange:T(t).navigateToPath,onPasteTarget:T(t).pasteClipboard},null,8,[`server-id`,`current-path`,`onPathChange`,`onPasteTarget`])]),_:1}))}});export{qs as default,$a as t};