@joinezco/codeblock 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/editor.d.ts +23 -2
- package/dist/editor.js +346 -41
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/lsps/index.d.ts +5 -0
- package/dist/lsps/index.js +9 -2
- package/dist/panels/{footer.d.ts → settings.d.ts} +7 -1
- package/dist/panels/{footer.js → settings.js} +12 -3
- package/dist/panels/terminal.d.ts +3 -0
- package/dist/panels/terminal.js +76 -0
- package/dist/panels/toolbar.d.ts +40 -3
- package/dist/panels/toolbar.js +919 -160
- package/dist/themes/index.js +63 -17
- package/dist/types.d.ts +5 -0
- package/dist/utils/fs.d.ts +7 -0
- package/dist/utils/fs.js +41 -15
- package/dist/workers/fs.worker.d.ts +4 -8
- package/dist/workers/fs.worker.js +27 -53
- package/package.json +6 -3
- package/dist/assets/clike-C8IJ2oj_.js +0 -1
- package/dist/assets/cmake-BQqOBYOt.js +0 -1
- package/dist/assets/dockerfile-C_y-rIpk.js +0 -1
- package/dist/assets/fs.worker-DfanUHpQ.js +0 -21
- package/dist/assets/go-CTD25R5P.js +0 -1
- package/dist/assets/haskell-BWDZoCOh.js +0 -1
- package/dist/assets/index-BAnLzvMk.js +0 -1
- package/dist/assets/index-BBC9WDX6.js +0 -1
- package/dist/assets/index-BEXYxRro.js +0 -1
- package/dist/assets/index-BfYmUKH9.js +0 -13
- package/dist/assets/index-BhaTNAWE.js +0 -1
- package/dist/assets/index-CCbYDSng.js +0 -1
- package/dist/assets/index-CIi8tLT6.js +0 -1
- package/dist/assets/index-CaANcgI2.js +0 -3
- package/dist/assets/index-CkWzFNzm.js +0 -208
- package/dist/assets/index-D_XGv9QZ.js +0 -1
- package/dist/assets/index-DkmiPfkD.js +0 -1
- package/dist/assets/index-DmNlLMQ4.js +0 -6
- package/dist/assets/index-DmX_vI7D.js +0 -1
- package/dist/assets/index-DogEEevD.js +0 -1
- package/dist/assets/index-DsDl5qZV.js +0 -2
- package/dist/assets/index-gAy5mDg-.js +0 -1
- package/dist/assets/index-i5qJLB2h.js +0 -1
- package/dist/assets/javascript.worker-ClsyHOLi.js +0 -552
- package/dist/assets/lua-BgMRiT3U.js +0 -1
- package/dist/assets/perl-CdXCOZ3F.js +0 -1
- package/dist/assets/process-Dw9K5EnD.js +0 -1357
- package/dist/assets/properties-C78fOPTZ.js +0 -1
- package/dist/assets/ruby-B2Rjki9n.js +0 -1
- package/dist/assets/shell-CjFT_Tl9.js +0 -1
- package/dist/assets/swift-BzpIVaGY.js +0 -1
- package/dist/assets/toml-BXUEaScT.js +0 -1
- package/dist/assets/vb-CmGdzxic.js +0 -1
- package/dist/e2e/editor.spec.d.ts +0 -1
- package/dist/e2e/editor.spec.js +0 -309
- package/dist/e2e/example.spec.d.ts +0 -5
- package/dist/e2e/example.spec.js +0 -44
- package/dist/index.html +0 -15
- package/dist/resources/config.json +0 -13
- package/dist/styles.css +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const f={name:"properties",token:function(e,i){var o=e.sol()||i.afterSection,l=e.eol();if(i.afterSection=!1,o&&(i.nextMultiline?(i.inMultiline=!0,i.nextMultiline=!1):i.position="def"),l&&!i.nextMultiline&&(i.inMultiline=!1,i.position="def"),o)for(;e.eatSpace(););var n=e.next();return o&&(n==="#"||n==="!"||n===";")?(i.position="comment",e.skipToEnd(),"comment"):o&&n==="["?(i.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):n==="="||n===":"?(i.position="quote",null):(n==="\\"&&i.position==="quote"&&e.eol()&&(i.nextMultiline=!0),i.position)},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}};export{f as properties};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function k(e){for(var i={},n=0,o=e.length;n<o;++n)i[e[n]]=!0;return i}var v=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],x=k(v),z=k(["def","class","case","for","while","until","module","catch","loop","proc","begin"]),b=k(["end","until"]),h={"[":"]","{":"}","(":")"},_={"]":"[","}":"{",")":"("},f;function c(e,i,n){return n.tokenize.push(e),e(i,n)}function p(e,i){if(e.sol()&&e.match("=begin")&&e.eol())return i.tokenize.push(w),"comment";if(e.eatSpace())return null;var n=e.next(),o;if(n=="`"||n=="'"||n=='"')return c(d(n,"string",n=='"'||n=="`"),e,i);if(n=="/")return g(e)?c(d(n,"string.special",!0),e,i):"operator";if(n=="%"){var l="string",r=!0;e.eat("s")?l="atom":e.eat(/[WQ]/)?l="string":e.eat(/[r]/)?l="string.special":e.eat(/[wxq]/)&&(l="string",r=!1);var u=e.eat(/[^\w\s=]/);return u?(h.propertyIsEnumerable(u)&&(u=h[u]),c(d(u,l,r,!0),e,i)):"operator"}else{if(n=="#")return e.skipToEnd(),"comment";if(n=="<"&&(o=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return c(s(o[2],o[1]),e,i);if(n=="0")return e.eat("x")?e.eatWhile(/[\da-fA-F]/):e.eat("b")?e.eatWhile(/[01]/):e.eatWhile(/[0-7]/),"number";if(/\d/.test(n))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if(n=="?"){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}else{if(n==":")return e.eat("'")?c(d("'","atom",!1),e,i):e.eat('"')?c(d('"',"atom",!0),e,i):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(n=="$")return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(n))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if(n=="|"&&(i.varList||i.lastTok=="{"||i.lastTok=="do"))return f="|",null;if(/[\(\)\[\]{}\\;]/.test(n))return f=n,null;if(n=="-"&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(n)){var t=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return n=="."&&!t&&(f="."),"operator"}else return null}}}function g(e){for(var i=e.pos,n=0,o,l=!1,r=!1;(o=e.next())!=null;)if(r)r=!1;else{if("[{(".indexOf(o)>-1)n++;else if("]})".indexOf(o)>-1){if(n--,n<0)break}else if(o=="/"&&n==0){l=!0;break}r=o=="\\"}return e.backUp(e.pos-i),l}function a(e){return e||(e=1),function(i,n){if(i.peek()=="}"){if(e==1)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](i,n);n.tokenize[n.tokenize.length-1]=a(e-1)}else i.peek()=="{"&&(n.tokenize[n.tokenize.length-1]=a(e+1));return p(i,n)}}function y(){var e=!1;return function(i,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](i,n)):(e=!0,p(i,n))}}function d(e,i,n,o){return function(l,r){var u=!1,t;for(r.context.type==="read-quoted-paused"&&(r.context=r.context.prev,l.eat("}"));(t=l.next())!=null;){if(t==e&&(o||!u)){r.tokenize.pop();break}if(n&&t=="#"&&!u){if(l.eat("{")){e=="}"&&(r.context={prev:r.context,type:"read-quoted-paused"}),r.tokenize.push(a());break}else if(/[@\$]/.test(l.peek())){r.tokenize.push(y());break}}u=!u&&t=="\\"}return i}}function s(e,i){return function(n,o){return i&&n.eatSpace(),n.match(e)?o.tokenize.pop():n.skipToEnd(),"string"}}function w(e,i){return e.sol()&&e.match("=end")&&e.eol()&&i.tokenize.pop(),e.skipToEnd(),"comment"}const E={name:"ruby",startState:function(e){return{tokenize:[p],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,i){f=null,e.sol()&&(i.indented=e.indentation());var n=i.tokenize[i.tokenize.length-1](e,i),o,l=f;if(n=="variable"){var r=e.current();n=i.lastTok=="."?"property":x.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(r)?"tag":i.lastTok=="def"||i.lastTok=="class"||i.varList?"def":"variable",n=="keyword"&&(l=r,z.propertyIsEnumerable(r)?o="indent":b.propertyIsEnumerable(r)?o="dedent":((r=="if"||r=="unless")&&e.column()==e.indentation()||r=="do"&&i.context.indented<i.indented)&&(o="indent"))}return(f||n&&n!="comment")&&(i.lastTok=l),f=="|"&&(i.varList=!i.varList),o=="indent"||/[\(\[\{]/.test(f)?i.context={prev:i.context,type:f||n,indented:i.indented}:(o=="dedent"||/[\)\]\}]/.test(f))&&i.context.prev&&(i.context=i.context.prev),e.eol()&&(i.continuedLine=f=="\\"||n=="operator"),n},indent:function(e,i,n){if(e.tokenize[e.tokenize.length-1]!=p)return null;var o=i&&i.charAt(0),l=e.context,r=l.type==_[o]||l.type=="keyword"&&/^(?:end|until|else|elsif|when|rescue)\b/.test(i);return l.indented+(r?0:n.unit)+(e.continuedLine?n.unit:0)},languageData:{indentOnInput:/^\s*(?:end|rescue|elsif|else|\})$/,commentTokens:{line:"#"},autocomplete:v}};export{E as ruby};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var c={};function s(n,e){for(var i=0;i<e.length;i++)c[e[i]]=n}var k=["true","false"],h=["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],p=["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","nl","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"];s("atom",k);s("keyword",h);s("builtin",p);function d(n,e){if(n.eatSpace())return null;var i=n.sol(),t=n.next();if(t==="\\")return n.next(),null;if(t==="'"||t==='"'||t==="`")return e.tokens.unshift(l(t,t==="`"?"quote":"string")),u(n,e);if(t==="#")return i&&n.eat("!")?(n.skipToEnd(),"meta"):(n.skipToEnd(),"comment");if(t==="$")return e.tokens.unshift(a),u(n,e);if(t==="+"||t==="=")return"operator";if(t==="-")return n.eat("-"),n.eatWhile(/\w/),"attribute";if(t=="<"){if(n.match("<<"))return"operator";var o=n.match(/^<-?\s*(?:['"]([^'"]*)['"]|([^'"\s]*))/);if(o)return e.tokens.unshift(w(o[1]||o[2])),"string.special"}if(/\d/.test(t)&&(n.eatWhile(/\d/),n.eol()||!/\w/.test(n.peek())))return"number";n.eatWhile(/[\w-]/);var r=n.current();return n.peek()==="="&&/\w+/.test(r)?"def":c.hasOwnProperty(r)?c[r]:null}function l(n,e){var i=n=="("?")":n=="{"?"}":n;return function(t,o){for(var r,f=!1;(r=t.next())!=null;){if(r===i&&!f){o.tokens.shift();break}else if(r==="$"&&!f&&n!=="'"&&t.peek()!=i){f=!0,t.backUp(1),o.tokens.unshift(a);break}else{if(!f&&n!==i&&r===n)return o.tokens.unshift(l(n,e)),u(t,o);if(!f&&/['"]/.test(r)&&!/['"]/.test(n)){o.tokens.unshift(g(r,"string")),t.backUp(1);break}}f=!f&&r==="\\"}return e}}function g(n,e){return function(i,t){return t.tokens[0]=l(n,e),i.next(),u(i,t)}}var a=function(n,e){e.tokens.length>1&&n.eat("$");var i=n.next();return/['"({]/.test(i)?(e.tokens[0]=l(i,i=="("?"quote":i=="{"?"def":"string"),u(n,e)):(/\d/.test(i)||n.eatWhile(/\w/),e.tokens.shift(),"def")};function w(n){return function(e,i){return e.sol()&&e.string==n&&i.tokens.shift(),e.skipToEnd(),"string.special"}}function u(n,e){return(e.tokens[0]||d)(n,e)}const v={name:"shell",startState:function(){return{tokens:[]}},token:function(n,e){return u(n,e)},languageData:{autocomplete:k.concat(h,p),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};export{v as shell};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function c(n){for(var e={},t=0;t<n.length;t++)e[n[t]]=!0;return e}var l=c(["_","var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super","convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is","break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while","defer","return","inout","mutating","nonmutating","isolated","nonisolated","catch","do","rethrows","throw","throws","async","await","try","didSet","get","set","willSet","assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right","Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"]),p=c(["var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"]),d=c(["true","false","nil","self","super","_"]),v=c(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String","UInt8","UInt16","UInt32","UInt64","Void"]),h="+-/*%=|&<>~^?!",_=":;,.(){}[]",s=/^\-?0b[01][01_]*/,k=/^\-?0o[0-7][0-7_]*/,x=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,y=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,g=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,w=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,z=/^\#[A-Za-z]+/,b=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function f(n,e,t){if(n.sol()&&(e.indented=n.indentation()),n.eatSpace())return null;var i=n.peek();if(i=="/"){if(n.match("//"))return n.skipToEnd(),"comment";if(n.match("/*"))return e.tokenize.push(a),a(n,e)}if(n.match(z))return"builtin";if(n.match(b))return"attribute";if(n.match(s)||n.match(k)||n.match(x)||n.match(y))return"number";if(n.match(w))return"property";if(h.indexOf(i)>-1)return n.next(),"operator";if(_.indexOf(i)>-1)return n.next(),n.match(".."),"punctuation";var r;if(r=n.match(/("""|"|')/)){var o=I.bind(null,r[0]);return e.tokenize.push(o),o(n,e)}if(n.match(g)){var u=n.current();return v.hasOwnProperty(u)?"type":d.hasOwnProperty(u)?"atom":l.hasOwnProperty(u)?(p.hasOwnProperty(u)&&(e.prev="define"),"keyword"):t=="define"?"def":"variable"}return n.next(),null}function A(){var n=0;return function(e,t,i){var r=f(e,t,i);if(r=="punctuation"){if(e.current()=="(")++n;else if(e.current()==")"){if(n==0)return e.backUp(1),t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);--n}}return r}}function I(n,e,t){for(var i=n.length==1,r,o=!1;r=e.peek();)if(o){if(e.next(),r=="(")return t.tokenize.push(A()),"string";o=!1}else{if(e.match(n))return t.tokenize.pop(),"string";e.next(),o=r=="\\"}return i&&t.tokenize.pop(),"string"}function a(n,e){for(var t;t=n.next();)if(t==="/"&&n.eat("*"))e.tokenize.push(a);else if(t==="*"&&n.eat("/")){e.tokenize.pop();break}return"comment"}function O(n,e,t){this.prev=n,this.align=e,this.indented=t}function m(n,e){var t=e.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:e.column()+1;n.context=new O(n.context,t,n.indented)}function S(n){n.context&&(n.indented=n.context.indented,n.context=n.context.prev)}const C={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(n,e){var t=e.prev;e.prev=null;var i=e.tokenize[e.tokenize.length-1]||f,r=i(n,e,t);if(!r||r=="comment"?e.prev=t:e.prev||(e.prev=r),r=="punctuation"){var o=/[\(\[\{]|([\]\)\}])/.exec(n.current());o&&(o[1]?S:m)(e,n)}return r},indent:function(n,e,t){var i=n.context;if(!i)return 0;var r=/^[\]\}\)]/.test(e);return i.align!=null?i.align-(r?1:0):i.indented+(r?0:t.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}};export{C as swift};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const l={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(n,e){if(!e.inString&&(n.peek()=='"'||n.peek()=="'")&&(e.stringType=n.peek(),n.next(),e.inString=!0),n.sol()&&e.inArray===0&&(e.lhs=!0),e.inString){for(;e.inString&&!n.eol();)n.peek()===e.stringType?(n.next(),e.inString=!1):n.peek()==="\\"?(n.next(),n.next()):n.match(/^.[^\\\"\']*/);return e.lhs?"property":"string"}else{if(e.inArray&&n.peek()==="]")return n.next(),e.inArray--,"bracket";if(e.lhs&&n.peek()==="["&&n.skipTo("]"))return n.next(),n.peek()==="]"&&n.next(),"atom";if(n.peek()==="#")return n.skipToEnd(),"comment";if(n.eatSpace())return null;if(e.lhs&&n.eatWhile(function(i){return i!="="&&i!=" "}))return"property";if(e.lhs&&n.peek()==="=")return n.next(),e.lhs=!1,null;if(!e.lhs&&n.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!e.lhs&&(n.match("true")||n.match("false")))return"atom";if(!e.lhs&&n.peek()==="[")return e.inArray++,n.next(),"bracket";if(!e.lhs&&n.match(/^\-?\d+(?:\.\d+)?/))return"number";n.eatSpace()||n.next()}return null},languageData:{commentTokens:{line:"#"}}};export{l as toml};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var u="error";function o(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var b=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),k=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),x=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),m=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),I=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),R=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),a=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],f=["else","elseif","case","catch","finally"],h=["next","loop"],s=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],O=o(s),v=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],p=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],z=o(v),E=o(p),C='"',S=o(a),g=o(f),y=o(h),w=o(["end"]),T=o(["do"]);function l(e,n){n.currentIndent++}function c(e,n){n.currentIndent--}function d(e,n){if(e.eatSpace())return null;var i=e.peek();if(i==="'")return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var r=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(r=!0),r)return e.eat(/J/i),"number";var t=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?t=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),t=!0):e.match(/^0(?![\dx])/i)&&(t=!0),t)return e.eat(/L/i),"number"}return e.match(C)?(n.tokenize=F(e.current()),n.tokenize(e,n)):e.match(I)||e.match(m)?null:e.match(x)||e.match(b)||e.match(O)?"operator":e.match(k)?null:e.match(T)?(l(e,n),n.doInCurrentLine=!0,"keyword"):e.match(S)?(n.doInCurrentLine?n.doInCurrentLine=!1:l(e,n),"keyword"):e.match(g)?"keyword":e.match(w)?(c(e,n),c(e,n),"keyword"):e.match(y)?(c(e,n),"keyword"):e.match(E)||e.match(z)?"keyword":e.match(R)?"variable":(e.next(),u)}function F(e){var n=e.length==1,i="string";return function(r,t){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return t.tokenize=d,i;r.eat(/['"]/)}return n&&(t.tokenize=d),i}}function K(e,n){var i=n.tokenize(e,n),r=e.current();if(r===".")return i=n.tokenize(e,n),i==="variable"?"variable":u;var t="[({".indexOf(r);return t!==-1&&l(e,n),t="])}".indexOf(r),t!==-1&&c(e,n)?u:i}const L={name:"vb",startState:function(){return{tokenize:d,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var i=K(e,n);return n.lastToken={style:i,content:e.current()},i},indent:function(e,n,i){var r=n.replace(/^\s+|\s+$/g,"");return r.match(y)||r.match(w)||r.match(g)?i.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*i.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:a.concat(f).concat(h).concat(s).concat(v).concat(p)}};export{L as vb};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/e2e/editor.spec.js
DELETED
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
|
|
2
|
-
import puppeteer from 'puppeteer-core';
|
|
3
|
-
const BASE_URL = 'http://localhost:5173';
|
|
4
|
-
const CHROME_PATH = '/usr/bin/google-chrome';
|
|
5
|
-
// Helper: wait for the CodeMirror editor to be ready
|
|
6
|
-
async function waitForEditor(page) {
|
|
7
|
-
await page.waitForSelector('.cm-editor', { visible: true });
|
|
8
|
-
await page.waitForSelector('.cm-content', { visible: true });
|
|
9
|
-
}
|
|
10
|
-
// Helper: type into the editor content area
|
|
11
|
-
async function typeInEditor(page, text) {
|
|
12
|
-
await page.click('.cm-content');
|
|
13
|
-
await page.keyboard.type(text);
|
|
14
|
-
}
|
|
15
|
-
// Helper: get the current editor text
|
|
16
|
-
async function getEditorText(page) {
|
|
17
|
-
return page.$eval('.cm-content', el => el.textContent);
|
|
18
|
-
}
|
|
19
|
-
// Helper: get toolbar input value
|
|
20
|
-
async function getToolbarValue(page) {
|
|
21
|
-
return page.$eval('.cm-toolbar-input', (el) => el.value);
|
|
22
|
-
}
|
|
23
|
-
// Helper: create a new file via toolbar
|
|
24
|
-
async function createFile(page, filename) {
|
|
25
|
-
await page.click('.cm-toolbar-input', { count: 3 }); // triple-click to select all
|
|
26
|
-
await page.type('.cm-toolbar-input', filename);
|
|
27
|
-
// Wait for the dropdown to show results
|
|
28
|
-
await page.waitForSelector('.cm-search-result', { timeout: 2000 });
|
|
29
|
-
// Select the create command (first result)
|
|
30
|
-
const createCommand = await page.$('.cm-command-result');
|
|
31
|
-
if (createCommand) {
|
|
32
|
-
await createCommand.click();
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
await page.keyboard.press('Enter');
|
|
36
|
-
}
|
|
37
|
-
// Wait for file to load
|
|
38
|
-
await new Promise(r => setTimeout(r, 500));
|
|
39
|
-
}
|
|
40
|
-
// Helper: open an existing file via toolbar
|
|
41
|
-
async function openFile(page, filename) {
|
|
42
|
-
await page.click('.cm-toolbar-input', { count: 3 });
|
|
43
|
-
await page.type('.cm-toolbar-input', filename);
|
|
44
|
-
await page.waitForSelector('.cm-file-result', { timeout: 3000 });
|
|
45
|
-
await page.click('.cm-file-result');
|
|
46
|
-
await new Promise(r => setTimeout(r, 500));
|
|
47
|
-
}
|
|
48
|
-
describe('Editor - File Operations', () => {
|
|
49
|
-
let browser;
|
|
50
|
-
let page;
|
|
51
|
-
beforeAll(async () => {
|
|
52
|
-
browser = await puppeteer.launch({
|
|
53
|
-
executablePath: CHROME_PATH,
|
|
54
|
-
headless: true,
|
|
55
|
-
args: [
|
|
56
|
-
'--no-sandbox',
|
|
57
|
-
'--disable-setuid-sandbox',
|
|
58
|
-
'--disable-web-security',
|
|
59
|
-
'--disable-site-isolation-trials',
|
|
60
|
-
'--allow-file-access-from-files',
|
|
61
|
-
],
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
afterAll(async () => {
|
|
65
|
-
await browser.close();
|
|
66
|
-
});
|
|
67
|
-
beforeEach(async () => {
|
|
68
|
-
page = await browser.newPage();
|
|
69
|
-
await page.goto(BASE_URL);
|
|
70
|
-
await waitForEditor(page);
|
|
71
|
-
});
|
|
72
|
-
it('editor initializes with toolbar and content area', async () => {
|
|
73
|
-
expect(await page.$('.cm-editor')).not.toBeNull();
|
|
74
|
-
expect(await page.$('.cm-toolbar-input')).not.toBeNull();
|
|
75
|
-
expect(await page.$('.cm-content')).not.toBeNull();
|
|
76
|
-
});
|
|
77
|
-
it('create a new file via toolbar', async () => {
|
|
78
|
-
await createFile(page, 'hello.ts');
|
|
79
|
-
expect(await getToolbarValue(page)).toBe('hello.ts');
|
|
80
|
-
});
|
|
81
|
-
it('type content into a file and verify persistence across file switches', async () => {
|
|
82
|
-
await createFile(page, 'persist-test.ts');
|
|
83
|
-
await typeInEditor(page, 'const x = 42;');
|
|
84
|
-
// Wait for debounced save (500ms debounce + buffer)
|
|
85
|
-
await new Promise(r => setTimeout(r, 1500));
|
|
86
|
-
// Open a different file
|
|
87
|
-
await createFile(page, 'other.ts');
|
|
88
|
-
// Wait for file switch to complete
|
|
89
|
-
await new Promise(r => setTimeout(r, 500));
|
|
90
|
-
await typeInEditor(page, 'const y = 100;');
|
|
91
|
-
await new Promise(r => setTimeout(r, 1500));
|
|
92
|
-
// Re-open the original file — content should be persisted in VFS
|
|
93
|
-
await openFile(page, 'persist-test.ts');
|
|
94
|
-
// Wait for file content to load
|
|
95
|
-
await new Promise(r => setTimeout(r, 500));
|
|
96
|
-
const text = await getEditorText(page);
|
|
97
|
-
expect(text).toContain('const x = 42;');
|
|
98
|
-
});
|
|
99
|
-
it('create file appears in search index for subsequent searches', async () => {
|
|
100
|
-
await createFile(page, 'searchable-file.ts');
|
|
101
|
-
await new Promise(r => setTimeout(r, 500));
|
|
102
|
-
// Search for it
|
|
103
|
-
await page.click('.cm-toolbar-input', { count: 3 });
|
|
104
|
-
await page.type('.cm-toolbar-input', 'searchable');
|
|
105
|
-
await page.waitForSelector('.cm-search-result', { timeout: 2000 });
|
|
106
|
-
const resultText = await page.$eval('.cm-file-result', el => el.textContent);
|
|
107
|
-
expect(resultText).toContain('searchable-file.ts');
|
|
108
|
-
});
|
|
109
|
-
it('pressing Escape closes the dropdown', async () => {
|
|
110
|
-
await page.click('.cm-toolbar-input', { count: 3 });
|
|
111
|
-
await page.type('.cm-toolbar-input', 'test');
|
|
112
|
-
await page.waitForSelector('.cm-search-result', { timeout: 2000 });
|
|
113
|
-
const countBefore = await page.$$eval('.cm-search-result', els => els.length);
|
|
114
|
-
expect(countBefore).toBeGreaterThan(0);
|
|
115
|
-
await page.keyboard.press('Escape');
|
|
116
|
-
// Wait for state update
|
|
117
|
-
await new Promise(r => setTimeout(r, 200));
|
|
118
|
-
const countAfter = await page.$$eval('.cm-search-result', els => els.length);
|
|
119
|
-
expect(countAfter).toBe(0);
|
|
120
|
-
});
|
|
121
|
-
it('keyboard navigation in toolbar dropdown', async () => {
|
|
122
|
-
await createFile(page, 'nav-a.ts');
|
|
123
|
-
await new Promise(r => setTimeout(r, 300));
|
|
124
|
-
await createFile(page, 'nav-b.ts');
|
|
125
|
-
await new Promise(r => setTimeout(r, 300));
|
|
126
|
-
await page.click('.cm-toolbar-input', { count: 3 });
|
|
127
|
-
await page.type('.cm-toolbar-input', 'nav-');
|
|
128
|
-
await page.waitForSelector('.cm-search-result', { timeout: 2000 });
|
|
129
|
-
await page.keyboard.press('ArrowDown');
|
|
130
|
-
const selectedCount = await page.$$eval('.cm-search-result.selected', els => els.length);
|
|
131
|
-
expect(selectedCount).toBe(1);
|
|
132
|
-
await page.keyboard.press('Enter');
|
|
133
|
-
await new Promise(r => setTimeout(r, 500));
|
|
134
|
-
const value = await getToolbarValue(page);
|
|
135
|
-
expect(value).toMatch(/nav-/);
|
|
136
|
-
});
|
|
137
|
-
}, 30_000);
|
|
138
|
-
describe('Editor - TypeScript Language Support', () => {
|
|
139
|
-
let browser;
|
|
140
|
-
let page;
|
|
141
|
-
beforeAll(async () => {
|
|
142
|
-
browser = await puppeteer.launch({
|
|
143
|
-
executablePath: CHROME_PATH,
|
|
144
|
-
headless: process.env.HEADFUL ? false : true,
|
|
145
|
-
args: [
|
|
146
|
-
'--no-sandbox',
|
|
147
|
-
'--disable-setuid-sandbox',
|
|
148
|
-
'--disable-web-security',
|
|
149
|
-
'--disable-site-isolation-trials',
|
|
150
|
-
'--allow-file-access-from-files',
|
|
151
|
-
],
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
afterAll(async () => {
|
|
155
|
-
await browser.close();
|
|
156
|
-
});
|
|
157
|
-
beforeEach(async () => {
|
|
158
|
-
page = await browser.newPage();
|
|
159
|
-
await page.goto(BASE_URL);
|
|
160
|
-
await waitForEditor(page);
|
|
161
|
-
});
|
|
162
|
-
it('TypeScript syntax highlighting is applied', async () => {
|
|
163
|
-
await createFile(page, 'highlight.ts');
|
|
164
|
-
await typeInEditor(page, 'const greeting: string = "hello";');
|
|
165
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
166
|
-
// CodeMirror wraps highlighted tokens in spans
|
|
167
|
-
const html = await page.$eval('.cm-content', el => el.innerHTML);
|
|
168
|
-
expect(html).toContain('<span');
|
|
169
|
-
});
|
|
170
|
-
it('TypeScript diagnostics appear for type errors', async () => {
|
|
171
|
-
await createFile(page, 'syntax-error.ts');
|
|
172
|
-
await typeInEditor(page, 'const x: number = "not a number";');
|
|
173
|
-
// Wait for LSP diagnostics
|
|
174
|
-
await page.waitForSelector('.cm-lintRange-error, .cm-lintRange-warning, .cm-lint-marker', {
|
|
175
|
-
timeout: 20_000,
|
|
176
|
-
});
|
|
177
|
-
const markerCount = await page.$$eval('.cm-lintRange-error, .cm-lintRange-warning', els => els.length);
|
|
178
|
-
expect(markerCount).toBeGreaterThan(0);
|
|
179
|
-
});
|
|
180
|
-
it('hovering a diagnostic shows tooltip', async () => {
|
|
181
|
-
await createFile(page, 'hover-error.ts');
|
|
182
|
-
await typeInEditor(page, 'const x: number = "wrong type";');
|
|
183
|
-
await page.waitForSelector('.cm-lintRange-error, .cm-lintRange-warning', {
|
|
184
|
-
timeout: 20_000,
|
|
185
|
-
});
|
|
186
|
-
// Hover over the error
|
|
187
|
-
const marker = await page.$('.cm-lintRange-error, .cm-lintRange-warning');
|
|
188
|
-
if (marker) {
|
|
189
|
-
await marker.hover();
|
|
190
|
-
await page.waitForSelector('.cm-tooltip, .cm-lint-tooltip, .cm-tooltip-lint', {
|
|
191
|
-
timeout: 5000,
|
|
192
|
-
});
|
|
193
|
-
const tooltip = await page.$('.cm-tooltip, .cm-lint-tooltip, .cm-tooltip-lint');
|
|
194
|
-
expect(tooltip).not.toBeNull();
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
it('TypeScript semantic errors for undefined variables', async () => {
|
|
198
|
-
await createFile(page, 'semantic-error.ts');
|
|
199
|
-
await typeInEditor(page, 'console.log(undefinedVariable);');
|
|
200
|
-
await page.waitForSelector('.cm-lintRange-error, .cm-lintRange-warning', {
|
|
201
|
-
timeout: 20_000,
|
|
202
|
-
});
|
|
203
|
-
const markerCount = await page.$$eval('.cm-lintRange-error, .cm-lintRange-warning', els => els.length);
|
|
204
|
-
expect(markerCount).toBeGreaterThan(0);
|
|
205
|
-
});
|
|
206
|
-
it('built-in types are recognized without errors', async () => {
|
|
207
|
-
await createFile(page, 'builtins.ts');
|
|
208
|
-
// Use export {} to make this a module, avoiding redeclaration conflicts
|
|
209
|
-
// with variables in other test files sharing the same TypeScript project.
|
|
210
|
-
await typeInEditor(page, 'export {};\nlet x: number = 42;\nlet s: string = "hello";\nlet arr: Array<number> = [1, 2, 3];');
|
|
211
|
-
// Poll for errors to clear — the LSP async init takes variable time.
|
|
212
|
-
let errors = [];
|
|
213
|
-
const deadline = Date.now() + 30_000;
|
|
214
|
-
while (Date.now() < deadline) {
|
|
215
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
216
|
-
errors = await page.$$('.cm-lintRange-error');
|
|
217
|
-
if (errors.length === 0)
|
|
218
|
-
break;
|
|
219
|
-
// Force document re-evaluation to trigger fresh diagnostics
|
|
220
|
-
await page.keyboard.press('End');
|
|
221
|
-
await page.keyboard.type(' ');
|
|
222
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
223
|
-
await page.keyboard.press('Backspace');
|
|
224
|
-
}
|
|
225
|
-
expect(errors.length).toBe(0);
|
|
226
|
-
});
|
|
227
|
-
it('autocomplete triggers for built-in type methods', async () => {
|
|
228
|
-
await createFile(page, 'completions.ts');
|
|
229
|
-
// Type some valid TS first so the LSP fully initializes with lib files
|
|
230
|
-
await typeInEditor(page, 'let s: string = "hello";\n');
|
|
231
|
-
// Wait for LSP to process and load TypeScript libs
|
|
232
|
-
await new Promise(r => setTimeout(r, 8000));
|
|
233
|
-
// Now type a dot accessor which should trigger completions
|
|
234
|
-
await typeInEditor(page, 's.');
|
|
235
|
-
try {
|
|
236
|
-
await page.waitForSelector('.cm-tooltip-autocomplete', {
|
|
237
|
-
timeout: 15_000,
|
|
238
|
-
});
|
|
239
|
-
const completionText = await page.$eval('.cm-tooltip-autocomplete', el => el.textContent);
|
|
240
|
-
const hasMethod = ['length', 'charAt', 'indexOf', 'slice', 'toString']
|
|
241
|
-
.some(m => completionText?.includes(m));
|
|
242
|
-
expect(hasMethod).toBe(true);
|
|
243
|
-
}
|
|
244
|
-
catch {
|
|
245
|
-
// Autocompletions may not trigger in headless mode depending on LSP timing.
|
|
246
|
-
// Verify at minimum that the editor didn't crash.
|
|
247
|
-
expect(await page.$('.cm-content')).not.toBeNull();
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
it('cross-file imports: exported constant is recognized in another file', async () => {
|
|
251
|
-
// 1. Create file A with an exported constant
|
|
252
|
-
await createFile(page, 'module-a.ts');
|
|
253
|
-
await typeInEditor(page, 'export const greeting = "hello";');
|
|
254
|
-
// Wait for debounced save to flush content to VFS
|
|
255
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
256
|
-
// 2. Create file B that imports from file A
|
|
257
|
-
await createFile(page, 'module-b.ts');
|
|
258
|
-
await typeInEditor(page, 'import { greeting } from "./module-a";\nconsole.log(greeting);');
|
|
259
|
-
// 3. Wait for LSP diagnostics to settle
|
|
260
|
-
// Poll until no errors, or timeout
|
|
261
|
-
let errors = [];
|
|
262
|
-
const deadline = Date.now() + 30_000;
|
|
263
|
-
while (Date.now() < deadline) {
|
|
264
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
265
|
-
errors = await page.$$('.cm-lintRange-error');
|
|
266
|
-
if (errors.length === 0)
|
|
267
|
-
break;
|
|
268
|
-
// Nudge the LSP by making a trivial edit and undoing it
|
|
269
|
-
await page.keyboard.press('End');
|
|
270
|
-
await page.keyboard.type(' ');
|
|
271
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
272
|
-
await page.keyboard.press('Backspace');
|
|
273
|
-
}
|
|
274
|
-
expect(errors.length).toBe(0);
|
|
275
|
-
});
|
|
276
|
-
}, 60_000);
|
|
277
|
-
describe('Editor - JavaScript Language Support', () => {
|
|
278
|
-
let browser;
|
|
279
|
-
let page;
|
|
280
|
-
beforeAll(async () => {
|
|
281
|
-
browser = await puppeteer.launch({
|
|
282
|
-
executablePath: CHROME_PATH,
|
|
283
|
-
headless: true,
|
|
284
|
-
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-web-security'],
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
afterAll(async () => {
|
|
288
|
-
await browser.close();
|
|
289
|
-
});
|
|
290
|
-
beforeEach(async () => {
|
|
291
|
-
page = await browser.newPage();
|
|
292
|
-
await page.goto(BASE_URL);
|
|
293
|
-
await waitForEditor(page);
|
|
294
|
-
});
|
|
295
|
-
it('JavaScript files get syntax highlighting', async () => {
|
|
296
|
-
await createFile(page, 'script.js');
|
|
297
|
-
await typeInEditor(page, 'function add(a, b) { return a + b; }');
|
|
298
|
-
await new Promise(r => setTimeout(r, 1000));
|
|
299
|
-
const html = await page.$eval('.cm-content', el => el.innerHTML);
|
|
300
|
-
expect(html).toContain('<span');
|
|
301
|
-
});
|
|
302
|
-
it('editor does not crash on JS files', async () => {
|
|
303
|
-
await createFile(page, 'js-test.js');
|
|
304
|
-
await typeInEditor(page, '/** @type {number} */\nconst x = "string";');
|
|
305
|
-
await new Promise(r => setTimeout(r, 2000));
|
|
306
|
-
// Verify editor is still functional
|
|
307
|
-
expect(await page.$('.cm-content')).not.toBeNull();
|
|
308
|
-
});
|
|
309
|
-
}, 30_000);
|
package/dist/e2e/example.spec.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { test } from '@playwright/test';
|
|
2
|
-
import * as Comlink from "comlink";
|
|
3
|
-
import { watchOptionsTransferHandler, asyncGeneratorTransferHandler } from '../rpc/serde';
|
|
4
|
-
Comlink.transferHandlers.set('asyncGenerator', asyncGeneratorTransferHandler);
|
|
5
|
-
Comlink.transferHandlers.set('watchOptions', watchOptionsTransferHandler);
|
|
6
|
-
test.describe('workers/fs', async () => {
|
|
7
|
-
test('should initialize from existing buffer', async ({ page }) => {
|
|
8
|
-
page.on('worker', worker => {
|
|
9
|
-
console.log('Worker created: ' + worker.url());
|
|
10
|
-
// @ts-expect-error
|
|
11
|
-
worker.on('console', msg => {
|
|
12
|
-
console.log(`Worker console message: ${msg}`);
|
|
13
|
-
});
|
|
14
|
-
worker.on('close', worker => console.log('Worker destroyed: ' + worker.url()));
|
|
15
|
-
});
|
|
16
|
-
page.on('console', msg => console.log(msg.text()));
|
|
17
|
-
page.on('console', msg => {
|
|
18
|
-
if (msg.type() === 'error')
|
|
19
|
-
console.log(`Error text: "${msg.text()}"`);
|
|
20
|
-
});
|
|
21
|
-
await page.goto('http://localhost:5173');
|
|
22
|
-
await page.addScriptTag({ url: 'https://unpkg.com/comlink/dist/umd/comlink.js' });
|
|
23
|
-
// const content = await page.evaluate(async (workerUrl) => {
|
|
24
|
-
// const { asyncGeneratorTransferHandler, watchOptionsTransferHandler } = await import('../../src/rpc/serde.js');
|
|
25
|
-
// Comlink.transferHandlers.set('asyncGenerator', asyncGeneratorTransferHandler)
|
|
26
|
-
// Comlink.transferHandlers.set('watchOptions', watchOptionsTransferHandler)
|
|
27
|
-
// console.log('before worker??')
|
|
28
|
-
// console.log(window.location.origin, 'before worker');
|
|
29
|
-
// const worker = new SharedWorker(workerUrl, { type: 'module' });
|
|
30
|
-
// console.log({ port: worker.port })
|
|
31
|
-
// console.log('worker started');
|
|
32
|
-
// worker.port.start();
|
|
33
|
-
// const { mount } = Comlink.wrap<FsMountOptions>(worker.port);
|
|
34
|
-
// const { fs } = await mount({ fsBuffer: new ArrayBuffer(0x100000) });
|
|
35
|
-
// // window.fs = await fs;
|
|
36
|
-
// await fs.writeFile('/example.ts', 'console.log("Hello, world!")');
|
|
37
|
-
// return await fs.readFile('/example.ts', { encoding: 'utf-8' });
|
|
38
|
-
// }, workerUrl);
|
|
39
|
-
// const fileContent = await page.evaluate(async (proxy) => {
|
|
40
|
-
// return proxy.readFile('/some/path', 'utf-8');
|
|
41
|
-
// }, fsProxy);
|
|
42
|
-
// expect(fileContent).toBe('expected content');
|
|
43
|
-
});
|
|
44
|
-
});
|
package/dist/index.html
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>@joinezco/codeblock</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-CkWzFNzm.js"></script>
|
|
9
|
-
</head>
|
|
10
|
-
|
|
11
|
-
<body>
|
|
12
|
-
<div id="editor"></div>
|
|
13
|
-
</body>
|
|
14
|
-
|
|
15
|
-
</html>
|