@rescript/language-server 1.63.0-next-e39488b.0 → 1.63.0-next-261335b.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
Binary file
|
|
Binary file
|
package/out/cli.js
CHANGED
|
@@ -35,7 +35,7 @@ ${JSON.stringify(m,null,4)}`);let x=m;if(Be.string(x.id)||Be.number(x.id)){let I
|
|
|
35
35
|
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var jf=F((AD,Of)=>{"use strict";var lb=bo(),{MAX_LENGTH:qf,CHAR_BACKSLASH:tc,CHAR_BACKTICK:db,CHAR_COMMA:fb,CHAR_DOT:hb,CHAR_LEFT_PARENTHESES:pb,CHAR_RIGHT_PARENTHESES:mb,CHAR_LEFT_CURLY_BRACE:gb,CHAR_RIGHT_CURLY_BRACE:yb,CHAR_LEFT_SQUARE_BRACKET:Nf,CHAR_RIGHT_SQUARE_BRACKET:Ff,CHAR_DOUBLE_QUOTE:_b,CHAR_SINGLE_QUOTE:Rb,CHAR_NO_BREAK_SPACE:bb,CHAR_ZERO_WIDTH_NOBREAK_SPACE:vb}=Af(),wb=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let n=e||{},r=typeof n.maxLength=="number"?Math.min(qf,n.maxLength):qf;if(t.length>r)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${r})`);let i={type:"root",input:t,nodes:[]},o=[i],s=i,a=i,u=0,p=t.length,h=0,y=0,g,N={},A=()=>t[h++],q=M=>{if(M.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&M.type==="text"){a.value+=M.value;return}return s.nodes.push(M),M.parent=s,M.prev=a,a=M,M};for(q({type:"bos"});h<p;)if(s=o[o.length-1],g=A(),!(g===vb||g===bb)){if(g===tc){q({type:"text",value:(e.keepEscaping?g:"")+A()});continue}if(g===Ff){q({type:"text",value:"\\"+g});continue}if(g===Nf){u++;let M=!0,j;for(;h<p&&(j=A());){if(g+=j,j===Nf){u++;continue}if(j===tc){g+=A();continue}if(j===Ff&&(u--,u===0))break}q({type:"text",value:g});continue}if(g===pb){s=q({type:"paren",nodes:[]}),o.push(s),q({type:"text",value:g});continue}if(g===mb){if(s.type!=="paren"){q({type:"text",value:g});continue}s=o.pop(),q({type:"text",value:g}),s=o[o.length-1];continue}if(g===_b||g===Rb||g===db){let M=g,j;for(e.keepQuotes!==!0&&(g="");h<p&&(j=A());){if(j===tc){g+=j+A();continue}if(j===M){e.keepQuotes===!0&&(g+=j);break}g+=j}q({type:"text",value:g});continue}if(g===gb){y++;let j={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||s.dollar===!0,depth:y,commas:0,ranges:0,nodes:[]};s=q(j),o.push(s),q({type:"open",value:g});continue}if(g===yb){if(s.type!=="brace"){q({type:"text",value:g});continue}let M="close";s=o.pop(),s.close=!0,q({type:M,value:g}),y--,s=o[o.length-1];continue}if(g===fb&&y>0){if(s.ranges>0){s.ranges=0;let M=s.nodes.shift();s.nodes=[M,{type:"text",value:lb(s)}]}q({type:"comma",value:g}),s.commas++;continue}if(g===hb&&y>0&&s.commas===0){let M=s.nodes;if(y===0||M.length===0){q({type:"text",value:g});continue}if(a.type==="dot"){if(s.range=[],a.value+=g,a.type="range",s.nodes.length!==3&&s.nodes.length!==5){s.invalid=!0,s.ranges=0,a.type="text";continue}s.ranges++,s.args=[];continue}if(a.type==="range"){M.pop();let j=M[M.length-1];j.value+=a.value+g,a=j,s.ranges--;continue}q({type:"dot",value:g});continue}q({type:"text",value:g})}do if(s=o.pop(),s.type!=="root"){s.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let M=o[o.length-1],j=M.nodes.indexOf(s);M.nodes.splice(j,1,...s.nodes)}while(o.length>0);return q({type:"eos"}),i};Of.exports=wb});var Mf=F((qD,Lf)=>{"use strict";var If=bo(),Cb=Ef(),Db=xf(),Pb=jf(),gt=(t,e={})=>{let n=[];if(Array.isArray(t))for(let r of t){let i=gt.create(r,e);Array.isArray(i)?n.push(...i):n.push(i)}else n=[].concat(gt.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(n=[...new Set(n)]),n};gt.parse=(t,e={})=>Pb(t,e);gt.stringify=(t,e={})=>If(typeof t=="string"?gt.parse(t,e):t,e);gt.compile=(t,e={})=>(typeof t=="string"&&(t=gt.parse(t,e)),Cb(t,e));gt.expand=(t,e={})=>{typeof t=="string"&&(t=gt.parse(t,e));let n=Db(t,e);return e.noempty===!0&&(n=n.filter(Boolean)),e.nodupes===!0&&(n=[...new Set(n)]),n};gt.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?gt.compile(t,e):gt.expand(t,e);Lf.exports=gt});var Hf=F((ND,Eb)=>{Eb.exports=["3dm","3ds","3g2","3gp","7z","a","aac","adp","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]});var $f=F((FD,Wf)=>{Wf.exports=Hf()});var Bf=F((OD,Uf)=>{"use strict";var Sb=require("path"),Tb=$f(),xb=new Set(Tb);Uf.exports=t=>xb.has(Sb.extname(t).slice(1).toLowerCase())});var wo=F(V=>{"use strict";var{sep:kb}=require("path"),{platform:nc}=process;V.EV_ALL="all";V.EV_READY="ready";V.EV_ADD="add";V.EV_CHANGE="change";V.EV_ADD_DIR="addDir";V.EV_UNLINK="unlink";V.EV_UNLINK_DIR="unlinkDir";V.EV_RAW="raw";V.EV_ERROR="error";V.STR_DATA="data";V.STR_END="end";V.STR_CLOSE="close";V.FSEVENT_CREATED="created";V.FSEVENT_MODIFIED="modified";V.FSEVENT_DELETED="deleted";V.FSEVENT_MOVED="moved";V.FSEVENT_CLONED="cloned";V.FSEVENT_UNKNOWN="unknown";V.FSEVENT_TYPE_FILE="file";V.FSEVENT_TYPE_DIRECTORY="directory";V.FSEVENT_TYPE_SYMLINK="symlink";V.KEY_LISTENERS="listeners";V.KEY_ERR="errHandlers";V.KEY_RAW="rawEmitters";V.HANDLER_KEYS=[V.KEY_LISTENERS,V.KEY_ERR,V.KEY_RAW];V.DOT_SLASH=`.${kb}`;V.BACK_SLASH_RE=/\\/g;V.DOUBLE_SLASH_RE=/\/\//;V.SLASH_OR_BACK_SLASH_RE=/[/\\]/;V.DOT_RE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/;V.REPLACER_RE=/^\.[/\\]/;V.SLASH="/";V.SLASH_SLASH="//";V.BRACE_START="{";V.BANG="!";V.ONE_DOT=".";V.TWO_DOTS="..";V.STAR="*";V.GLOBSTAR="**";V.ROOT_GLOBSTAR="/**/*";V.SLASH_GLOBSTAR="/**";V.DIR_SUFFIX="Dir";V.ANYMATCH_OPTS={dot:!0};V.STRING_TYPE="string";V.FUNCTION_TYPE="function";V.EMPTY_STR="";V.EMPTY_FN=()=>{};V.IDENTITY_FN=t=>t;V.isWindows=nc==="win32";V.isMacos=nc==="darwin";V.isLinux=nc==="linux"});var Qf=F((ID,Yf)=>{"use strict";var an=require("fs"),Qe=require("path"),{promisify:Qr}=require("util"),Ab=Bf(),{isWindows:qb,isLinux:Nb,EMPTY_FN:Fb,EMPTY_STR:Ob,KEY_LISTENERS:rr,KEY_ERR:rc,KEY_RAW:Gr,HANDLER_KEYS:jb,EV_CHANGE:Do,EV_ADD:Co,EV_ADD_DIR:Ib,EV_ERROR:zf,STR_DATA:Lb,STR_END:Mb,BRACE_START:Hb,STAR:Wb}=wo(),$b="watch",Ub=Qr(an.open),Gf=Qr(an.stat),Bb=Qr(an.lstat),Vb=Qr(an.close),ic=Qr(an.realpath),zb={lstat:Bb,stat:Gf},sc=(t,e)=>{t instanceof Set?t.forEach(e):e(t)},Kr=(t,e,n)=>{let r=t[e];r instanceof Set||(t[e]=r=new Set([r])),r.add(n)},Gb=t=>e=>{let n=t[e];n instanceof Set?n.clear():delete t[e]},Yr=(t,e,n)=>{let r=t[e];r instanceof Set?r.delete(n):r===n&&delete t[e]},Kf=t=>t instanceof Set?t.size===0:!t,Po=new Map;function Vf(t,e,n,r,i){let o=(s,a)=>{n(t),i(s,a,{watchedPath:t}),a&&t!==a&&Eo(Qe.resolve(t,a),rr,Qe.join(t,a))};try{return an.watch(t,e,o)}catch(s){r(s)}}var Eo=(t,e,n,r,i)=>{let o=Po.get(t);o&&sc(o[e],s=>{s(n,r,i)})},Kb=(t,e,n,r)=>{let{listener:i,errHandler:o,rawEmitter:s}=r,a=Po.get(e),u;if(!n.persistent)return u=Vf(t,n,i,o,s),u.close.bind(u);if(a)Kr(a,rr,i),Kr(a,rc,o),Kr(a,Gr,s);else{if(u=Vf(t,n,Eo.bind(null,e,rr),o,Eo.bind(null,e,Gr)),!u)return;u.on(zf,async p=>{let h=Eo.bind(null,e,rc);if(a.watcherUnusable=!0,qb&&p.code==="EPERM")try{let y=await Ub(t,"r");await Vb(y),h(p)}catch{}else h(p)}),a={listeners:i,errHandlers:o,rawEmitters:s,watcher:u},Po.set(e,a)}return()=>{Yr(a,rr,i),Yr(a,rc,o),Yr(a,Gr,s),Kf(a.listeners)&&(a.watcher.close(),Po.delete(e),jb.forEach(Gb(a)),a.watcher=void 0,Object.freeze(a))}},oc=new Map,Yb=(t,e,n,r)=>{let{listener:i,rawEmitter:o}=r,s=oc.get(e),a=new Set,u=new Set,p=s&&s.options;return p&&(p.persistent<n.persistent||p.interval>n.interval)&&(a=s.listeners,u=s.rawEmitters,an.unwatchFile(e),s=void 0),s?(Kr(s,rr,i),Kr(s,Gr,o)):(s={listeners:i,rawEmitters:o,options:n,watcher:an.watchFile(e,n,(h,y)=>{sc(s.rawEmitters,N=>{N(Do,e,{curr:h,prev:y})});let g=h.mtimeMs;(h.size!==y.size||g>y.mtimeMs||g===0)&&sc(s.listeners,N=>N(t,h))})},oc.set(e,s)),()=>{Yr(s,rr,i),Yr(s,Gr,o),Kf(s.listeners)&&(oc.delete(e),an.unwatchFile(e),s.options=s.watcher=void 0,Object.freeze(s))}},ac=class{constructor(e){this.fsw=e,this._boundHandleError=n=>e._handleError(n)}_watchWithNodeFs(e,n){let r=this.fsw.options,i=Qe.dirname(e),o=Qe.basename(e);this.fsw._getWatchedDir(i).add(o);let a=Qe.resolve(e),u={persistent:r.persistent};n||(n=Fb);let p;return r.usePolling?(u.interval=r.enableBinaryInterval&&Ab(o)?r.binaryInterval:r.interval,p=Yb(e,a,u,{listener:n,rawEmitter:this.fsw._emitRaw})):p=Kb(e,a,u,{listener:n,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),p}_handleFile(e,n,r){if(this.fsw.closed)return;let i=Qe.dirname(e),o=Qe.basename(e),s=this.fsw._getWatchedDir(i),a=n;if(s.has(o))return;let u=async(h,y)=>{if(this.fsw._throttle($b,e,5)){if(!y||y.mtimeMs===0)try{let g=await Gf(e);if(this.fsw.closed)return;let N=g.atimeMs,A=g.mtimeMs;(!N||N<=A||A!==a.mtimeMs)&&this.fsw._emit(Do,e,g),Nb&&a.ino!==g.ino?(this.fsw._closeFile(h),a=g,this.fsw._addPathCloser(h,this._watchWithNodeFs(e,u))):a=g}catch{this.fsw._remove(i,o)}else if(s.has(o)){let g=y.atimeMs,N=y.mtimeMs;(!g||g<=N||N!==a.mtimeMs)&&this.fsw._emit(Do,e,y),a=y}}},p=this._watchWithNodeFs(e,u);if(!(r&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(Co,e,0))return;this.fsw._emit(Co,e,n)}return p}async _handleSymlink(e,n,r,i){if(this.fsw.closed)return;let o=e.fullPath,s=this.fsw._getWatchedDir(n);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let a=await ic(r);return this.fsw.closed?void 0:(s.has(i)?this.fsw._symlinkPaths.get(o)!==a&&(this.fsw._symlinkPaths.set(o,a),this.fsw._emit(Do,r,e.stats)):(s.add(i),this.fsw._symlinkPaths.set(o,a),this.fsw._emit(Co,r,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(o))return!0;this.fsw._symlinkPaths.set(o,!0)}_handleRead(e,n,r,i,o,s,a){if(e=Qe.join(e,Ob),!r.hasGlob&&(a=this.fsw._throttle("readdir",e,1e3),!a))return;let u=this.fsw._getWatchedDir(r.path),p=new Set,h=this.fsw._readdirp(e,{fileFilter:y=>r.filterPath(y),directoryFilter:y=>r.filterDir(y),depth:0}).on(Lb,async y=>{if(this.fsw.closed){h=void 0;return}let g=y.path,N=Qe.join(e,g);if(p.add(g),!(y.stats.isSymbolicLink()&&await this._handleSymlink(y,e,N,g))){if(this.fsw.closed){h=void 0;return}(g===i||!i&&!u.has(g))&&(this.fsw._incrReadyCount(),N=Qe.join(o,Qe.relative(o,N)),this._addToNodeFs(N,n,r,s+1))}}).on(zf,this._boundHandleError);return new Promise(y=>h.once(Mb,()=>{if(this.fsw.closed){h=void 0;return}let g=a?a.clear():!1;y(),u.getChildren().filter(N=>N!==e&&!p.has(N)&&(!r.hasGlob||r.filterPath({fullPath:Qe.resolve(e,N)}))).forEach(N=>{this.fsw._remove(e,N)}),h=void 0,g&&this._handleRead(e,!1,r,i,o,s,a)}))}async _handleDir(e,n,r,i,o,s,a){let u=this.fsw._getWatchedDir(Qe.dirname(e)),p=u.has(Qe.basename(e));!(r&&this.fsw.options.ignoreInitial)&&!o&&!p&&(!s.hasGlob||s.globFilter(e))&&this.fsw._emit(Ib,e,n),u.add(Qe.basename(e)),this.fsw._getWatchedDir(e);let h,y,g=this.fsw.options.depth;if((g==null||i<=g)&&!this.fsw._symlinkPaths.has(a)){if(!o&&(await this._handleRead(e,r,s,o,e,i,h),this.fsw.closed))return;y=this._watchWithNodeFs(e,(N,A)=>{A&&A.mtimeMs===0||this._handleRead(N,!1,s,o,e,i,h)})}return y}async _addToNodeFs(e,n,r,i,o){let s=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return s(),!1;let a=this.fsw._getWatchHelpers(e,i);!a.hasGlob&&r&&(a.hasGlob=r.hasGlob,a.globFilter=r.globFilter,a.filterPath=u=>r.filterPath(u),a.filterDir=u=>r.filterDir(u));try{let u=await zb[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,u))return s(),!1;let p=this.fsw.options.followSymlinks&&!e.includes(Wb)&&!e.includes(Hb),h;if(u.isDirectory()){let y=Qe.resolve(e),g=p?await ic(e):e;if(this.fsw.closed||(h=await this._handleDir(a.watchPath,u,n,i,o,a,g),this.fsw.closed))return;y!==g&&g!==void 0&&this.fsw._symlinkPaths.set(y,g)}else if(u.isSymbolicLink()){let y=p?await ic(e):e;if(this.fsw.closed)return;let g=Qe.dirname(a.watchPath);if(this.fsw._getWatchedDir(g).add(a.watchPath),this.fsw._emit(Co,a.watchPath,u),h=await this._handleDir(g,u,n,i,e,a,y),this.fsw.closed)return;y!==void 0&&this.fsw._symlinkPaths.set(Qe.resolve(e),y)}else h=this._handleFile(a.watchPath,u,n);return s(),this.fsw._addPathCloser(e,h),!1}catch(u){if(this.fsw._handleError(u))return s(),e}}};Yf.exports=ac});var rh=F((LD,mc)=>{"use strict";var hc=require("fs"),Xe=require("path"),{promisify:pc}=require("util"),ir;try{ir=require("fsevents")}catch(t){process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR&&console.error(t)}if(ir){let t=process.version.match(/v(\d+)\.(\d+)/);if(t&&t[1]&&t[2]){let e=Number.parseInt(t[1],10),n=Number.parseInt(t[2],10);e===8&&n<16&&(ir=void 0)}}var{EV_ADD:cc,EV_CHANGE:Qb,EV_ADD_DIR:Xf,EV_UNLINK:So,EV_ERROR:Xb,STR_DATA:Jb,STR_END:Zb,FSEVENT_CREATED:ev,FSEVENT_MODIFIED:tv,FSEVENT_DELETED:nv,FSEVENT_MOVED:rv,FSEVENT_UNKNOWN:iv,FSEVENT_TYPE_FILE:ov,FSEVENT_TYPE_DIRECTORY:Xr,FSEVENT_TYPE_SYMLINK:nh,ROOT_GLOBSTAR:Jf,DIR_SUFFIX:sv,DOT_SLASH:Zf,FUNCTION_TYPE:uc,EMPTY_FN:av,IDENTITY_FN:cv}=wo(),uv=t=>isNaN(t)?{}:{depth:t},dc=pc(hc.stat),lv=pc(hc.lstat),eh=pc(hc.realpath),dv={stat:dc,lstat:lv},On=new Map,fv=10,hv=new Set([69888,70400,71424,72704,73472,131328,131840,262912]),pv=(t,e)=>({stop:ir.watch(t,e)});function mv(t,e,n,r){let i=Xe.extname(t)?Xe.dirname(t):t,o=Xe.dirname(i),s=On.get(i);gv(o)&&(i=o);let a=Xe.resolve(t),u=a!==e,p=(y,g,N)=>{u&&(y=y.replace(e,a)),(y===a||!y.indexOf(a+Xe.sep))&&n(y,g,N)},h=!1;for(let y of On.keys())if(e.indexOf(Xe.resolve(y)+Xe.sep)===0){i=y,s=On.get(i),h=!0;break}return s||h?s.listeners.add(p):(s={listeners:new Set([p]),rawEmitter:r,watcher:pv(i,(y,g)=>{if(!s.listeners.size)return;let N=ir.getInfo(y,g);s.listeners.forEach(A=>{A(y,g,N)}),s.rawEmitter(N.event,y,N)})},On.set(i,s)),()=>{let y=s.listeners;if(y.delete(p),!y.size&&(On.delete(i),s.watcher))return s.watcher.stop().then(()=>{s.rawEmitter=s.watcher=void 0,Object.freeze(s)})}}var gv=t=>{let e=0;for(let n of On.keys())if(n.indexOf(t)===0&&(e++,e>=fv))return!0;return!1},yv=()=>ir&&On.size<128,lc=(t,e)=>{let n=0;for(;!t.indexOf(e)&&(t=Xe.dirname(t))!==e;)n++;return n},th=(t,e)=>t.type===Xr&&e.isDirectory()||t.type===nh&&e.isSymbolicLink()||t.type===ov&&e.isFile(),fc=class{constructor(e){this.fsw=e}checkIgnored(e,n){let r=this.fsw._ignoredPaths;if(this.fsw._isIgnored(e,n))return r.add(e),n&&n.isDirectory()&&r.add(e+Jf),!0;r.delete(e),r.delete(e+Jf)}addOrChange(e,n,r,i,o,s,a,u){let p=o.has(s)?Qb:cc;this.handleEvent(p,e,n,r,i,o,s,a,u)}async checkExists(e,n,r,i,o,s,a,u){try{let p=await dc(e);if(this.fsw.closed)return;th(a,p)?this.addOrChange(e,n,r,i,o,s,a,u):this.handleEvent(So,e,n,r,i,o,s,a,u)}catch(p){p.code==="EACCES"?this.addOrChange(e,n,r,i,o,s,a,u):this.handleEvent(So,e,n,r,i,o,s,a,u)}}handleEvent(e,n,r,i,o,s,a,u,p){if(!(this.fsw.closed||this.checkIgnored(n)))if(e===So){let h=u.type===Xr;(h||s.has(a))&&this.fsw._remove(o,a,h)}else{if(e===cc){if(u.type===Xr&&this.fsw._getWatchedDir(n),u.type===nh&&p.followSymlinks){let y=p.depth===void 0?void 0:lc(r,i)+1;return this._addToFsEvents(n,!1,!0,y)}this.fsw._getWatchedDir(o).add(a)}let h=u.type===Xr?e+sv:e;this.fsw._emit(h,n),h===Xf&&this._addToFsEvents(n,!1,!0)}}_watchWithFsEvents(e,n,r,i){if(this.fsw.closed||this.fsw._isIgnored(e))return;let o=this.fsw.options,a=mv(e,n,async(u,p,h)=>{if(this.fsw.closed||o.depth!==void 0&&lc(u,n)>o.depth)return;let y=r(Xe.join(e,Xe.relative(e,u)));if(i&&!i(y))return;let g=Xe.dirname(y),N=Xe.basename(y),A=this.fsw._getWatchedDir(h.type===Xr?y:g);if(hv.has(p)||h.event===iv)if(typeof o.ignored===uc){let q;try{q=await dc(y)}catch{}if(this.fsw.closed||this.checkIgnored(y,q))return;th(h,q)?this.addOrChange(y,u,n,g,A,N,h,o):this.handleEvent(So,y,u,n,g,A,N,h,o)}else this.checkExists(y,u,n,g,A,N,h,o);else switch(h.event){case ev:case tv:return this.addOrChange(y,u,n,g,A,N,h,o);case nv:case rv:return this.checkExists(y,u,n,g,A,N,h,o)}},this.fsw._emitRaw);return this.fsw._emitReady(),a}async _handleFsEventsSymlink(e,n,r,i){if(!(this.fsw.closed||this.fsw._symlinkPaths.has(n))){this.fsw._symlinkPaths.set(n,!0),this.fsw._incrReadyCount();try{let o=await eh(e);if(this.fsw.closed)return;if(this.fsw._isIgnored(o))return this.fsw._emitReady();this.fsw._incrReadyCount(),this._addToFsEvents(o||e,s=>{let a=e;return o&&o!==Zf?a=s.replace(o,e):s!==Zf&&(a=Xe.join(e,s)),r(a)},!1,i)}catch(o){if(this.fsw._handleError(o))return this.fsw._emitReady()}}}emitAdd(e,n,r,i,o){let s=r(e),a=n.isDirectory(),u=this.fsw._getWatchedDir(Xe.dirname(s)),p=Xe.basename(s);a&&this.fsw._getWatchedDir(s),!u.has(p)&&(u.add(p),(!i.ignoreInitial||o===!0)&&this.fsw._emit(a?Xf:cc,s,n))}initWatch(e,n,r,i){if(this.fsw.closed)return;let o=this._watchWithFsEvents(r.watchPath,Xe.resolve(e||r.watchPath),i,r.globFilter);this.fsw._addPathCloser(n,o)}async _addToFsEvents(e,n,r,i){if(this.fsw.closed)return;let o=this.fsw.options,s=typeof n===uc?n:cv,a=this.fsw._getWatchHelpers(e);try{let u=await dv[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,u))throw null;if(u.isDirectory()){if(a.globFilter||this.emitAdd(s(e),u,s,o,r),i&&i>o.depth)return;this.fsw._readdirp(a.watchPath,{fileFilter:p=>a.filterPath(p),directoryFilter:p=>a.filterDir(p),...uv(o.depth-(i||0))}).on(Jb,p=>{if(this.fsw.closed||p.stats.isDirectory()&&!a.filterPath(p))return;let h=Xe.join(a.watchPath,p.path),{fullPath:y}=p;if(a.followSymlinks&&p.stats.isSymbolicLink()){let g=o.depth===void 0?void 0:lc(h,Xe.resolve(a.watchPath))+1;this._handleFsEventsSymlink(h,y,s,g)}else this.emitAdd(h,p.stats,s,o,r)}).on(Xb,av).on(Zb,()=>{this.fsw._emitReady()})}else this.emitAdd(a.watchPath,u,s,o,r),this.fsw._emitReady()}catch(u){(!u||this.fsw._handleError(u))&&(this.fsw._emitReady(),this.fsw._emitReady())}if(o.persistent&&r!==!0)if(typeof n===uc)this.initWatch(void 0,e,a,s);else{let u;try{u=await eh(a.watchPath)}catch{}this.initWatch(u,e,a,s)}}};mc.exports=fc;mc.exports.canUse=yv});var Ac=F(kc=>{"use strict";var{EventEmitter:_v}=require("events"),Tc=require("fs"),he=require("path"),{promisify:lh}=require("util"),Rv=Ud(),vc=Qd().default,bv=tf(),gc=Ya(),vv=Mf(),wv=Ga(),Cv=Qf(),ih=rh(),{EV_ALL:yc,EV_READY:Dv,EV_ADD:To,EV_CHANGE:Jr,EV_UNLINK:oh,EV_ADD_DIR:Pv,EV_UNLINK_DIR:Ev,EV_RAW:Sv,EV_ERROR:_c,STR_CLOSE:Tv,STR_END:xv,BACK_SLASH_RE:kv,DOUBLE_SLASH_RE:sh,SLASH_OR_BACK_SLASH_RE:Av,DOT_RE:qv,REPLACER_RE:Nv,SLASH:Rc,SLASH_SLASH:Fv,BRACE_START:Ov,BANG:wc,ONE_DOT:dh,TWO_DOTS:jv,GLOBSTAR:Iv,SLASH_GLOBSTAR:bc,ANYMATCH_OPTS:Cc,STRING_TYPE:xc,FUNCTION_TYPE:Lv,EMPTY_STR:Dc,EMPTY_FN:Mv,isWindows:Hv,isMacos:Wv}=wo(),$v=lh(Tc.stat),Uv=lh(Tc.readdir),Pc=(t=[])=>Array.isArray(t)?t:[t],fh=(t,e=[])=>(t.forEach(n=>{Array.isArray(n)?fh(n,e):e.push(n)}),e),ah=t=>{let e=fh(Pc(t));if(!e.every(n=>typeof n===xc))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(hh)},ch=t=>{let e=t.replace(kv,Rc),n=!1;for(e.startsWith(Fv)&&(n=!0);e.match(sh);)e=e.replace(sh,Rc);return n&&(e=Rc+e),e},hh=t=>ch(he.normalize(ch(t))),uh=(t=Dc)=>e=>typeof e!==xc?e:hh(he.isAbsolute(e)?e:he.join(t,e)),Bv=(t,e)=>he.isAbsolute(t)?t:t.startsWith(wc)?wc+he.join(e,t.slice(1)):he.join(e,t),Mt=(t,e)=>t[e]===void 0,Ec=class{constructor(e,n){this.path=e,this._removeWatcher=n,this.items=new Set}add(e){let{items:n}=this;n&&e!==dh&&e!==jv&&n.add(e)}async remove(e){let{items:n}=this;if(!n||(n.delete(e),n.size>0))return;let r=this.path;try{await Uv(r)}catch{this._removeWatcher&&this._removeWatcher(he.dirname(r),he.basename(r))}}has(e){let{items:n}=this;if(n)return n.has(e)}getChildren(){let{items:e}=this;if(e)return[...e.values()]}dispose(){this.items.clear(),delete this.path,delete this._removeWatcher,delete this.items,Object.freeze(this)}},Vv="stat",zv="lstat",Sc=class{constructor(e,n,r,i){this.fsw=i,this.path=e=e.replace(Nv,Dc),this.watchPath=n,this.fullWatchPath=he.resolve(n),this.hasGlob=n!==e,e===Dc&&(this.hasGlob=!1),this.globSymlink=this.hasGlob&&r?void 0:!1,this.globFilter=this.hasGlob?vc(e,void 0,Cc):!1,this.dirParts=this.getDirParts(e),this.dirParts.forEach(o=>{o.length>1&&o.pop()}),this.followSymlinks=r,this.statMethod=r?Vv:zv}checkGlobSymlink(e){return this.globSymlink===void 0&&(this.globSymlink=e.fullParentDir===this.fullWatchPath?!1:{realPath:e.fullParentDir,linkPath:this.fullWatchPath}),this.globSymlink?e.fullPath.replace(this.globSymlink.realPath,this.globSymlink.linkPath):e.fullPath}entryPath(e){return he.join(this.watchPath,he.relative(this.watchPath,this.checkGlobSymlink(e)))}filterPath(e){let{stats:n}=e;if(n&&n.isSymbolicLink())return this.filterDir(e);let r=this.entryPath(e);return(this.hasGlob&&typeof this.globFilter===Lv?this.globFilter(r):!0)&&this.fsw._isntIgnored(r,n)&&this.fsw._hasReadPermissions(n)}getDirParts(e){if(!this.hasGlob)return[];let n=[];return(e.includes(Ov)?vv.expand(e):[e]).forEach(i=>{n.push(he.relative(this.watchPath,i).split(Av))}),n}filterDir(e){if(this.hasGlob){let n=this.getDirParts(this.checkGlobSymlink(e)),r=!1;this.unmatchedGlob=!this.dirParts.some(i=>i.every((o,s)=>(o===Iv&&(r=!0),r||!n[0][s]||vc(o,n[0][s],Cc))))}return!this.unmatchedGlob&&this.fsw._isntIgnored(this.entryPath(e),e.stats)}},xo=class extends _v{constructor(e){super();let n={};e&&Object.assign(n,e),this._watched=new Map,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._symlinkPaths=new Map,this._streams=new Set,this.closed=!1,Mt(n,"persistent")&&(n.persistent=!0),Mt(n,"ignoreInitial")&&(n.ignoreInitial=!1),Mt(n,"ignorePermissionErrors")&&(n.ignorePermissionErrors=!1),Mt(n,"interval")&&(n.interval=100),Mt(n,"binaryInterval")&&(n.binaryInterval=300),Mt(n,"disableGlobbing")&&(n.disableGlobbing=!1),n.enableBinaryInterval=n.binaryInterval!==n.interval,Mt(n,"useFsEvents")&&(n.useFsEvents=!n.usePolling),ih.canUse()||(n.useFsEvents=!1),Mt(n,"usePolling")&&!n.useFsEvents&&(n.usePolling=Wv);let i=process.env.CHOKIDAR_USEPOLLING;if(i!==void 0){let u=i.toLowerCase();u==="false"||u==="0"?n.usePolling=!1:u==="true"||u==="1"?n.usePolling=!0:n.usePolling=!!u}let o=process.env.CHOKIDAR_INTERVAL;o&&(n.interval=Number.parseInt(o,10)),Mt(n,"atomic")&&(n.atomic=!n.usePolling&&!n.useFsEvents),n.atomic&&(this._pendingUnlinks=new Map),Mt(n,"followSymlinks")&&(n.followSymlinks=!0),Mt(n,"awaitWriteFinish")&&(n.awaitWriteFinish=!1),n.awaitWriteFinish===!0&&(n.awaitWriteFinish={});let s=n.awaitWriteFinish;s&&(s.stabilityThreshold||(s.stabilityThreshold=2e3),s.pollInterval||(s.pollInterval=100),this._pendingWrites=new Map),n.ignored&&(n.ignored=Pc(n.ignored));let a=0;this._emitReady=()=>{a++,a>=this._readyCount&&(this._emitReady=Mv,this._readyEmitted=!0,process.nextTick(()=>this.emit(Dv)))},this._emitRaw=(...u)=>this.emit(Sv,...u),this._readyEmitted=!1,this.options=n,n.useFsEvents?this._fsEventsHandler=new ih(this):this._nodeFsHandler=new Cv(this),Object.freeze(n)}add(e,n,r){let{cwd:i,disableGlobbing:o}=this.options;this.closed=!1;let s=ah(e);return i&&(s=s.map(a=>{let u=Bv(a,i);return o||!gc(a)?u:wv(u)})),s=s.filter(a=>a.startsWith(wc)?(this._ignoredPaths.add(a.slice(1)),!1):(this._ignoredPaths.delete(a),this._ignoredPaths.delete(a+bc),this._userIgnored=void 0,!0)),this.options.useFsEvents&&this._fsEventsHandler?(this._readyCount||(this._readyCount=s.length),this.options.persistent&&(this._readyCount*=2),s.forEach(a=>this._fsEventsHandler._addToFsEvents(a))):(this._readyCount||(this._readyCount=0),this._readyCount+=s.length,Promise.all(s.map(async a=>{let u=await this._nodeFsHandler._addToNodeFs(a,!r,0,0,n);return u&&this._emitReady(),u})).then(a=>{this.closed||a.filter(u=>u).forEach(u=>{this.add(he.dirname(u),he.basename(n||u))})})),this}unwatch(e){if(this.closed)return this;let n=ah(e),{cwd:r}=this.options;return n.forEach(i=>{!he.isAbsolute(i)&&!this._closers.has(i)&&(r&&(i=he.join(r,i)),i=he.resolve(i)),this._closePath(i),this._ignoredPaths.add(i),this._watched.has(i)&&this._ignoredPaths.add(i+bc),this._userIgnored=void 0}),this}close(){if(this.closed)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(n=>n.forEach(r=>{let i=r();i instanceof Promise&&e.push(i)})),this._streams.forEach(n=>n.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(n=>n.dispose()),["closers","watched","streams","symlinkPaths","throttled"].forEach(n=>{this[`_${n}`].clear()}),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((n,r)=>{let i=this.options.cwd?he.relative(this.options.cwd,r):r;e[i||dh]=n.getChildren().sort()}),e}emitWithAll(e,n){this.emit(...n),e!==_c&&this.emit(yc,...n)}async _emit(e,n,r,i,o){if(this.closed)return;let s=this.options;Hv&&(n=he.normalize(n)),s.cwd&&(n=he.relative(s.cwd,n));let a=[e,n];o!==void 0?a.push(r,i,o):i!==void 0?a.push(r,i):r!==void 0&&a.push(r);let u=s.awaitWriteFinish,p;if(u&&(p=this._pendingWrites.get(n)))return p.lastChange=new Date,this;if(s.atomic){if(e===oh)return this._pendingUnlinks.set(n,a),setTimeout(()=>{this._pendingUnlinks.forEach((h,y)=>{this.emit(...h),this.emit(yc,...h),this._pendingUnlinks.delete(y)})},typeof s.atomic=="number"?s.atomic:100),this;e===To&&this._pendingUnlinks.has(n)&&(e=a[0]=Jr,this._pendingUnlinks.delete(n))}if(u&&(e===To||e===Jr)&&this._readyEmitted){let h=(y,g)=>{y?(e=a[0]=_c,a[1]=y,this.emitWithAll(e,a)):g&&(a.length>2?a[2]=g:a.push(g),this.emitWithAll(e,a))};return this._awaitWriteFinish(n,u.stabilityThreshold,e,h),this}if(e===Jr&&!this._throttle(Jr,n,50))return this;if(s.alwaysStat&&r===void 0&&(e===To||e===Pv||e===Jr)){let h=s.cwd?he.join(s.cwd,n):n,y;try{y=await $v(h)}catch{}if(!y||this.closed)return;a.push(y)}return this.emitWithAll(e,a),this}_handleError(e){let n=e&&e.code;return e&&n!=="ENOENT"&&n!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||n!=="EPERM"&&n!=="EACCES")&&this.emit(_c,e),e||this.closed}_throttle(e,n,r){this._throttled.has(e)||this._throttled.set(e,new Map);let i=this._throttled.get(e),o=i.get(n);if(o)return o.count++,!1;let s,a=()=>{let p=i.get(n),h=p?p.count:0;return i.delete(n),clearTimeout(s),p&&clearTimeout(p.timeoutObject),h};s=setTimeout(a,r);let u={timeoutObject:s,clear:a,count:0};return i.set(n,u),u}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,n,r,i){let o,s=e;this.options.cwd&&!he.isAbsolute(e)&&(s=he.join(this.options.cwd,e));let a=new Date,u=p=>{Tc.stat(s,(h,y)=>{if(h||!this._pendingWrites.has(e)){h&&h.code!=="ENOENT"&&i(h);return}let g=Number(new Date);p&&y.size!==p.size&&(this._pendingWrites.get(e).lastChange=g);let N=this._pendingWrites.get(e);g-N.lastChange>=n?(this._pendingWrites.delete(e),i(void 0,y)):o=setTimeout(u,this.options.awaitWriteFinish.pollInterval,y)})};this._pendingWrites.has(e)||(this._pendingWrites.set(e,{lastChange:a,cancelWait:()=>(this._pendingWrites.delete(e),clearTimeout(o),r)}),o=setTimeout(u,this.options.awaitWriteFinish.pollInterval))}_getGlobIgnored(){return[...this._ignoredPaths.values()]}_isIgnored(e,n){if(this.options.atomic&&qv.test(e))return!0;if(!this._userIgnored){let{cwd:r}=this.options,i=this.options.ignored,o=i&&i.map(uh(r)),s=Pc(o).filter(u=>typeof u===xc&&!gc(u)).map(u=>u+bc),a=this._getGlobIgnored().map(uh(r)).concat(o,s);this._userIgnored=vc(a,void 0,Cc)}return this._userIgnored([e,n])}_isntIgnored(e,n){return!this._isIgnored(e,n)}_getWatchHelpers(e,n){let r=n||this.options.disableGlobbing||!gc(e)?e:bv(e),i=this.options.followSymlinks;return new Sc(e,r,i,this)}_getWatchedDir(e){this._boundRemove||(this._boundRemove=this._remove.bind(this));let n=he.resolve(e);return this._watched.has(n)||this._watched.set(n,new Ec(n,this._boundRemove)),this._watched.get(n)}_hasReadPermissions(e){if(this.options.ignorePermissionErrors)return!0;let r=(e&&Number.parseInt(e.mode,10))&511;return!!(4&Number.parseInt(r.toString(8)[0],10))}_remove(e,n,r){let i=he.join(e,n),o=he.resolve(i);if(r=r??(this._watched.has(i)||this._watched.has(o)),!this._throttle("remove",i,100))return;!r&&!this.options.useFsEvents&&this._watched.size===1&&this.add(e,n,!0),this._getWatchedDir(i).getChildren().forEach(g=>this._remove(i,g));let u=this._getWatchedDir(e),p=u.has(n);u.remove(n),this._symlinkPaths.has(o)&&this._symlinkPaths.delete(o);let h=i;if(this.options.cwd&&(h=he.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(h)&&this._pendingWrites.get(h).cancelWait()===To)return;this._watched.delete(i),this._watched.delete(o);let y=r?Ev:oh;p&&!this._isIgnored(i)&&this._emit(y,i),this.options.useFsEvents||this._closePath(i)}_closePath(e){this._closeFile(e);let n=he.dirname(e);this._getWatchedDir(n).remove(he.basename(e))}_closeFile(e){let n=this._closers.get(e);n&&(n.forEach(r=>r()),this._closers.delete(e))}_addPathCloser(e,n){if(!n)return;let r=this._closers.get(e);r||(r=[],this._closers.set(e,r)),r.push(n)}_readdirp(e,n){if(this.closed)return;let r={type:yc,alwaysStat:!0,lstat:!0,...n},i=Rv(e,r);return this._streams.add(i),i.once(Tv,()=>{i=void 0}),i.once(xv,()=>{i&&(this._streams.delete(i),i=void 0)}),i}};kc.FSWatcher=xo;var Gv=(t,e)=>{let n=new xo(e);return n.add(t),n};kc.watch=Gv});var Ih=Ce(require("fs")),Lh=Ce(require("path"));var In=Ce(require("process")),B=Ce(qe()),ti=Ce(Ul()),qo=Ce(yi()),pe=Ce(require("path")),$e=Ce(require("fs")),_n=Ce(qe());var Mr=Ce(require("fs")),Ye=Ce(require("path"));var it=Ce(require("path"));var Qi=process.arch=="arm64"?process.platform+process.arch:process.platform,Z="2.0",P_=it.join("rescript",Qi),E_=it.join("node_modules",P_),Fr="bsc.exe",Xi="rescript-editor-analysis.exe",rD=it.join(E_,Fr),Sa=it.join(it.dirname(__dirname),"..",Xi),Ta=it.join(it.dirname(__dirname),"analysis_binaries",Qi,Xi),Ji="rescript";var Zi=it.join("node_modules",".bin"),iD=it.join(Zi,Ji),Bl=".bsb.lock",Or="bsconfig.json",jr="rescript.json",Jn=it.join("lib","bs"),Vl=it.join("lib","ocaml"),eo=it.join("lib","bs",".compiler.log"),Ir=it.join("lib","bs","build.ninja"),xa=it.join("lib","rewatch.lock"),Bt=".res",Lr=".resi",zl=".cmi",ka="Start Build",Gl="commonjs",Kl=".js",Aa="rescript_configuration_request",Yl=1e4;var S_=t=>{switch(t){case"esmodule":case"es6":return"es6";case"es6-global":return"es6_global";case"commonjs":default:return"js"}},no=(t,e)=>{let n=Ye.basename(t,Ye.extname(t));return Ye.format({dir:Ye.dirname(t),name:n,ext:e})},qn=(t,e)=>{if(t==null)return null;let n=Ye.join(t,e);if(Mr.existsSync(n))return n;let r=Ye.dirname(t);return r===t?null:qn(r,e)},ro=t=>{try{let e=Ye.join(t,jr),n=Ye.join(t,Or),r=Mr.readFileSync(Mr.existsSync(e)?e:n,{encoding:"utf-8"});return JSON.parse(r)}catch{return null}},Ql=t=>{let e=t["package-specs"],n="",r=Gl,i={module:r},o=Kl;return e&&(!Array.isArray(e)&&typeof e!="string"&&e.module?i=e:typeof e=="string"?r=e:Array.isArray(e)&&e[0]&&(typeof e[0]=="string"?r=e[0]:i=e[0])),i.module&&(r=i.module),i["in-source"]||(n="lib/"+S_(r)),i.suffix?o=i.suffix:t.suffix&&(o=t.suffix),[o,n]},Xl=(t,e)=>{let n=ro(t);if(!n)return null;let[r,i]=Ql(n),o=no(e,r);return Ye.join(t,i,o)},Jl=(t,e)=>{let n=qn(Ye.join("..",t),jr);if(n||(n=qn(Ye.join("..",t),Or)),!n)return null;let r=ro(Ye.dirname(n));if(!r)return null;let[i,o]=Ql(r),s=no(e,i);return Ye.join(t,o,s)};var Gt=Ce(require("child_process")),dt=Ce(require("path")),wt=Ce(mr()),zt=Ce(require("fs")),ao=Ce(require("os"));var rn=Ce(qe());var nd=require("url"),io=(t,e,n)=>{let r=t.start.line===t.end.line&&t.start.character===t.end.character?1:0,i={start:{line:t.start.line,character:t.start.character-r},end:{line:t.start.line,character:t.start.character-r}},o={start:{line:t.end.line,character:t.end.character},end:{line:t.end.line,character:t.end.character}};return[{range:i,newText:e},{range:o,newText:n}]},T_=(t,e)=>{let n={line:t.end.line,character:t.end.character-1};return[{range:{start:n,end:n},newText:e}]},x_=(t,e)=>[{range:t,newText:e}],ed=t=>{let e=t.trim();return e.endsWith(",")?e.slice(0,e.length-1):e},td=t=>{let e=[];for(let n=0;n<=t.length-1;n+=1){let r=t[n];if(r.includes("(defined as")){let[i,o]=r.split("(defined as");e.push(ed(i));break}else e.push(ed(r))}return e.join("").trim()},k_=(t,e)=>{let n=[],r=t.slice(),i=!1;return r.forEach(o=>{i||(o.startsWith(e)?i=!0:n.push(o))}),n},rd=({diagnostic:t,diagnosticMessage:e,file:n,range:r,addFoundActionsHere:i})=>{e.forEach((o,s,a)=>{let u=[L_,A_,N_,F_,O_,j_,I_,q_];for(let p of u){let h=!1;try{h=p({array:a,codeActions:i,diagnostic:t,file:n,index:s,line:o,range:r})}catch(y){console.error(y)}if(h)break}})},A_=({codeActions:t,diagnostic:e,file:n,line:r,range:i})=>{if(r.startsWith("Hint: Did you mean")){let o=/Did you mean ([A-Za-z0-9_]*)?/,s=r.match(o);if(s===null)return!1;let[a,u]=s;if(u!=null){t[n]=t[n]||[];let p={title:`Replace with '${u}'`,edit:{changes:{[n]:[{range:i,newText:u}]}},diagnostics:[e],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return t[n].push({range:i,codeAction:p}),!0}}return!1},q_=({codeActions:t,diagnostic:e,file:n,line:r,range:i,array:o,index:s})=>{if(r.startsWith("This pattern matches values of type")){let a=/This pattern matches values of type (.*)$/,u=r.match(a);if(u===null)return!1;let[p,h]=u;if(!h.startsWith("option<")){let y=o.slice(s+1),g=y.findIndex(q=>q.trim().startsWith("but a pattern was expected which matches values of type"));if(g===-1)return!1;let[N,A=""]=y[g].split("but a pattern was expected which matches values of type");if(A.trim()===""&&(A=(y[g+1]??"").trim()),A.trim().startsWith("option<")){t[n]=t[n]||[];let q={title:"Wrap in option Some",edit:{changes:{[n]:io(i,"Some(",")")}},diagnostics:[e],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return t[n].push({range:i,codeAction:q}),!0}}}return!1},id=({recordFieldNames:t,codeActions:e,file:n,range:r,diagnostic:i,todoValue:o})=>{if(t!=null){e[n]=e[n]||[];let s=r.start.line!==r.end.line,a="";if(s){let p=s?r.end.character+2:0,h=Array.from({length:p}).join(" "),y=Array.from({length:r.end.character}).join(" ");t.forEach((g,N)=>{N===0?a+=" ":a+=h,a+=`${g}: ${o},
|
|
36
36
|
`}),a+=`${y}`}else r.end.character-r.start.character>2&&(a+=", "),a+=t.map(p=>`${p}: ${o}`).join(", ");let u={title:"Add missing record fields",edit:{changes:{[n]:T_(r,a)}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:u}),!0}return!1},N_=({array:t,codeActions:e,diagnostic:n,file:r,index:i,line:o,range:s})=>{if(o.startsWith("Some record fields are undefined:")){let a=o.trim().split("Some record fields are undefined: ")[1]?.split(" ");return t.slice(i+1).forEach(u=>{a.push(...u.trim().split(" "))}),id({recordFieldNames:a,codeActions:e,diagnostic:n,file:r,range:s,todoValue:'failwith("TODO")'})}return!1},F_=({array:t,codeActions:e,diagnostic:n,file:r,index:i,line:o,range:s})=>{if(o.startsWith("Some required record fields are missing:")){let a=o;a.endsWith(".")&&(a=a.slice(0,a.length-1));let u=a.trim().split("Some required record fields are missing: ")[1]?.split(" "),p=!1;return t.slice(i+1).forEach(h=>{p||(u.push(...h.trim().split(".")[0].split(" ")),h.includes(".")&&(p=!0))}),id({recordFieldNames:u,codeActions:e,diagnostic:n,file:r,range:s,todoValue:"%todo"})}return!1},O_=({line:t,codeActions:e,file:n,range:r,diagnostic:i})=>{if(t.startsWith("You can convert ")){let o=/You can convert (\w*) to (\w*) with ([\w.]*).$/,s=t.match(o);if(s===null)return!1;let[a,u,p,h]=s;if(u!=null&&p!=null&&h!=null){e[n]=e[n]||[];let y={title:`Convert ${u} to ${p} with ${h}`,edit:{changes:{[n]:io(r,`${h}(`,")")}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:y}),!0}}return!1},j_=({line:t,codeActions:e,file:n,range:r,diagnostic:i})=>{if(t.startsWith("This is an uncurried ReScript function. It must be applied with a dot.")){let o={line:r.end.line,character:r.end.character+1};e[n]=e[n]||[];let s={title:"Apply uncurried function call with dot",edit:{changes:{[n]:[{range:{start:o,end:o},newText:". "}]}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:s}),!0}return!1},I_=({line:t,codeActions:e,file:n,range:r,diagnostic:i,array:o,index:s})=>{if(t.startsWith("You forgot to handle a possible case here, for example:")){let a=o.slice(s+1).join("").trim(),u=(0,nd.fileURLToPath)(n),p=Vt(u,["codemod",u,r.start.line,r.start.character,"add-missing-cases",a]);e[n]=e[n]||[];let h={title:"Insert missing cases",edit:{changes:{[n]:x_(r,p)}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:h}),!0}return!1},L_=({line:t,codeActions:e,file:n,range:r,diagnostic:i,array:o,index:s})=>{let a="This has type:";if(t.startsWith(a)){let u=k_([t.slice(a.length),...o.slice(s+1)],"Somewhere wanted:"),p=o.slice(s+u.length).map(g=>g.replace("Somewhere wanted:","")),h=td(u),y=td(p);if(h===`option<${y}>`){e[n]=e[n]||[];let g="assert false";switch(y){case"string":{g='"-"';break}case"bool":{g="false";break}case"int":{g="-1";break}case"float":{g="-1.";break}}let N={title:"Unwrap optional value",edit:{changes:{[n]:io(r,"switch ",` { | None => ${g} | Some(v) => v }`)}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:N}),!0}if(`option<${h}>`===y){e[n]=e[n]||[];let g={title:"Wrap value in Some",edit:{changes:{[n]:io(r,"Some(",")")}},diagnostics:[i],kind:rn.CodeActionKind.QuickFix,isPreferred:!0};return e[n].push({range:r,codeAction:g}),!0}}return!1};var oo=[],Na={},od=t=>(oo.push(t),()=>{oo=oo.filter(e=>e!==t)}),sd=(t,e)=>{(Na[t]==null||Na[t]<Date.now()-9e5)&&(Na[t]=Date.now(),oo.forEach(n=>n(e)))};var H_={extensionConfiguration:{askToStartBuild:!0,inlayHints:{enable:!1,maxLength:25},codeLens:!1,binaryPath:null,platformPath:null,signatureHelp:{enabled:!0,forConstructorPayloads:!0},incrementalTypechecking:{enable:!0,acrossFiles:!1,debugLogging:!1},cache:{projectConfig:{enable:!0}}}},le=H_;var Ve=new Map;var W_="rescript_format_file_"+process.pid+"_",Fa=0,on=(t="")=>{let e=W_+Fa+t;return Fa=Fa+1,dt.join(ao.tmpdir(),e)},cd=t=>{let e=dt.dirname(t);return zt.default.existsSync(dt.join(e,jr))||zt.default.existsSync(dt.join(e,Or))?e:e===t?null:cd(e)},Ct=(t,e)=>{let n=null;for(let r of Ve.keys())t.startsWith(r)&&(!e||t!==r)&&(n==null||r.length>n.length)&&(n=r);if(n!=null)return n;{let r=dt.extname(t)==="";return cd(r&&!e?dt.join(t,"dummy.res"):t)}},Zn=(t,e)=>{if(t==null)return null;let n=dt.join(t,e);return zt.default.existsSync(n)?n:null},ud=(t,e,n)=>{let r=dt.extname(e),i=on(r);zt.default.writeFileSync(i,n,{encoding:"utf-8"});try{if(t!=null)return{kind:"success",result:Gt.execFileSync(t,["-color","never","-format",i]).toString()};throw new Error("Could not find ReScript compiler for project.")}catch(o){return{kind:"error",error:o instanceof Error?o.message:String(o)}}finally{zt.default.unlink(i,()=>null)}},$_=t=>{let e=Ct(t);if(e==null)return;let n=Zn(uo(e),Fr);if(n!=null)try{return Gt.execSync(`${n} -v`).toString().replace(/rescript/gi,"").trim()}catch(r){console.error("rescrip binary failed",r);return}};function ld(t){let e=Zn(uo(t),Fr);if(e!=null)try{return Gt.execSync(`${e} -v`).toString().replace(/rescript/gi,"").trim()}catch{return}}var so=null;zt.default.existsSync(Sa)?so=Sa:zt.default.existsSync(Ta)&&(so=Ta);var Vt=(t,e,n=!1)=>{let r=Ct(t);if(r==null&&n)return null;let i=Ve.get(r??"")?.rescriptVersion??$_(t),o=so,s=r?Ve.get(r):null,a=i?.startsWith("9.")||i?.startsWith("10.")||i?.startsWith("11.")||["12.0.0-alpha.1","12.0.0-alpha.2","12.0.0-alpha.3","12.0.0-alpha.4"].includes(i??"");if(!a&&s!=null)o=s.editorAnalysisLocation;else{if(!a&&s==null)return null;o=so}let u={cwd:r||void 0,maxBuffer:1/0,env:{...process.env,RESCRIPT_VERSION:i,RESCRIPT_INCREMENTAL_TYPECHECKING:le.extensionConfiguration.incrementalTypechecking?.enable===!0?"true":void 0,RESCRIPT_PROJECT_CONFIG_CACHE:le.extensionConfiguration.cache?.projectConfig?.enable===!0?"true":void 0}};if(o==null)return null;let p="";try{return p=Gt.execFileSync(o,e,u).toString(),JSON.parse(p)}catch(h){return console.error(h),console.error("Original response: ",p),console.error("Args: ",e),sd(String(e[0]),String(h)),null}},Dt=(t,e,n,r=!0)=>{let i=Vt(t,e,r);return{jsonrpc:Z,id:n.id,result:i}},Oa=(t,e)=>Vt(t,["references",t,e.line,e.character]),ad=t=>t.replace(/(?:^\w|[A-Z]|\b\w)/g,e=>e.toUpperCase()).replace(/(\s|-)+/g,""),Wr=t=>{let e=ro(t),n="";return e?(e.namespace===!0?n=ad(e.name):typeof e.namespace=="string"&&(n=ad(e.namespace)),{kind:"success",result:n}):{kind:"error",error:"Could not read ReScript config file"}},dd=(t,e)=>{let n={kind:"error",error:"Could not read ReScript config file"},r=t.split(e)[1],i=Xl(e,r);if(!i)return n;let o=i;if(!zt.default.existsSync(o)){let s=Jl(e,r);if(!s)return n;o=s}return{kind:"success",result:o}},fd=(t,e)=>{let n={cwd:e};return process.platform==="win32"?Gt.exec(`"${t}".cmd build -w`,n):Gt.execFile(t,["build","-w"],n)},Hr=t=>process.platform==="win32"?`file:\\\\\\${t}`:`file://${t}`,U_=t=>{let e=/(.+)\:(\d+)\:(\d+)(-(\d+)(\:(\d+))?)?$/,n=t.trim(),r=n.match(e);if(r===null)return{file:Hr(n),range:{start:{line:0,character:0},end:{line:0,character:0}}};let[i,o,s,a,u,p,h,y]=r,g;if(u==null){let N={line:parseInt(s)-1,character:parseInt(a)};g={start:N,end:N}}else{let N=y==null,[A,q]=N?[s,p]:[p,y];g={start:{line:parseInt(s)-1,character:parseInt(a)-1},end:{line:parseInt(A)-1,character:parseInt(q)}}}return{file:Hr(o),range:g}},co=t=>{let e=[],n=[],r=t.split(ao.EOL),i=!1;for(let a=0;a<r.length;a++){let u=r[a];if(u.startsWith(" We've found a bug for you!"))e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[]});else if(u.startsWith("FAILED:"))e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[u]});else if(u.startsWith("Fatal error:"))e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[u]});else if(u.startsWith(" Warning number ")){let p=parseInt(u.slice(17)),h;switch(p){case 11:case 20:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 60:case 66:case 67:case 101:h=wt.DiagnosticTag.Unnecessary;break;case 3:h=wt.DiagnosticTag.Deprecated;break}let y=u.includes("(configured as error)")?wt.DiagnosticSeverity.Error:wt.DiagnosticSeverity.Warning;e.push({code:Number.isNaN(p)?void 0:p,severity:y,tag:h,content:[]})}else u.startsWith(" Syntax error!")?e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[]}):u.startsWith(" Warning genType")?e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[]}):u.startsWith("#Start(")||(u.startsWith("#Done(")?i=!0:u.startsWith("File ")&&a+1<r.length&&r[a+1].startsWith("Warning ")?a++:u.startsWith("File ")&&a+1<r.length&&r[a+1].startsWith("Error: Syntax error")?(e.push({code:void 0,severity:wt.DiagnosticSeverity.Error,tag:void 0,content:[r[a],r[a+1]]}),a++):/^ +([0-9]+| +|\.) (│|┆)/.test(u)||(u.startsWith(" ")?e[e.length-1]==null?n.push(u):e[e.length-1].content.push(u.slice(2)):u.trim()!=""&&(e[e.length-1]==null?n.push(u):e[e.length-1].content.push(u))))}let o={},s={};return e.forEach(a=>{let[u,...p]=a.content,{file:h,range:y}=U_(u);o[h]==null&&(o[h]=[]);let g={severity:a.severity,tags:a.tag===void 0?[]:[a.tag],code:a.code,range:y,source:"ReScript",message:p.join(`
|
|
37
37
|
`).trim()};rd({addFoundActionsHere:s,diagnostic:g,diagnosticMessage:p,file:h,range:y}),o[h].push(g)}),{done:i,result:o,codeActions:s,linesWithParseErrors:n}},hd=(t,e)=>!(e.start.line<t.start.line||e.end.line<t.start.line||e.start.line>t.end.line||e.end.line>t.end.line||e.start.line===t.start.line&&e.start.character<t.start.character||e.end.line===t.end.line&&e.end.character>t.end.character),uo=t=>{if(le.extensionConfiguration.platformPath!=null)return le.extensionConfiguration.platformPath;let e=qn(t,dt.join("node_modules","rescript"));if(e==null)return null;let n=dt.join(e,Qi);return process.platform=="darwin"&&process.arch=="arm64"&&!zt.default.existsSync(n)&&(n=dt.join(e,process.platform)),n},pd=t=>Zn(uo(t),Fr),md=t=>Zn(uo(t),Xi);var kh=Ce(Ac()),Hc=require("console"),Se=require("url");var ge=Ce(require("path")),yt=Ce(require("fs"));var qc=require("url"),gh=Ce(require("readline")),ko=require("perf_hooks"),yh=Ce(qe()),Ao=Ce(require("node:child_process"));var _h=Ce(Ac());function ht(){return le.extensionConfiguration.incrementalTypechecking?.debugLogging??!1}var Rh="___incremental",or=ge.join(Jn,Rh),jn=new Map,ph=new Set,Fc=new Map,bh=_h.watch([],{awaitWriteFinish:{stabilityThreshold:1}}).on("all",(t,e)=>{if(t!=="change"&&t!=="unlink")return;let n=Fc.get(e);if(n!=null){let r=jn.get(n);r!=null&&(ht()&&console.log("[watcher] Cleaning up incremental files for "+n),r.compilation!=null&&(ht()&&console.log("[watcher] Was compiling, killing"),clearTimeout(r.compilation.timeout),r.killCompilationListeners.forEach(i=>i()),r.compilation=null),wh(r.file.sourceFilePath,r.project.rootPath))}});function Oc(t,e){yt.default.rm(ge.resolve(t,or),{force:!0,recursive:!0},n=>{e?.()})}function vh(t){ht()&&console.log("Recreating incremental file folder"),Oc(t,()=>{yt.default.mkdir(ge.resolve(t,or),{recursive:!0},e=>{})})}function wh(t,e){let n=t.endsWith(".resi")?".resi":".res",r=Wr(e),i=ge.basename(t,n),o=r.kind==="success"&&r.result!==""?`${i}-${r.result}`:i;ht()&&console.log("Cleaning up incremental file assets for: "+i),yt.default.unlink(ge.resolve(e,or,ge.basename(t)),s=>{}),[o+".ast",o+".cmt",o+".cmti",o+".cmi",o+".cmj"].forEach(s=>{yt.default.unlink(ge.resolve(e,or,s),a=>{})})}function Kv(t){let e=ge.resolve(t.project.rootPath,Ir),n=ge.resolve(t.project.workspaceRootPath,xa),r=null,i=null;try{i=yt.default.statSync(e),r="bsb"}catch{}try{i=yt.default.statSync(n),r="rewatch"}catch{}if(r==null)return console.log("Did not find build.ninja or rewatch.lock, cannot proceed.."),Promise.resolve(null);let o=t.buildNinja,s=t.buildRewatch;return r==="bsb"&&o!=null&&i!=null&&o.fileMtime>=i.mtimeMs?Promise.resolve(o.rawExtracted):r==="rewatch"&&s!=null&&s.lastFile===t.file.sourceFilePath?Promise.resolve(s.compilerArgs):new Promise((a,u)=>{function p(h){i!=null&&Array.isArray(h)?t.buildNinja={fileMtime:i.mtimeMs,rawExtracted:h}:Array.isArray(h)||(t.buildRewatch={lastFile:t.file.sourceFilePath,compilerArgs:h}),a(h)}if(r==="bsb"){let h=yt.default.createReadStream(e,{encoding:"utf8"});h.on("error",M=>{console.error("File stream error:",M),p([])});let y=gh.default.createInterface({input:h,crlfDelay:1/0}),g=!1,N=!1,A=!1,q=[];y.on("line",M=>{if(M=M.trim(),!A){if(g&&(q.push(M),g=!1),N){y.close(),p(q),A=!0;return}M.startsWith("rule astj")&&(g=!0),M.startsWith("rule mij")&&(g=!0,N=!0)}}),y.on("error",M=>{console.error("Readline error:",M),p([])}),y.on("close",()=>{p(q)})}else if(r==="rewatch")try{let h=Ve.get(t.project.rootPath);if(h?.rescriptVersion==null)return;let y=ge.resolve(t.project.workspaceRootPath,"node_modules/@rolandpeelen/rewatch/rewatch"),g=JSON.parse(Ao.execFileSync(y,["--rescript-version",h.rescriptVersion,"--compiler-args",t.file.sourceFilePath]).toString().trim());p(g)}catch(h){console.error(h)}})}function Nc(t){let e=[];for(let n=0;n<=t.length-1;n++){let r=t[n],i=n+1,o=t[i]??"";if(r.startsWith("-")&&o.startsWith("-"))e.push([r]);else if(r.startsWith("-")&&o.startsWith("'")){let s=[o.slice(1)];for(let a=i+1;a<=t.length-1;a++){let u=t[a],p=!1;if(u.endsWith("'")&&(u=u.slice(0,u.length-1),n=a,p=!0),s.push(u),p)break}e.push([r,s.join(" ")])}else r.startsWith("-")&&e.push([r,o])}return e}function mh(t){let e=t.trim().split("command = ")[1].split(" ").map(n=>n.trim()).filter(n=>n!=="");return Nc(e)}function Yv(t){let e=/\x1B[@-_][0-?]*[ -/]*[@-~]/g;return t.replace(e,"")}function Qv(t,e,n,r){let i=jn.get(t);if(i==null){let u=Ct(t);if(u==null){ht()&&console.log("Did not find project root path for "+t);return}let p=Ve.get(u);if(p==null){ht()&&console.log("Did not find open project for "+t);return}let h=ge.resolve(u,xa),y=!1;yt.default.existsSync(h)&&(y=!0);let g=u&&!y?Ct(u,!0):null,N=p.bscBinaryLocation;if(N==null){ht()&&console.log("Could not find bsc binary location for "+t);return}let A=t.endsWith(".resi")?".resi":".res",q=ge.basename(t,A),M=p.namespaceName!=null?`${q}-${p.namespaceName}`:q,j=ge.join(u,or),v=ge.resolve(u,Jn,ge.relative(u,t)),b=ge.parse(v);b.ext=A===".res"?".cmt":".cmti",b.base="",v=ge.format(b),i={file:{originalTypeFileLocation:v,extension:A,moduleName:q,moduleNameNamespaced:M,sourceFileName:q+A,sourceFilePath:t,incrementalFilePath:ge.join(j,q+A)},project:{workspaceRootPath:g??u,rootPath:u,callArgs:Promise.resolve([]),bscBinaryLocation:N,incrementalFolderPath:j},buildRewatch:null,buildNinja:null,compilation:null,killCompilationListeners:[],codeActions:[]},i.project.callArgs=Ch(i),bh.add([i.file.originalTypeFileLocation]),Fc.set(i.file.originalTypeFileLocation,i.file.sourceFilePath),jn.set(t,i)}if(i==null)return;let o=i;o.compilation!=null&&(clearTimeout(o.compilation.timeout),o.killCompilationListeners.forEach(u=>u()),o.killCompilationListeners=[]);let s=ko.performance.now(),a=setTimeout(()=>{Jv(o,e,n,r)},20);o.compilation!=null?(o.compilation.timeout=a,o.compilation.triggerToken=s):o.compilation={timeout:a,triggerToken:s}}function Xv(t,e){return jn.get(t)?.compilation?.triggerToken===e}async function Ch(t){let e=Ve.get(t.project.rootPath);if(e?.rescriptVersion==null)return ht()&&console.log("Found no project (or ReScript version) for "+t.file.sourceFilePath),null;let n=await Kv(t);if(n==null)return null;let r=[],i=[],o=Array.isArray(n);if(Array.isArray(n)){let[a,u]=n;r=mh(a),i=mh(u)}else r=Nc(n.parser_args),i=Nc(n.compiler_args);let s=[];return le.extensionConfiguration.incrementalTypechecking?.acrossFiles&&s.push("-I",ge.resolve(t.project.rootPath,or)),i.forEach(([a,u])=>{if(a==="-I")o?s.push("-I",ge.resolve(t.project.rootPath,Jn,u)):u==="."?s.push("-I",ge.resolve(t.project.rootPath,Vl)):s.push("-I",u);else if(a==="-bs-v")s.push("-bs-v",Date.now().toString());else{if(a==="-bs-package-output")return;u==null||u===""?s.push(a):s.push(a,u)}}),r.forEach(([a,u])=>{(a.startsWith("-bs-jsx")||a.startsWith("-ppx"))&&s.push(a,u)}),s.push("-color","never"),parseInt(e.rescriptVersion.split(".")[0]??"10")>=11&&s.push("-ignore-parse-errors"),s=s.filter(a=>a!=null&&a!==""),s.push(t.file.incrementalFilePath),s}async function Jv(t,e,n,r){let i=t.compilation?.triggerToken,o=await t.project.callArgs;if(o==null){let a=await Ch(t);if(a!=null)o=a,t.project.callArgs=Promise.resolve(a);else{ht()&&console.log("Could not figure out call args. Maybe build.ninja does not exist yet?");return}}let s=ko.performance.now();if(!yt.default.existsSync(t.project.incrementalFolderPath))try{yt.default.mkdirSync(t.project.incrementalFolderPath,{recursive:!0})}catch{}try{yt.default.writeFileSync(t.file.incrementalFilePath,e);let a=Ao.execFile(t.project.bscBinaryLocation,o,{cwd:t.project.rootPath},(u,p,h)=>{u?.killed?ht()&&console.log(`Compilation of ${t.file.sourceFileName} was killed.`):ht()&&console.log(`Recompiled ${t.file.sourceFileName} in ${(ko.performance.now()-s)/1e3}s`);let y=!1;if(!u?.killed&&i!=null&&Xv(t.file.sourceFilePath,i)){ht()&&console.log("Resetting compilation status."),t.compilation=null;let{result:g,codeActions:N}=co(`${h}
|
|
38
|
-
#Done()`),A=Object.values(N)[0]??[];A.forEach(j=>{if(j.codeAction.edit!=null&&j.codeAction.edit.changes!=null){let v=Object.values(j.codeAction.edit.changes)[0];j.codeAction.edit.changes={[(0,qc.pathToFileURL)(t.file.sourceFilePath).toString()]:v}}}),t.codeActions=A;let q=(Object.values(g)[0]??[]).map(j=>({...j,message:Yv(j.message)})).filter(j=>!j.message.startsWith("Uninterpreted extension 'rescript.")&&(!j.message.includes(`/${Rh}/${t.file.sourceFileName}`)||j.message.
|
|
38
|
+
#Done()`),A=Object.values(N)[0]??[];A.forEach(j=>{if(j.codeAction.edit!=null&&j.codeAction.edit.changes!=null){let v=Object.values(j.codeAction.edit.changes)[0];j.codeAction.edit.changes={[(0,qc.pathToFileURL)(t.file.sourceFilePath).toString()]:v}}}),t.codeActions=A;let q=(Object.values(g)[0]??[]).map(j=>({...j,message:Yv(j.message)})).filter(j=>!j.message.startsWith("Uninterpreted extension 'rescript.")&&(!j.message.includes(`/${Rh}/${t.file.sourceFileName}`)||j.message.startsWith("Multiple definition of the")||j.message.startsWith("Signature mismatch")||j.message.startsWith("In this `with' constraint")||j.message.startsWith("This `with' constraint on"))?(y=!0,!0):!1);if(q.length===0&&h!==""&&!y&&!ph.has(t.project.rootPath))try{ph.add(t.project.rootPath);let j=ge.resolve(t.project.incrementalFolderPath,"error.log");yt.default.writeFileSync(j,`== BSC ARGS ==
|
|
39
39
|
${o?.join(" ")}
|
|
40
40
|
|
|
41
41
|
== OUTPUT ==
|