提交 a618ec3f authored 作者: Will Chen's avatar Will Chen

[generated] sandpack files from: codesandbox-client

上级 4b641a33
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
this.webpackChunk([1],{"../../node_modules/babel-code-frame/lib/index.js":function(u,D,F){"use strict";D.__esModule=!0,D.default=function(u,D,F){var A=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};F=Math.max(F,0);var C=A.highlightCode&&E.default.supportsColor||A.forceColor,e=E.default;A.forceColor&&(e=new E.default.constructor({enabled:!0}));var B=function(u,D){return C?u(D):D},r=t(e);C&&(u=o(r,u));var s=A.linesAbove||2,i=A.linesBelow||3,a=u.split(n),c=Math.max(D-(s+1),0),l=Math.min(a.length,D+i);D||F||(c=0,l=a.length);var d=String(l).length,f=a.slice(c,l).map((function(u,A){var C=c+1+A,e=" "+(" "+C).slice(-d)+" | ";if(C===D){var E="";if(F){var t=u.slice(0,F-1).replace(/[^\t]/g," ");E=["\n ",B(r.gutter,e.replace(/\d/g," ")),t,B(r.marker,"^")].join("")}return[B(r.marker,">"),B(r.gutter,e),u,E].join("")}return" "+B(r.gutter,e)+u})).join("\n");return C?e.reset(f):f};var A=F("../../node_modules/js-tokens/index.js"),C=B(A),e=B(F("../../node_modules/esutils/lib/utils.js")),E=B(F("../../node_modules/babel-code-frame/node_modules/chalk/index.js"));function B(u){return u&&u.__esModule?u:{default:u}}function t(u){return{keyword:u.cyan,capitalized:u.yellow,jsx_tag:u.yellow,punctuator:u.yellow,number:u.magenta,string:u.green,regex:u.magenta,comment:u.grey,invalid:u.white.bgRed.bold,gutter:u.grey,marker:u.red.bold}}var n=/\r\n|[\n\r\u2028\u2029]/,r=/^[a-z][\w-]*$/i,s=/^[()\[\]{}]$/;function i(u){var D=u.slice(-2),F=D[0],C=D[1],E=(0,A.matchToToken)(u);if("name"===E.type){if(e.default.keyword.isReservedWordES6(E.value))return"keyword";if(r.test(E.value)&&("<"===C[F-1]||"</"==C.substr(F-2,2)))return"jsx_tag";if(E.value[0]!==E.value[0].toLowerCase())return"capitalized"}return"punctuator"===E.type&&s.test(E.value)?"bracket":E.type}function o(u,D){return D.replace(C.default,(function(){for(var D=arguments.length,F=Array(D),A=0;A<D;A++)F[A]=arguments[A];var C=i(F),e=u[C];return e?F[0].split(n).map((function(u){return e(u)})).join("\n"):F[0]}))}u.exports=D.default},"../../node_modules/babel-code-frame/node_modules/ansi-regex/index.js":function(u,D,F){"use strict";u.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},"../../node_modules/babel-code-frame/node_modules/ansi-styles/index.js":function(u,D,F){(function(u){var F,A,C;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,A=[],void 0===(C="function"==typeof(F=function(){"use strict";Object.defineProperty(u,"exports",{enumerable:!0,get:function(){var u={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return u.colors.grey=u.colors.gray,Object.keys(u).forEach((function(D){var F=u[D];Object.keys(F).forEach((function(D){var A=F[D];u[D]=F[D]={open:"\x1b["+A[0]+"m",close:"\x1b["+A[1]+"m"}})),Object.defineProperty(u,D,{value:F,enumerable:!1})})),u}})})?F.apply(D,A):F)||(u.exports=C)}).call(this,F("../../node_modules/webpack/buildin/module.js")(u))},"../../node_modules/babel-code-frame/node_modules/chalk/index.js":function(u,D,F){(function(A){var C,e,E;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,e=[],void 0===(E="function"==typeof(C=function(){"use strict";var D=F("../../node_modules/escape-string-regexp/index.js"),C=F("../../node_modules/babel-code-frame/node_modules/ansi-styles/index.js"),e=F("../../node_modules/babel-code-frame/node_modules/strip-ansi/index.js"),E=F("../../node_modules/has-ansi/index.js"),B=F("../../node_modules/babel-code-frame/node_modules/supports-color/index.js"),t=Object.defineProperties,n="win32"===A.platform&&!/^xterm/i.test(A.env.TERM);function r(u){this.enabled=u&&void 0!==u.enabled?u.enabled:B}n&&(C.blue.open="\x1b[94m");var s,i=(s={},Object.keys(C).forEach((function(u){C[u].closeRe=new RegExp(D(C[u].close),"g"),s[u]={get:function(){return a.call(this,this._styles.concat(u))}}})),s),o=t((function(){}),i);function a(u){var D=function(){return c.apply(D,arguments)};return D._styles=u,D.enabled=this.enabled,D.__proto__=o,D}function c(){var u=arguments,D=u.length,F=0!==D&&String(arguments[0]);if(D>1)for(var A=1;A<D;A++)F+=" "+u[A];if(!this.enabled||!F)return F;var e=this._styles,E=e.length,B=C.dim.open;for(!n||-1===e.indexOf("gray")&&-1===e.indexOf("grey")||(C.dim.open="");E--;){var t=C[e[E]];F=t.open+F.replace(t.closeRe,t.open)+t.close}return C.dim.open=B,F}t(r.prototype,function(){var u={};return Object.keys(i).forEach((function(D){u[D]={get:function(){return a.call(this,[D])}}})),u}()),u.exports=new r,u.exports.styles=C,u.exports.hasColor=E,u.exports.stripColor=e,u.exports.supportsColor=B})?C.apply(D,e):C)||(u.exports=E)}).call(this,F("../../node_modules/process/browser.js"))},"../../node_modules/babel-code-frame/node_modules/strip-ansi/index.js":function(u,D,F){"use strict";var A=F("../../node_modules/babel-code-frame/node_modules/ansi-regex/index.js")();u.exports=function(u){return"string"==typeof u?u.replace(A,""):u}},"../../node_modules/babel-code-frame/node_modules/supports-color/index.js":function(u,D,F){"use strict";(function(D){var F=D.argv,A=F.indexOf("--"),C=function(u){u="--"+u;var D=F.indexOf(u);return-1!==D&&(-1===A||D<A)};u.exports=!(!("FORCE_COLOR"in D.env)&&(C("no-color")||C("no-colors")||C("color=false")||!(C("color")||C("colors")||C("color=true")||C("color=always"))&&(D.stdout&&!D.stdout.isTTY||"win32"!==D.platform&&!("COLORTERM"in D.env)&&("dumb"===D.env.TERM||!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(D.env.TERM)))))}).call(this,F("../../node_modules/process/browser.js"))},"../../node_modules/esutils/lib/ast.js":function(u,D){!function(){"use strict";function D(u){if(null==u)return!1;switch(u.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function F(u){switch(u.type){case"IfStatement":return null!=u.alternate?u.alternate:u.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return u.body}return null}u.exports={isExpression:function(u){if(null==u)return!1;switch(u.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:D,isIterationStatement:function(u){if(null==u)return!1;switch(u.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(u){return D(u)||null!=u&&"FunctionDeclaration"===u.type},isProblematicIfStatement:function(u){var D;if("IfStatement"!==u.type)return!1;if(null==u.alternate)return!1;D=u.consequent;do{if("IfStatement"===D.type&&null==D.alternate)return!0;D=F(D)}while(D);return!1},trailingStatement:F}}()},"../../node_modules/esutils/lib/code.js":function(u,D){!function(){"use strict";var D,F,A,C,e,E;function B(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(Math.floor((u-65536)/1024)+55296)+String.fromCharCode((u-65536)%1024+56320)}for(F={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},D={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},A=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],C=new Array(128),E=0;E<128;++E)C[E]=E>=97&&E<=122||E>=65&&E<=90||36===E||95===E;for(e=new Array(128),E=0;E<128;++E)e[E]=E>=97&&E<=122||E>=65&&E<=90||E>=48&&E<=57||36===E||95===E;u.exports={isDecimalDigit:function(u){return 48<=u&&u<=57},isHexDigit:function(u){return 48<=u&&u<=57||97<=u&&u<=102||65<=u&&u<=70},isOctalDigit:function(u){return u>=48&&u<=55},isWhiteSpace:function(u){return 32===u||9===u||11===u||12===u||160===u||u>=5760&&A.indexOf(u)>=0},isLineTerminator:function(u){return 10===u||13===u||8232===u||8233===u},isIdentifierStartES5:function(u){return u<128?C[u]:F.NonAsciiIdentifierStart.test(B(u))},isIdentifierPartES5:function(u){return u<128?e[u]:F.NonAsciiIdentifierPart.test(B(u))},isIdentifierStartES6:function(u){return u<128?C[u]:D.NonAsciiIdentifierStart.test(B(u))},isIdentifierPartES6:function(u){return u<128?e[u]:D.NonAsciiIdentifierPart.test(B(u))}}}()},"../../node_modules/esutils/lib/keyword.js":function(u,D,F){!function(){"use strict";var D=F("../../node_modules/esutils/lib/code.js");function A(u,D){return!(!D&&"yield"===u)&&C(u,D)}function C(u,D){if(D&&function(u){switch(u){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(u))return!0;switch(u.length){case 2:return"if"===u||"in"===u||"do"===u;case 3:return"var"===u||"for"===u||"new"===u||"try"===u;case 4:return"this"===u||"else"===u||"case"===u||"void"===u||"with"===u||"enum"===u;case 5:return"while"===u||"break"===u||"catch"===u||"throw"===u||"const"===u||"yield"===u||"class"===u||"super"===u;case 6:return"return"===u||"typeof"===u||"delete"===u||"switch"===u||"export"===u||"import"===u;case 7:return"default"===u||"finally"===u||"extends"===u;case 8:return"function"===u||"continue"===u||"debugger"===u;case 10:return"instanceof"===u;default:return!1}}function e(u,D){return"null"===u||"true"===u||"false"===u||A(u,D)}function E(u,D){return"null"===u||"true"===u||"false"===u||C(u,D)}function B(u){var F,A,C;if(0===u.length)return!1;if(C=u.charCodeAt(0),!D.isIdentifierStartES5(C))return!1;for(F=1,A=u.length;F<A;++F)if(C=u.charCodeAt(F),!D.isIdentifierPartES5(C))return!1;return!0}function t(u){var F,A,C,e,E;if(0===u.length)return!1;for(E=D.isIdentifierStartES6,F=0,A=u.length;F<A;++F){if(55296<=(C=u.charCodeAt(F))&&C<=56319){if(++F>=A)return!1;if(!(56320<=(e=u.charCodeAt(F))&&e<=57343))return!1;C=1024*(C-55296)+(e-56320)+65536}if(!E(C))return!1;E=D.isIdentifierPartES6}return!0}u.exports={isKeywordES5:A,isKeywordES6:C,isReservedWordES5:e,isReservedWordES6:E,isRestrictedWord:function(u){return"eval"===u||"arguments"===u},isIdentifierNameES5:B,isIdentifierNameES6:t,isIdentifierES5:function(u,D){return B(u)&&!e(u,D)},isIdentifierES6:function(u,D){return t(u)&&!E(u,D)}}}()},"../../node_modules/esutils/lib/utils.js":function(u,D,F){!function(){"use strict";D.ast=F("../../node_modules/esutils/lib/ast.js"),D.code=F("../../node_modules/esutils/lib/code.js"),D.keyword=F("../../node_modules/esutils/lib/keyword.js")}()},"../../node_modules/has-ansi/index.js":function(u,D,F){"use strict";var A=F("../../node_modules/has-ansi/node_modules/ansi-regex/index.js"),C=new RegExp(A().source);u.exports=C.test.bind(C)},"../../node_modules/has-ansi/node_modules/ansi-regex/index.js":function(u,D,F){"use strict";u.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},"../../node_modules/js-tokens/index.js":function(u,D){Object.defineProperty(D,"__esModule",{value:!0}),D.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,D.matchToToken=function(u){var D={type:"invalid",value:u[0]};return u[1]?(D.type="string",D.closed=!(!u[3]&&!u[4])):u[5]?D.type="comment":u[6]?(D.type="comment",D.closed=!!u[7]):u[8]?D.type="regex":u[9]?D.type="number":u[10]?D.type="name":u[11]?D.type="punctuator":u[12]&&(D.type="whitespace"),D}}});
//# sourceMappingURL=1.babel-transpiler.ef09383f.worker.js.map
\ No newline at end of file
this.webpackChunk(["babel-plugin-jsx-pragmatic"],{"../../node_modules/babel-plugin-jsx-pragmatic/jsx-pragmatic.js":function(t,e,i){t.exports=function(t){var e,n=t.types;return e={Program:{exit:function(t,e){e.get("jsxDetected")&&t.unshiftContainer("body",function(t){return n.importDeclaration([n.importSpecifier(n.identifier(t.opts.import),n.identifier(t.opts.export||"default"))],n.stringLiteral(t.opts.module))}(e))}},JSXElement:function(t,e){e.set("jsxDetected",!0)}},{pre:function(){if(!this.opts.module||!this.opts.import)throw new Error("babel-plugin-jsx-pragmatic: You must specify `module` and `import`")},inherits:i("../../node_modules/babel-plugin-syntax-jsx/lib/index.js"),visitor:e}}},"../../node_modules/babel-plugin-syntax-jsx/lib/index.js":function(t,e,i){"use strict";e.__esModule=!0,e.default=function(){return{manipulateOptions:function(t,e){e.plugins.push("jsx")}}},t.exports=e.default}});
//# sourceMappingURL=babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js.map
\ No newline at end of file
this.webpackChunk(["babel-plugin-transform-vue-jsx"],{"../../node_modules/babel-plugin-syntax-jsx/lib/index.js":function(u,D,A){"use strict";D.__esModule=!0,D.default=function(){return{manipulateOptions:function(u,D){D.plugins.push("jsx")}}},u.exports=D.default},"../../node_modules/babel-plugin-transform-vue-jsx/index.js":function(u,D,A){var F,C,e;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,C=[],void 0===(e="function"==typeof(F=function(){"use strict";var D=A("../../node_modules/esutils/lib/utils.js"),F=A("../../node_modules/babel-plugin-transform-vue-jsx/lib/group-props.js"),C=A("../../node_modules/babel-plugin-transform-vue-jsx/lib/must-use-prop.js"),e=function(u,D){return!!D.parentPath&&(!!u.isJSXExpressionContainer(D.parentPath)||e(u,D.parentPath))};u.exports=function(u){var E=u.types;return{inherits:A("../../node_modules/babel-plugin-syntax-jsx/lib/index.js"),visitor:{JSXNamespacedName(u){throw u.buildCodeFrameError("Namespaced tags/attributes are not supported. JSX is not XML.\nFor attributes like xlink:href, use xlinkHref instead.")},JSXElement:{exit(u,A){var C=function(u,A){u.parent.children=E.react.buildChildren(u.parent);var C,e=function u(A,F){if(E.isJSXIdentifier(A)){if("this"===A.name&&E.isReferenced(A,F))return E.thisExpression();if(!D.keyword.isIdentifierNameES6(A.name))return E.stringLiteral(A.name);A.type="Identifier"}else if(E.isJSXMemberExpression(A))return E.memberExpression(u(A.object,A),u(A.property,A));return A}(u.node.name,u.node),t=[];E.isIdentifier(e)?C=e.name:E.isLiteral(e)&&(C=e.value),E.react.isCompatTag(C)?t.push(E.stringLiteral(C)):t.push(e);var n=u.node.attributes;return n.length&&(n=function(u,D){var A=[],C=[];function e(){A.length&&(C.push(E.objectExpression(A)),A=[])}for(;u.length;){var t=u.shift();E.isJSXSpreadAttribute(t)?(e(),t.argument._isSpread=!0,C.push(t.argument)):A.push(B(t))}if(e(),1===(C=C.map((function(u){return u._isSpread?u:F(u.properties,E)}))).length)u=C[0];else if(C.length){var n=D.addImport("babel-helper-vue-jsx-merge-props","default","_mergeJSXProps");u=E.callExpression(n,[E.arrayExpression(C)])}return u}(n,A),t.push(n)),E.callExpression(E.identifier("h"),t)}(u.get("openingElement"),A);u.node.children.length&&(C.arguments.push(E.arrayExpression(u.node.children)),C.arguments.length>=3&&(C._prettyCall=!0)),u.replaceWith(E.inherits(C,u.node))}},Program(u){u.traverse({"ObjectMethod|ClassMethod"(u){const D=u.get("params");if(D.length&&"h"===D[0].node.name)return;const A={hasJsx:!1};if(u.traverse({JSXElement(){this.hasJsx=!0}},A),!A.hasJsx)return;if(e(E,u))return;const F="render"===u.node.key.name;u.get("body").unshiftContainer("body",E.variableDeclaration("const",[E.variableDeclarator(E.identifier("h"),F?E.memberExpression(E.identifier("arguments"),E.numericLiteral(0),!0):E.memberExpression(E.thisExpression(),E.identifier("$createElement")))]))},JSXOpeningElement(u){const D=u.get("name").node.name,A=u.get("attributes"),F=A.find(u=>u.node.name&&"type"===u.node.name.name),e=F&&E.isStringLiteral(F.node.value)?F.node.value.value:null;A.forEach(u=>{const A=u.get("name");if(!A.node)return;const F=A.node.name;C(D,e,F)&&E.isJSXExpressionContainer(u.node.value)&&A.replaceWith(E.JSXIdentifier("domProps-".concat(F)))})}})}}};function B(u){var D=function(u){return E.isJSXExpressionContainer(u)?u.expression:u}(u.value||E.booleanLiteral(!0));return E.isStringLiteral(D)&&!E.isJSXExpressionContainer(u.value)&&(D.value=D.value.replace(/\n\s+/g," ")),E.isValidIdentifier(u.name.name)?u.name.type="Identifier":u.name=E.stringLiteral(u.name.name),E.inherits(E.objectProperty(u.name,D),u)}}})?F.apply(D,C):F)||(u.exports=e)},"../../node_modules/babel-plugin-transform-vue-jsx/lib/group-props.js":function(u,D,A){var F,C,e;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,C=[],void 0===(e="function"==typeof(F=function(){"use strict";var D=A("../../node_modules/babel-plugin-transform-vue-jsx/lib/make-map.js")("class,staticClass,style,key,ref,refInFor,slot,scopedSlots"),F=/^(props|domProps|on|nativeOn|hook)([\-_A-Z])/,C=/^v-/,e=/^xlink([A-Z])/;u.exports=function(u,A){var E=[],B=Object.create(null);return u.forEach((function(u){var t=u.key.value||u.key.name;if(D(t))E.push(u);else{var n=t.match(F);if(n){var r=n[1],i=t.replace(F,(function(u,D,A){return"-"===A?"":A.toLowerCase()})),s=A.objectProperty(A.stringLiteral(i),u.value),a=B[r];a?a.value.properties.push(s):(a=B[r]=A.objectProperty(A.identifier(r),A.objectExpression([s])),E.push(a))}else if(C.test(t)){t=t.replace(C,"");var o=B.directives;o||(o=B.directives=A.objectProperty(A.identifier("directives"),A.arrayExpression([])),E.push(o)),o.value.elements.push(A.objectExpression([A.objectProperty(A.identifier("name"),A.stringLiteral(t)),A.objectProperty(A.identifier("value"),u.value)]))}else{var l=B.attrs;e.test(u.key.name)&&(u.key.name=JSON.stringify(u.key.name.replace(e,(function(u,D){return"xlink:"+D.toLowerCase()})))),l?l.value.properties.push(u):(l=B.attrs=A.objectProperty(A.identifier("attrs"),A.objectExpression([u])),E.push(l))}}})),A.objectExpression(E)}})?F.apply(D,C):F)||(u.exports=e)},"../../node_modules/babel-plugin-transform-vue-jsx/lib/make-map.js":function(u,D,A){var F,C,e;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,C=[],void 0===(e="function"==typeof(F=function(){"use strict";u.exports=function(u){for(var D=Object.create(null),A=u.split(","),F=0;F<A.length;F++)D[A[F]]=!0;return u=>D[u]}})?F.apply(D,C):F)||(u.exports=e)},"../../node_modules/babel-plugin-transform-vue-jsx/lib/must-use-prop.js":function(u,D,A){var F,C,e;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,C=[],void 0===(e="function"==typeof(F=function(){"use strict";const D=["input","textarea","option","select"];u.exports=(u,A,F)=>"value"===F&&D.includes(u)&&"button"!==A||"selected"===F&&"option"===u||"checked"===F&&"input"===u||"muted"===F&&"video"===u})?F.apply(D,C):F)||(u.exports=e)},"../../node_modules/esutils/lib/ast.js":function(u,D){!function(){"use strict";function D(u){if(null==u)return!1;switch(u.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function A(u){switch(u.type){case"IfStatement":return null!=u.alternate?u.alternate:u.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return u.body}return null}u.exports={isExpression:function(u){if(null==u)return!1;switch(u.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:D,isIterationStatement:function(u){if(null==u)return!1;switch(u.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(u){return D(u)||null!=u&&"FunctionDeclaration"===u.type},isProblematicIfStatement:function(u){var D;if("IfStatement"!==u.type)return!1;if(null==u.alternate)return!1;D=u.consequent;do{if("IfStatement"===D.type&&null==D.alternate)return!0;D=A(D)}while(D);return!1},trailingStatement:A}}()},"../../node_modules/esutils/lib/code.js":function(u,D){!function(){"use strict";var D,A,F,C,e,E;function B(u){return u<=65535?String.fromCharCode(u):String.fromCharCode(Math.floor((u-65536)/1024)+55296)+String.fromCharCode((u-65536)%1024+56320)}for(A={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},D={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},F=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],C=new Array(128),E=0;E<128;++E)C[E]=E>=97&&E<=122||E>=65&&E<=90||36===E||95===E;for(e=new Array(128),E=0;E<128;++E)e[E]=E>=97&&E<=122||E>=65&&E<=90||E>=48&&E<=57||36===E||95===E;u.exports={isDecimalDigit:function(u){return 48<=u&&u<=57},isHexDigit:function(u){return 48<=u&&u<=57||97<=u&&u<=102||65<=u&&u<=70},isOctalDigit:function(u){return u>=48&&u<=55},isWhiteSpace:function(u){return 32===u||9===u||11===u||12===u||160===u||u>=5760&&F.indexOf(u)>=0},isLineTerminator:function(u){return 10===u||13===u||8232===u||8233===u},isIdentifierStartES5:function(u){return u<128?C[u]:A.NonAsciiIdentifierStart.test(B(u))},isIdentifierPartES5:function(u){return u<128?e[u]:A.NonAsciiIdentifierPart.test(B(u))},isIdentifierStartES6:function(u){return u<128?C[u]:D.NonAsciiIdentifierStart.test(B(u))},isIdentifierPartES6:function(u){return u<128?e[u]:D.NonAsciiIdentifierPart.test(B(u))}}}()},"../../node_modules/esutils/lib/keyword.js":function(u,D,A){!function(){"use strict";var D=A("../../node_modules/esutils/lib/code.js");function F(u,D){return!(!D&&"yield"===u)&&C(u,D)}function C(u,D){if(D&&function(u){switch(u){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(u))return!0;switch(u.length){case 2:return"if"===u||"in"===u||"do"===u;case 3:return"var"===u||"for"===u||"new"===u||"try"===u;case 4:return"this"===u||"else"===u||"case"===u||"void"===u||"with"===u||"enum"===u;case 5:return"while"===u||"break"===u||"catch"===u||"throw"===u||"const"===u||"yield"===u||"class"===u||"super"===u;case 6:return"return"===u||"typeof"===u||"delete"===u||"switch"===u||"export"===u||"import"===u;case 7:return"default"===u||"finally"===u||"extends"===u;case 8:return"function"===u||"continue"===u||"debugger"===u;case 10:return"instanceof"===u;default:return!1}}function e(u,D){return"null"===u||"true"===u||"false"===u||F(u,D)}function E(u,D){return"null"===u||"true"===u||"false"===u||C(u,D)}function B(u){var A,F,C;if(0===u.length)return!1;if(C=u.charCodeAt(0),!D.isIdentifierStartES5(C))return!1;for(A=1,F=u.length;A<F;++A)if(C=u.charCodeAt(A),!D.isIdentifierPartES5(C))return!1;return!0}function t(u){var A,F,C,e,E;if(0===u.length)return!1;for(E=D.isIdentifierStartES6,A=0,F=u.length;A<F;++A){if(55296<=(C=u.charCodeAt(A))&&C<=56319){if(++A>=F)return!1;if(!(56320<=(e=u.charCodeAt(A))&&e<=57343))return!1;C=1024*(C-55296)+(e-56320)+65536}if(!E(C))return!1;E=D.isIdentifierPartES6}return!0}u.exports={isKeywordES5:F,isKeywordES6:C,isReservedWordES5:e,isReservedWordES6:E,isRestrictedWord:function(u){return"eval"===u||"arguments"===u},isIdentifierNameES5:B,isIdentifierNameES6:t,isIdentifierES5:function(u,D){return B(u)&&!e(u,D)},isIdentifierES6:function(u,D){return t(u)&&!E(u,D)}}}()},"../../node_modules/esutils/lib/utils.js":function(u,D,A){!function(){"use strict";D.ast=A("../../node_modules/esutils/lib/ast.js"),D.code=A("../../node_modules/esutils/lib/code.js"),D.keyword=A("../../node_modules/esutils/lib/keyword.js")}()}});
//# sourceMappingURL=babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#000000</TileColor>
</tile>
</msapplication>
</browserconfig>
<svg width="683" height="683" viewBox="0 0 683 683" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M83 83L599 83V599H83V83ZM546.227 135.773V546.227H135.773V135.773H546.227Z" fill="#151515"/>
</svg>
!function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s="../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/coffee/coffee-worker.ts")}({"../../node_modules/@babel/runtime/helpers/asyncToGenerator.js":function(e,t){function r(e,t,r,o,n,s,i){try{var a=e[s](i),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(o,n)}e.exports=function(e){return function(){var t=this,o=arguments;return new Promise((function(n,s){var i=e.apply(t,o);function a(e){r(i,n,s,a,l,"next",e)}function l(e){r(i,n,s,a,l,"throw",e)}a(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(e,t,r){var o=r("../../node_modules/@babel/runtime/helpers/toPropertyKey.js");e.exports=function(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPrimitive.js":function(e,t,r){var o=r("../../node_modules/@babel/runtime/helpers/typeof.js").default;e.exports=function(e,t){if("object"!==o(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPropertyKey.js":function(e,t,r){var o=r("../../node_modules/@babel/runtime/helpers/typeof.js").default,n=r("../../node_modules/@babel/runtime/helpers/toPrimitive.js");e.exports=function(e){var t=n(e,"string");return"symbol"===o(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/typeof.js":function(e,t){function r(t){return e.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,r(t)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/coffee/coffee-worker.ts":function(e,t,r){"use strict";r.r(t);var o=r("../../node_modules/@babel/runtime/helpers/asyncToGenerator.js"),n=r.n(o),s=r("../../node_modules/@babel/runtime/helpers/defineProperty.js"),i=r.n(s);class a extends Error{}const l=new class{constructor(e){i()(this,"name",void 0),i()(this,"functions",new Map),i()(this,"pendingCalls",new Map),i()(this,"callId",0),i()(this,"isReady",!1),i()(this,"initializeFS",void 0),i()(this,"queuedMessages",[]),this.name=e,self.addEventListener("message",e=>{this.handleMessage(e.data).catch(console.error)}),self.postMessage({type:"worker_started",codesandbox:!0})}registerFunction(e,t){this.functions.set(e,t)}registerFSInitializer(e){this.initializeFS=e}handleMessage(e){var t=this;return n()((function*(){if("object"==typeof e&&e.codesandbox)if(t.isReady)switch(e.type){case"ping":t.isReady&&(yield t.emitReady());break;case"request":yield t.handleCallRequest(e);break;case"response":yield t.handleCallResponse(e);break;case"initialize-fs":if(!t.initializeFS)throw new Error("initializeFS is undefined for ".concat(t.name));yield t.initializeFS()}else t.queuedMessages.push(e);else e.browserfsMessage||console.warn("Invalid message from main thread to ".concat(t.name),e)}))()}handleCallResponse(e){const t=this.pendingCalls.get(e.idx);t&&(e.isError?t.reject(function(e){const t=new a(e.message);return t.name=e.name,t.columnNumber=e.columnNumber,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t}(e.data)):t.resolve(e.data))}handleCallRequest(e){var t=this;return n()((function*(){try{const r=t.functions.get(e.method);if(!r)throw new Error("Could not find registered child function for call ".concat(t.name,"#").concat(e.method));const o=yield r(e.data);self.postMessage({type:"response",codesandbox:!0,idx:e.idx,data:o})}catch(t){console.error(t),self.postMessage({type:"response",codesandbox:!0,idx:e.idx,isError:!0,data:(r=t,{name:r.name,message:r.message,fileName:r.fileName,lineNumber:r.lineNumber,columnNumber:r.columnNumber})})}var r}))()}callFn(e){let t=e.method,r=e.data;const o=this.callId++,n={type:"request",codesandbox:!0,idx:o,method:t,data:r};return new Promise((e,s)=>{this.pendingCalls.set(o,{method:t,data:r,resolve:e,reject:s}),self.postMessage(n)})}emitReady(){this.isReady=!0,this.queuedMessages.forEach(e=>{console.warn("Run queued message",e),this.handleMessage(e).catch(console.error)}),self.postMessage({type:"ready",codesandbox:!0})}}("coffee-worker");function u(){return(u=n()((function*(e){const t=e.code,r=e.path;return{code:self.CoffeeScript.compile(t,{filename:r,sourceFiles:[r],bare:!0,literate:!1,inlineMap:!0,sourceMap:!1})}}))).apply(this,arguments)}self.importScripts("".concat("","/static/js/coffeescript.2.3.2.js")),l.registerFunction("compile",(function(e){return u.apply(this,arguments)})),l.emitReady()}});
//# sourceMappingURL=coffee-transpiler.6abe87e8.worker.js.map
\ No newline at end of file
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_12_330)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 16L111.946 16V112H16V16ZM102.134 25.8182V102.182H25.8127V25.8182H102.134Z" fill="#151515"/>
</g>
<defs>
<clipPath id="clip0_12_330">
<rect width="128" height="128" fill="white"/>
</clipPath>
</defs>
</svg>
#!/bin/sh
# Recreate config file
envConfigFilePath=$1
rm -rf $envConfigFilePath
touch $envConfigFilePath
# Add assignment
echo "window._env_ = {" >> $envConfigFilePath
while IFS='=' read -r varname varvalue || [ -n "$varname" ]; do
value=""
if [ ! -z $(printenv | grep "$varname=") ]; then
eval "value=\"\${$varname}\""
else
# Otherwise use value from .env file
value="$varvalue"
fi
echo " $varname: \"$value\"," >> "$envConfigFilePath"
done < ".env"
echo "}" >> "$envConfigFilePath"
{
"static/js/0.483b0f0f9.chunk.js": "/static/js/0.483b0f0f9.chunk.js",
"static/js/0.483b0f0f9.chunk.js.map": "/static/js/0.483b0f0f9.chunk.js.map",
"static/js/1.390d5cd6d.chunk.js": "/static/js/1.390d5cd6d.chunk.js",
"static/js/1.390d5cd6d.chunk.js.map": "/static/js/1.390d5cd6d.chunk.js.map",
"static/js/2.f916e8469.chunk.js": "/static/js/2.f916e8469.chunk.js",
"static/js/2.f916e8469.chunk.js.map": "/static/js/2.f916e8469.chunk.js.map",
"static/js/3.732764890.chunk.js": "/static/js/3.732764890.chunk.js",
"static/js/3.732764890.chunk.js.map": "/static/js/3.732764890.chunk.js.map",
"static/js/4.a87895b63.chunk.js": "/static/js/4.a87895b63.chunk.js",
"static/js/4.a87895b63.chunk.js.map": "/static/js/4.a87895b63.chunk.js.map",
"static/js/5.029c574e1.chunk.js": "/static/js/5.029c574e1.chunk.js",
"static/js/5.029c574e1.chunk.js.map": "/static/js/5.029c574e1.chunk.js.map",
"static/js/6.5df64e83c.chunk.js": "/static/js/6.5df64e83c.chunk.js",
"static/js/6.5df64e83c.chunk.js.map": "/static/js/6.5df64e83c.chunk.js.map",
"static/js/7.33c8239f0.chunk.js": "/static/js/7.33c8239f0.chunk.js",
"static/js/7.33c8239f0.chunk.js.map": "/static/js/7.33c8239f0.chunk.js.map",
"static/js/8.ae1ec3a24.chunk.js": "/static/js/8.ae1ec3a24.chunk.js",
"static/js/8.ae1ec3a24.chunk.js.map": "/static/js/8.ae1ec3a24.chunk.js.map",
"static/js/9.2553176dc.chunk.js": "/static/js/9.2553176dc.chunk.js",
"static/js/9.2553176dc.chunk.js.map": "/static/js/9.2553176dc.chunk.js.map",
"css-loader.js": "/static/js/css-loader.64087c7f5.chunk.js",
"css-loader.js.map": "/static/js/css-loader.64087c7f5.chunk.js.map",
"css-modules-loader-core.js": "/static/js/css-modules-loader-core.2b4823c95.chunk.js",
"css-modules-loader-core.js.map": "/static/js/css-modules-loader-core.2b4823c95.chunk.js.map",
"default~sandbox~sandbox-startup.js": "/static/js/default~sandbox~sandbox-startup.19e4d6b87.chunk.js",
"default~sandbox~sandbox-startup.js.map": "/static/js/default~sandbox~sandbox-startup.19e4d6b87.chunk.js.map",
"postcss-compiler.js": "/static/js/postcss-compiler.78d728d62.chunk.js",
"postcss-compiler.js.map": "/static/js/postcss-compiler.78d728d62.chunk.js.map",
"sandbox.js": "/static/js/sandbox.7734067cf.js",
"sandbox.js.map": "/static/js/sandbox.7734067cf.js.map",
"sandbox-startup.js": "/static/js/sandbox-startup.a0ea8d1cb.js",
"sandbox-startup.js.map": "/static/js/sandbox-startup.a0ea8d1cb.js.map",
"vendors~css-modules-loader-core.js": "/static/js/vendors~css-modules-loader-core.05c653935.chunk.js",
"vendors~css-modules-loader-core.js.map": "/static/js/vendors~css-modules-loader-core.05c653935.chunk.js.map",
"vendors~postcss-compiler.js": "/static/js/vendors~postcss-compiler.950b69b0b.chunk.js",
"vendors~postcss-compiler.js.map": "/static/js/vendors~postcss-compiler.950b69b0b.chunk.js.map",
"vendors~postcss-compiler~vue-style-compiler.js": "/static/js/vendors~postcss-compiler~vue-style-compiler.49745dd34.chunk.js",
"vendors~postcss-compiler~vue-style-compiler.js.map": "/static/js/vendors~postcss-compiler~vue-style-compiler.49745dd34.chunk.js.map",
"vendors~react-devtools-backend.js": "/static/js/vendors~react-devtools-backend.ea71e47fe.chunk.js",
"vendors~react-devtools-backend.js.map": "/static/js/vendors~react-devtools-backend.ea71e47fe.chunk.js.map",
"vendors~sandbox.js": "/static/js/vendors~sandbox.ecbcf4e6a.chunk.js",
"vendors~sandbox.js.map": "/static/js/vendors~sandbox.ecbcf4e6a.chunk.js.map",
"vendors~sandbox-startup.js": "/static/js/vendors~sandbox-startup.ca8a95b40.chunk.js",
"vendors~sandbox-startup.js.map": "/static/js/vendors~sandbox-startup.ca8a95b40.chunk.js.map",
"vendors~vue-loader~vue-selector~vue-template-compiler.js": "/static/js/vendors~vue-loader~vue-selector~vue-template-compiler.869041708.chunk.js",
"vendors~vue-loader~vue-selector~vue-template-compiler.js.map": "/static/js/vendors~vue-loader~vue-selector~vue-template-compiler.869041708.chunk.js.map",
"vendors~vue-style-compiler.js": "/static/js/vendors~vue-style-compiler.8f51b5006.chunk.js",
"vendors~vue-style-compiler.js.map": "/static/js/vendors~vue-style-compiler.8f51b5006.chunk.js.map",
"vendors~vue-template-compiler.js": "/static/js/vendors~vue-template-compiler.a8c77cdee.chunk.js",
"vendors~vue-template-compiler.js.map": "/static/js/vendors~vue-template-compiler.a8c77cdee.chunk.js.map",
"vue-loader.js": "/static/js/vue-loader.36a4d8407.chunk.js",
"vue-loader.js.map": "/static/js/vue-loader.36a4d8407.chunk.js.map",
"vue-selector.js": "/static/js/vue-selector.91b0cc6f0.chunk.js",
"vue-selector.js.map": "/static/js/vue-selector.91b0cc6f0.chunk.js.map",
"vue-style-compiler.js": "/static/js/vue-style-compiler.f0f11a7be.chunk.js",
"vue-style-compiler.js.map": "/static/js/vue-style-compiler.f0f11a7be.chunk.js.map",
"vue-template-compiler.js": "/static/js/vue-template-compiler.b8f7afc7a.chunk.js",
"vue-template-compiler.js.map": "/static/js/vue-template-compiler.b8f7afc7a.chunk.js.map",
"0.babel-transpiler.ef09383f.worker.js": "/0.babel-transpiler.ef09383f.worker.js",
"0.babel-transpiler.ef09383f.worker.js.map": "/0.babel-transpiler.ef09383f.worker.js.map",
"0.sass-transpiler.d0a9e805.worker.js": "/0.sass-transpiler.d0a9e805.worker.js",
"0.sass-transpiler.d0a9e805.worker.js.map": "/0.sass-transpiler.d0a9e805.worker.js.map",
"1.babel-transpiler.ef09383f.worker.js": "/1.babel-transpiler.ef09383f.worker.js",
"1.babel-transpiler.ef09383f.worker.js.map": "/1.babel-transpiler.ef09383f.worker.js.map",
"babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js": "/babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js",
"babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js.map": "/babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js.map",
"babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js": "/babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js",
"babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js.map": "/babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js.map",
"babel-transpiler.ef09383f.worker.js": "/babel-transpiler.ef09383f.worker.js",
"babel-transpiler.ef09383f.worker.js.map": "/babel-transpiler.ef09383f.worker.js.map",
"coffee-transpiler.6abe87e8.worker.js": "/coffee-transpiler.6abe87e8.worker.js",
"coffee-transpiler.6abe87e8.worker.js.map": "/coffee-transpiler.6abe87e8.worker.js.map",
"index.html": "/index.html",
"less-transpiler.74a88bd2.worker.js": "/less-transpiler.74a88bd2.worker.js",
"less-transpiler.74a88bd2.worker.js.map": "/less-transpiler.74a88bd2.worker.js.map",
"parcel-html-transpiler.e0273d5a.worker.js": "/parcel-html-transpiler.e0273d5a.worker.js",
"parcel-html-transpiler.e0273d5a.worker.js.map": "/parcel-html-transpiler.e0273d5a.worker.js.map",
"public/sse-hooks/sse-hooks.js": "/public/sse-hooks/sse-hooks.e15ace8ccace5398a721ffec81f121de.js",
"pug-transpiler.41006669.worker.js": "/pug-transpiler.41006669.worker.js",
"pug-transpiler.41006669.worker.js.map": "/pug-transpiler.41006669.worker.js.map",
"sass-transpiler.d0a9e805.worker.js": "/sass-transpiler.d0a9e805.worker.js",
"sass-transpiler.d0a9e805.worker.js.map": "/sass-transpiler.d0a9e805.worker.js.map",
"stylus-transpiler.428164ba.worker.js": "/stylus-transpiler.428164ba.worker.js",
"stylus-transpiler.428164ba.worker.js.map": "/stylus-transpiler.428164ba.worker.js.map",
"svelte-transpiler.9ca0e0b3.worker.js": "/svelte-transpiler.9ca0e0b3.worker.js",
"svelte-transpiler.9ca0e0b3.worker.js.map": "/svelte-transpiler.9ca0e0b3.worker.js.map",
"sw.no-webpack.js": "/sw.80f6d573.worker.js",
"transform-cx-jsx.babel-transpiler.ef09383f.worker.js": "/transform-cx-jsx.babel-transpiler.ef09383f.worker.js",
"transform-cx-jsx.babel-transpiler.ef09383f.worker.js.map": "/transform-cx-jsx.babel-transpiler.ef09383f.worker.js.map",
"typescript-transpiler.1585b49f.worker.js": "/typescript-transpiler.1585b49f.worker.js",
"typescript-transpiler.1585b49f.worker.js.map": "/typescript-transpiler.1585b49f.worker.js.map"
}
\ No newline at end of file
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Sandbox - CodeSandbox</title><link rel="manifest" href="/manifest.json"><link href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>
<style>
svg {
background: transparent;
}
path {
fill: black;
}
@media (prefers-color-scheme: dark) {
path {
fill: white;
}
}
</style>
<path fill-rule='evenodd' clip-rule='evenodd' d='M81.8182 18.1818V81.8182H18.1818V18.1818H81.8182ZM10 90V10H90V90H10Z'/>
</svg>" rel="icon"/><link rel="mask-icon" href="/csb-ios.svg" color="#fff"><script src="/static/browserfs12/browserfs.min.js" type="text/javascript"></script><script>window.process=BrowserFS.BFSRequire("process"),window.Buffer=BrowserFS.BFSRequire("buffer").Buffer</script></head><body><div id="csb-loading-screen"></div><script src="/static/js/vendors~sandbox.ecbcf4e6a.chunk.js" crossorigin="anonymous"></script><script src="/static/js/default~sandbox~sandbox-startup.19e4d6b87.chunk.js" crossorigin="anonymous"></script><script src="/static/js/sandbox.7734067cf.js" crossorigin="anonymous"></script><script src="/static/js/vendors~sandbox-startup.ca8a95b40.chunk.js" crossorigin="anonymous"></script><script src="/static/js/sandbox-startup.a0ea8d1cb.js" crossorigin="anonymous"></script></body></html>
\ No newline at end of file
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s="../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/less/less-worker.ts")}({"../../node_modules/@babel/runtime/helpers/asyncToGenerator.js":function(e,t){function r(e,t,r,n,o,i,s){try{var l=e[i](s),a=l.value}catch(e){return void r(e)}l.done?t(a):Promise.resolve(a).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var s=e.apply(t,n);function l(e){r(s,o,i,l,a,"next",e)}function a(e){r(s,o,i,l,a,"throw",e)}l(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/toPropertyKey.js");e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPrimitive.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/typeof.js").default;e.exports=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPropertyKey.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/typeof.js").default,o=r("../../node_modules/@babel/runtime/helpers/toPrimitive.js");e.exports=function(e){var t=o(e,"string");return"symbol"===n(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/typeof.js":function(e,t){function r(t){return e.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,r(t)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/path-browserify/index.js":function(e,t,r){"use strict";(function(t){function r(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var r,n="",o=0,i=-1,s=0,l=0;l<=e.length;++l){if(l<e.length)r=e.charCodeAt(l);else{if(47===r)break;r=47}if(47===r){if(i===l-1||1===s);else if(i!==l-1&&2===s){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var a=n.lastIndexOf("/");if(a!==n.length-1){-1===a?(n="",o=0):o=(n=n.slice(0,a)).length-1-n.lastIndexOf("/"),i=l,s=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=l,s=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,l):n=e.slice(i+1,l),o=l-i-1;i=l,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var o={resolve:function(){for(var e,o="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var l;s>=0?l=arguments[s]:(void 0===e&&(e=t.cwd()),l=e),r(l),0!==l.length&&(o=l+"/"+o,i=47===l.charCodeAt(0))}return o=n(o,!i),i?o.length>0?"/"+o:"/":o.length>0?o:"."},normalize:function(e){if(r(e),0===e.length)return".";var t=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!t)).length||t||(e="."),e.length>0&&o&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return r(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var n=arguments[t];r(n),n.length>0&&(void 0===e?e=n:e+="/"+n)}return void 0===e?".":o.normalize(e)},relative:function(e,t){if(r(e),r(t),e===t)return"";if((e=o.resolve(e))===(t=o.resolve(t)))return"";for(var n=1;n<e.length&&47===e.charCodeAt(n);++n);for(var i=e.length,s=i-n,l=1;l<t.length&&47===t.charCodeAt(l);++l);for(var a=t.length-l,u=s<a?s:a,c=-1,d=0;d<=u;++d){if(d===u){if(a>u){if(47===t.charCodeAt(l+d))return t.slice(l+d+1);if(0===d)return t.slice(l+d)}else s>u&&(47===e.charCodeAt(n+d)?c=d:0===d&&(c=0));break}var f=e.charCodeAt(n+d);if(f!==t.charCodeAt(l+d))break;47===f&&(c=d)}var h="";for(d=n+c+1;d<=i;++d)d!==i&&47!==e.charCodeAt(d)||(0===h.length?h+="..":h+="/..");return h.length>0?h+t.slice(l+c):(l+=c,47===t.charCodeAt(l)&&++l,t.slice(l))},_makeLong:function(e){return e},dirname:function(e){if(r(e),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,o=-1,i=!0,s=e.length-1;s>=1;--s)if(47===(t=e.charCodeAt(s))){if(!i){o=s;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');r(e);var n,o=0,i=-1,s=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var l=t.length-1,a=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){o=n+1;break}}else-1===a&&(s=!1,a=n+1),l>=0&&(u===t.charCodeAt(l)?-1==--l&&(i=n):(l=-1,i=a))}return o===i?i=a:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){o=n+1;break}}else-1===i&&(s=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){r(e);for(var t=-1,n=0,o=-1,i=!0,s=0,l=e.length-1;l>=0;--l){var a=e.charCodeAt(l);if(47!==a)-1===o&&(i=!1,o=l+1),46===a?-1===t?t=l:1!==s&&(s=1):-1!==t&&(s=-1);else if(!i){n=l+1;break}}return-1===t||-1===o||0===s||1===s&&t===o-1&&t===n+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){r(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var n,o=e.charCodeAt(0),i=47===o;i?(t.root="/",n=1):n=0;for(var s=-1,l=0,a=-1,u=!0,c=e.length-1,d=0;c>=n;--c)if(47!==(o=e.charCodeAt(c)))-1===a&&(u=!1,a=c+1),46===o?-1===s?s=c:1!==d&&(d=1):-1!==s&&(d=-1);else if(!u){l=c+1;break}return-1===s||-1===a||0===d||1===d&&s===a-1&&s===l+1?-1!==a&&(t.base=t.name=0===l&&i?e.slice(1,a):e.slice(l,a)):(0===l&&i?(t.name=e.slice(1,s),t.base=e.slice(1,a)):(t.name=e.slice(l,s),t.base=e.slice(l,a)),t.ext=e.slice(s,a)),l>0?t.dir=e.slice(0,l-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};o.posix=o,e.exports=o}).call(this,r("../../node_modules/process/browser.js"))},"../../node_modules/process/browser.js":function(e,t){var r,n,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(e){n=s}}();var a,u=[],c=!1,d=-1;function f(){c&&a&&(c=!1,a.length?u=a.concat(u):d=-1,u.length&&h())}function h(){if(!c){var e=l(f);c=!0;for(var t=u.length;t;){for(a=u,u=[];++d<t;)a&&a[d].run();d=-1,t=u.length}a=null,c=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new p(e,t)),1!==u.length||c||l(h)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},"../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/less/less-worker.ts":function(e,t,r){"use strict";r.r(t);var n=r("../../node_modules/@babel/runtime/helpers/asyncToGenerator.js"),o=r.n(n),i=r("../../node_modules/@babel/runtime/helpers/defineProperty.js"),s=r.n(i);class l extends Error{}var a=r("../../node_modules/path-browserify/index.js"),u=r.n(a);const c=/^~?([@A-Za-z\-_].*)/;function d(e,t){return f.apply(this,arguments)}function f(){return(f=o()((function*(e,t){const r=t.loaderContextId,n=t.childHandler,o=yield n.callFn({method:"resolve-async-transpiled-module",data:{path:e,options:{ignoredExtensions:[".less",".css"]},loaderContextId:r}});if(!o.found)throw new Error("Module ".concat(e," not found."));return o}))).apply(this,arguments)}var h=function(e){return{install(t,r){function n(){}n.prototype=new t.FileManager,n.prototype.constructor=n,n.prototype.supports=function(e){return!0},n.prototype.loadFile=function(){var t=o()((function*(t,r){r=r||"/";let n=t=t.replace("file://","");"/"!==t[0]&&(n=u.a.join(r,t));let o=e.files[n];if(null==o)try{if("~"===t[0])throw new Error("Skip resolution, it is a node_module");o=(yield d(n,e)).code,e.files[n]=o}catch(e){const n=t.match(c);if(n&&n[1]){for(var i=arguments.length,s=new Array(i>2?i-2:0),l=2;l<i;l++)s[l-2]=arguments[l];return this.loadFile("/node_modules/".concat(n[1]),r,...s)}}return e.addDependency(n),{contents:o,filename:n}}));return function(e,r){return t.apply(this,arguments)}}(),r.addFileManager(new n)}}};const p=new class{constructor(e){s()(this,"name",void 0),s()(this,"functions",new Map),s()(this,"pendingCalls",new Map),s()(this,"callId",0),s()(this,"isReady",!1),s()(this,"initializeFS",void 0),s()(this,"queuedMessages",[]),this.name=e,self.addEventListener("message",e=>{this.handleMessage(e.data).catch(console.error)}),self.postMessage({type:"worker_started",codesandbox:!0})}registerFunction(e,t){this.functions.set(e,t)}registerFSInitializer(e){this.initializeFS=e}handleMessage(e){var t=this;return o()((function*(){if("object"==typeof e&&e.codesandbox)if(t.isReady)switch(e.type){case"ping":t.isReady&&(yield t.emitReady());break;case"request":yield t.handleCallRequest(e);break;case"response":yield t.handleCallResponse(e);break;case"initialize-fs":if(!t.initializeFS)throw new Error("initializeFS is undefined for ".concat(t.name));yield t.initializeFS()}else t.queuedMessages.push(e);else e.browserfsMessage||console.warn("Invalid message from main thread to ".concat(t.name),e)}))()}handleCallResponse(e){const t=this.pendingCalls.get(e.idx);t&&(e.isError?t.reject(function(e){const t=new l(e.message);return t.name=e.name,t.columnNumber=e.columnNumber,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t}(e.data)):t.resolve(e.data))}handleCallRequest(e){var t=this;return o()((function*(){try{const r=t.functions.get(e.method);if(!r)throw new Error("Could not find registered child function for call ".concat(t.name,"#").concat(e.method));const n=yield r(e.data);self.postMessage({type:"response",codesandbox:!0,idx:e.idx,data:n})}catch(t){console.error(t),self.postMessage({type:"response",codesandbox:!0,idx:e.idx,isError:!0,data:(r=t,{name:r.name,message:r.message,fileName:r.fileName,lineNumber:r.lineNumber,columnNumber:r.columnNumber})})}var r}))()}callFn(e){let t=e.method,r=e.data;const n=this.callId++,o={type:"request",codesandbox:!0,idx:n,method:t,data:r};return new Promise((e,i)=>{this.pendingCalls.set(n,{method:t,data:r,resolve:e,reject:i}),self.postMessage(o)})}emitReady(){this.isReady=!0,this.queuedMessages.forEach(e=>{console.warn("Run queued message",e),this.handleMessage(e).catch(console.error)}),self.postMessage({type:"ready",codesandbox:!0})}}("less-worker");function m(){return(m=o()((function*(e){const t=e.code,r=e.path,n=e.files,o=e.loaderContextId,i=[],s={files:n,loaderContextId:o,childHandler:p,addDependency:e=>{i.push({path:e})}},l=t.replace(/^\n$/gm,""),a=less;return{css:(yield a.render(l,{filename:r,plugins:[h(s)]})).css,transpilationDependencies:i}}))).apply(this,arguments)}self.less={env:"development"},self.window=self,self.window.document={currentScript:{async:!0},createElement:()=>({appendChild:()=>{}}),createTextNode:()=>({}),getElementsByTagName:()=>[],head:{appendChild:()=>{},removeChild:()=>{}}},self.importScripts("".concat("","/static/js/less-4.1.2.min.js")),p.registerFunction("compile",(function(e){return m.apply(this,arguments)})),p.emitReady()}});
//# sourceMappingURL=less-transpiler.74a88bd2.worker.js.map
\ No newline at end of file
{
"name": "CodeSandbox",
"short_name": "CodeSandbox",
"icons": [
{
"src": "codesandbox-16.png",
"type": "image/png",
"sizes": "16x16"
},
{
"src": "codesandbox-32.png",
"type": "image/png",
"sizes": "32x32"
},
{
"src": "codesandbox-128.png",
"type": "image/png",
"sizes": "128x128"
},
{
"src": "codesandbox-256.png",
"type": "image/png",
"sizes": "256x256"
},
{
"src": "codesandbox-512.png",
"type": "image/png",
"sizes": "512x512"
},
{
"src": "codesandbox-1024.png",
"type": "image/png",
"sizes": "1024x1024"
},
{
"src": "apple-touch-icon.png",
"type": "image/png",
"sizes": "57x57"
},
{
"src": "apple-touch-icon-152x152.png",
"type": "image/png",
"sizes": "152x152"
},
{
"src": "apple-touch-icon-180x180.png",
"type": "image/png",
"sizes": "180x180"
}
],
"description": "An online editor tailored for web applications",
"start_url": "/dashboard?utm_source=homescreen",
"scope": "/s/",
"display": "standalone",
"background_color": "#1C2022",
"theme_color": "#1C2022"
}
!function(t){var e={};function r(s){if(e[s])return e[s].exports;var i=e[s]={i:s,l:!1,exports:{}};return t[s].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=e,r.d=function(t,e,s){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(s,i,function(e){return t[e]}.bind(null,i));return s},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="/",r(r.s="../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/presets/parcel/transpilers/html-worker.ts")}({"../../node_modules/@babel/runtime/helpers/asyncToGenerator.js":function(t,e){function r(t,e,r,s,i,o,n){try{var a=t[o](n),c=a.value}catch(t){return void r(t)}a.done?e(c):Promise.resolve(c).then(s,i)}t.exports=function(t){return function(){var e=this,s=arguments;return new Promise((function(i,o){var n=t.apply(e,s);function a(t){r(n,i,o,a,c,"next",t)}function c(t){r(n,i,o,a,c,"throw",t)}a(void 0)}))}},t.exports.__esModule=!0,t.exports.default=t.exports},"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(t,e,r){var s=r("../../node_modules/@babel/runtime/helpers/toPropertyKey.js");t.exports=function(t,e,r){return(e=s(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.__esModule=!0,t.exports.default=t.exports},"../../node_modules/@babel/runtime/helpers/toPrimitive.js":function(t,e,r){var s=r("../../node_modules/@babel/runtime/helpers/typeof.js").default;t.exports=function(t,e){if("object"!==s(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!==s(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)},t.exports.__esModule=!0,t.exports.default=t.exports},"../../node_modules/@babel/runtime/helpers/toPropertyKey.js":function(t,e,r){var s=r("../../node_modules/@babel/runtime/helpers/typeof.js").default,i=r("../../node_modules/@babel/runtime/helpers/toPrimitive.js");t.exports=function(t){var e=i(t,"string");return"symbol"===s(e)?e:String(e)},t.exports.__esModule=!0,t.exports.default=t.exports},"../../node_modules/@babel/runtime/helpers/typeof.js":function(t,e){function r(e){return t.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,r(e)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports},"../../node_modules/htmlparser2/lib/Parser.js":function(t,e,r){var s=r("../../node_modules/htmlparser2/lib/Tokenizer.js"),i={input:!0,option:!0,optgroup:!0,select:!0,button:!0,datalist:!0,textarea:!0},o={tr:{tr:!0,th:!0,td:!0},th:{th:!0},td:{thead:!0,th:!0,td:!0},body:{head:!0,link:!0,script:!0},li:{li:!0},p:{p:!0},h1:{p:!0},h2:{p:!0},h3:{p:!0},h4:{p:!0},h5:{p:!0},h6:{p:!0},select:i,input:i,output:i,button:i,datalist:i,textarea:i,option:{option:!0},optgroup:{optgroup:!0}},n={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},a={__proto__:null,math:!0,svg:!0},c={__proto__:null,mi:!0,mo:!0,mn:!0,ms:!0,mtext:!0,"annotation-xml":!0,foreignObject:!0,desc:!0,title:!0},l=/\s|\//;function u(t,e){this._options=e||{},this._cbs=t||{},this._tagname="",this._attribname="",this._attribvalue="",this._attribs=null,this._stack=[],this._foreignContext=[],this.startIndex=0,this.endIndex=null,this._lowerCaseTagNames="lowerCaseTags"in this._options?!!this._options.lowerCaseTags:!this._options.xmlMode,this._lowerCaseAttributeNames="lowerCaseAttributeNames"in this._options?!!this._options.lowerCaseAttributeNames:!this._options.xmlMode,this._options.Tokenizer&&(s=this._options.Tokenizer),this._tokenizer=new s(this._options,this),this._cbs.onparserinit&&this._cbs.onparserinit(this)}r("../../node_modules/inherits/inherits_browser.js")(u,r("../../node_modules/node-libs-browser/node_modules/events/events.js").EventEmitter),u.prototype._updatePosition=function(t){null===this.endIndex?this._tokenizer._sectionStart<=t?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-t:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},u.prototype.ontext=function(t){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(t)},u.prototype.onopentagname=function(t){if(this._lowerCaseTagNames&&(t=t.toLowerCase()),this._tagname=t,!this._options.xmlMode&&t in o)for(var e;(e=this._stack[this._stack.length-1])in o[t];this.onclosetag(e));!this._options.xmlMode&&t in n||(this._stack.push(t),t in a?this._foreignContext.push(!0):t in c&&this._foreignContext.push(!1)),this._cbs.onopentagname&&this._cbs.onopentagname(t),this._cbs.onopentag&&(this._attribs={})},u.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&this._tagname in n&&this._cbs.onclosetag(this._tagname),this._tagname=""},u.prototype.onclosetag=function(t){if(this._updatePosition(1),this._lowerCaseTagNames&&(t=t.toLowerCase()),(t in a||t in c)&&this._foreignContext.pop(),!this._stack.length||t in n&&!this._options.xmlMode)this._options.xmlMode||"br"!==t&&"p"!==t||(this.onopentagname(t),this._closeCurrentTag());else{var e=this._stack.lastIndexOf(t);if(-1!==e)if(this._cbs.onclosetag)for(e=this._stack.length-e;e--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=e;else"p"!==t||this._options.xmlMode||(this.onopentagname(t),this._closeCurrentTag())}},u.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing||this._foreignContext[this._foreignContext.length-1]?this._closeCurrentTag():this.onopentagend()},u.prototype._closeCurrentTag=function(){var t=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===t&&(this._cbs.onclosetag&&this._cbs.onclosetag(t),this._stack.pop())},u.prototype.onattribname=function(t){this._lowerCaseAttributeNames&&(t=t.toLowerCase()),this._attribname=t},u.prototype.onattribdata=function(t){this._attribvalue+=t},u.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},u.prototype._getInstructionName=function(t){var e=t.search(l),r=e<0?t:t.substr(0,e);return this._lowerCaseTagNames&&(r=r.toLowerCase()),r},u.prototype.ondeclaration=function(t){if(this._cbs.onprocessinginstruction){var e=this._getInstructionName(t);this._cbs.onprocessinginstruction("!"+e,"!"+t)}},u.prototype.onprocessinginstruction=function(t){if(this._cbs.onprocessinginstruction){var e=this._getInstructionName(t);this._cbs.onprocessinginstruction("?"+e,"?"+t)}},u.prototype.oncomment=function(t){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(t),this._cbs.oncommentend&&this._cbs.oncommentend()},u.prototype.oncdata=function(t){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(t),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+t+"]]")},u.prototype.onerror=function(t){this._cbs.onerror&&this._cbs.onerror(t)},u.prototype.onend=function(){if(this._cbs.onclosetag)for(var t=this._stack.length;t>0;this._cbs.onclosetag(this._stack[--t]));this._cbs.onend&&this._cbs.onend()},u.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},u.prototype.parseComplete=function(t){this.reset(),this.end(t)},u.prototype.write=function(t){this._tokenizer.write(t)},u.prototype.end=function(t){this._tokenizer.end(t)},u.prototype.pause=function(){this._tokenizer.pause()},u.prototype.resume=function(){this._tokenizer.resume()},u.prototype.parseChunk=u.prototype.write,u.prototype.done=u.prototype.end,t.exports=u},"../../node_modules/htmlparser2/lib/Tokenizer.js":function(t,e,r){t.exports=mt;var s=r("../../node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js"),i=r("../../node_modules/htmlparser2/node_modules/entities/maps/entities.json"),o=r("../../node_modules/htmlparser2/node_modules/entities/maps/legacy.json"),n=r("../../node_modules/htmlparser2/node_modules/entities/maps/xml.json"),a=0,c=a++,l=a++,u=a++,h=a++,p=a++,d=a++,f=a++,_=a++,m=a++,g=a++,b=a++,y=a++,v=a++,x=a++,w=a++,S=a++,q=a++,E=a++,A=a++,k=a++,L=a++,C=a++,T=a++,N=a++,D=a++,j=a++,O=a++,R=a++,B=a++,I=a++,P=a++,U=a++,M=a++,V=a++,z=a++,G=a++,H=a++,F=a++,J=a++,Q=a++,Y=a++,K=a++,Z=a++,W=a++,X=a++,$=a++,tt=a++,et=a++,rt=a++,st=a++,it=a++,ot=a++,nt=a++,at=a++,ct=a++,lt=0,ut=lt++,ht=lt++,pt=lt++;function dt(t){return" "===t||"\n"===t||"\t"===t||"\f"===t||"\r"===t}function ft(t,e,r){var s=t.toLowerCase();return t===s?function(t){t===s?this._state=e:(this._state=r,this._index--)}:function(i){i===s||i===t?this._state=e:(this._state=r,this._index--)}}function _t(t,e){var r=t.toLowerCase();return function(s){s===r||s===t?this._state=e:(this._state=u,this._index--)}}function mt(t,e){this._state=c,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=c,this._special=ut,this._cbs=e,this._running=!0,this._ended=!1,this._xmlMode=!(!t||!t.xmlMode),this._decodeEntities=!(!t||!t.decodeEntities)}mt.prototype._stateText=function(t){"<"===t?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=l,this._sectionStart=this._index):this._decodeEntities&&this._special===ut&&"&"===t&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=c,this._state=it,this._sectionStart=this._index)},mt.prototype._stateBeforeTagName=function(t){"/"===t?this._state=p:"<"===t?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===t||this._special!==ut||dt(t)?this._state=c:"!"===t?(this._state=w,this._sectionStart=this._index+1):"?"===t?(this._state=q,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==t&&"S"!==t?u:P,this._sectionStart=this._index)},mt.prototype._stateInTagName=function(t){("/"===t||">"===t||dt(t))&&(this._emitToken("onopentagname"),this._state=_,this._index--)},mt.prototype._stateBeforeCloseingTagName=function(t){dt(t)||(">"===t?this._state=c:this._special!==ut?"s"===t||"S"===t?this._state=U:(this._state=c,this._index--):(this._state=d,this._sectionStart=this._index))},mt.prototype._stateInCloseingTagName=function(t){(">"===t||dt(t))&&(this._emitToken("onclosetag"),this._state=f,this._index--)},mt.prototype._stateAfterCloseingTagName=function(t){">"===t&&(this._state=c,this._sectionStart=this._index+1)},mt.prototype._stateBeforeAttributeName=function(t){">"===t?(this._cbs.onopentagend(),this._state=c,this._sectionStart=this._index+1):"/"===t?this._state=h:dt(t)||(this._state=m,this._sectionStart=this._index)},mt.prototype._stateInSelfClosingTag=function(t){">"===t?(this._cbs.onselfclosingtag(),this._state=c,this._sectionStart=this._index+1):dt(t)||(this._state=_,this._index--)},mt.prototype._stateInAttributeName=function(t){("="===t||"/"===t||">"===t||dt(t))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=g,this._index--)},mt.prototype._stateAfterAttributeName=function(t){"="===t?this._state=b:"/"===t||">"===t?(this._cbs.onattribend(),this._state=_,this._index--):dt(t)||(this._cbs.onattribend(),this._state=m,this._sectionStart=this._index)},mt.prototype._stateBeforeAttributeValue=function(t){'"'===t?(this._state=y,this._sectionStart=this._index+1):"'"===t?(this._state=v,this._sectionStart=this._index+1):dt(t)||(this._state=x,this._sectionStart=this._index,this._index--)},mt.prototype._stateInAttributeValueDoubleQuotes=function(t){'"'===t?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=_):this._decodeEntities&&"&"===t&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=it,this._sectionStart=this._index)},mt.prototype._stateInAttributeValueSingleQuotes=function(t){"'"===t?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=_):this._decodeEntities&&"&"===t&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=it,this._sectionStart=this._index)},mt.prototype._stateInAttributeValueNoQuotes=function(t){dt(t)||">"===t?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=_,this._index--):this._decodeEntities&&"&"===t&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=it,this._sectionStart=this._index)},mt.prototype._stateBeforeDeclaration=function(t){this._state="["===t?C:"-"===t?E:S},mt.prototype._stateInDeclaration=function(t){">"===t&&(this._cbs.ondeclaration(this._getSection()),this._state=c,this._sectionStart=this._index+1)},mt.prototype._stateInProcessingInstruction=function(t){">"===t&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=c,this._sectionStart=this._index+1)},mt.prototype._stateBeforeComment=function(t){"-"===t?(this._state=A,this._sectionStart=this._index+1):this._state=S},mt.prototype._stateInComment=function(t){"-"===t&&(this._state=k)},mt.prototype._stateAfterComment1=function(t){this._state="-"===t?L:A},mt.prototype._stateAfterComment2=function(t){">"===t?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=c,this._sectionStart=this._index+1):"-"!==t&&(this._state=A)},mt.prototype._stateBeforeCdata1=ft("C",T,S),mt.prototype._stateBeforeCdata2=ft("D",N,S),mt.prototype._stateBeforeCdata3=ft("A",D,S),mt.prototype._stateBeforeCdata4=ft("T",j,S),mt.prototype._stateBeforeCdata5=ft("A",O,S),mt.prototype._stateBeforeCdata6=function(t){"["===t?(this._state=R,this._sectionStart=this._index+1):(this._state=S,this._index--)},mt.prototype._stateInCdata=function(t){"]"===t&&(this._state=B)},mt.prototype._stateAfterCdata1=function(t){this._state="]"===t?I:R},mt.prototype._stateAfterCdata2=function(t){">"===t?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=c,this._sectionStart=this._index+1):"]"!==t&&(this._state=R)},mt.prototype._stateBeforeSpecial=function(t){"c"===t||"C"===t?this._state=M:"t"===t||"T"===t?this._state=Z:(this._state=u,this._index--)},mt.prototype._stateBeforeSpecialEnd=function(t){this._special!==ht||"c"!==t&&"C"!==t?this._special!==pt||"t"!==t&&"T"!==t?this._state=c:this._state=tt:this._state=F},mt.prototype._stateBeforeScript1=_t("R",V),mt.prototype._stateBeforeScript2=_t("I",z),mt.prototype._stateBeforeScript3=_t("P",G),mt.prototype._stateBeforeScript4=_t("T",H),mt.prototype._stateBeforeScript5=function(t){("/"===t||">"===t||dt(t))&&(this._special=ht),this._state=u,this._index--},mt.prototype._stateAfterScript1=ft("R",J,c),mt.prototype._stateAfterScript2=ft("I",Q,c),mt.prototype._stateAfterScript3=ft("P",Y,c),mt.prototype._stateAfterScript4=ft("T",K,c),mt.prototype._stateAfterScript5=function(t){">"===t||dt(t)?(this._special=ut,this._state=d,this._sectionStart=this._index-6,this._index--):this._state=c},mt.prototype._stateBeforeStyle1=_t("Y",W),mt.prototype._stateBeforeStyle2=_t("L",X),mt.prototype._stateBeforeStyle3=_t("E",$),mt.prototype._stateBeforeStyle4=function(t){("/"===t||">"===t||dt(t))&&(this._special=pt),this._state=u,this._index--},mt.prototype._stateAfterStyle1=ft("Y",et,c),mt.prototype._stateAfterStyle2=ft("L",rt,c),mt.prototype._stateAfterStyle3=ft("E",st,c),mt.prototype._stateAfterStyle4=function(t){">"===t||dt(t)?(this._special=ut,this._state=d,this._sectionStart=this._index-5,this._index--):this._state=c},mt.prototype._stateBeforeEntity=ft("#",ot,nt),mt.prototype._stateBeforeNumericEntity=ft("X",ct,at),mt.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+1<this._index){var t=this._buffer.substring(this._sectionStart+1,this._index),e=this._xmlMode?n:i;e.hasOwnProperty(t)&&(this._emitPartial(e[t]),this._sectionStart=this._index+1)}},mt.prototype._parseLegacyEntity=function(){var t=this._sectionStart+1,e=this._index-t;for(e>6&&(e=6);e>=2;){var r=this._buffer.substr(t,e);if(o.hasOwnProperty(r))return this._emitPartial(o[r]),void(this._sectionStart+=e+1);e--}},mt.prototype._stateInNamedEntity=function(t){";"===t?(this._parseNamedEntityStrict(),this._sectionStart+1<this._index&&!this._xmlMode&&this._parseLegacyEntity(),this._state=this._baseState):(t<"a"||t>"z")&&(t<"A"||t>"Z")&&(t<"0"||t>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(this._baseState!==c?"="!==t&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},mt.prototype._decodeNumericEntity=function(t,e){var r=this._sectionStart+t;if(r!==this._index){var i=this._buffer.substring(r,this._index),o=parseInt(i,e);this._emitPartial(s(o)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},mt.prototype._stateInNumericEntity=function(t){";"===t?(this._decodeNumericEntity(2,10),this._sectionStart++):(t<"0"||t>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},mt.prototype._stateInHexEntity=function(t){";"===t?(this._decodeNumericEntity(3,16),this._sectionStart++):(t<"a"||t>"f")&&(t<"A"||t>"F")&&(t<"0"||t>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},mt.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(this._state===c?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},mt.prototype.write=function(t){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=t,this._parse()},mt.prototype._parse=function(){for(;this._index<this._buffer.length&&this._running;){var t=this._buffer.charAt(this._index);this._state===c?this._stateText(t):this._state===l?this._stateBeforeTagName(t):this._state===u?this._stateInTagName(t):this._state===p?this._stateBeforeCloseingTagName(t):this._state===d?this._stateInCloseingTagName(t):this._state===f?this._stateAfterCloseingTagName(t):this._state===h?this._stateInSelfClosingTag(t):this._state===_?this._stateBeforeAttributeName(t):this._state===m?this._stateInAttributeName(t):this._state===g?this._stateAfterAttributeName(t):this._state===b?this._stateBeforeAttributeValue(t):this._state===y?this._stateInAttributeValueDoubleQuotes(t):this._state===v?this._stateInAttributeValueSingleQuotes(t):this._state===x?this._stateInAttributeValueNoQuotes(t):this._state===w?this._stateBeforeDeclaration(t):this._state===S?this._stateInDeclaration(t):this._state===q?this._stateInProcessingInstruction(t):this._state===E?this._stateBeforeComment(t):this._state===A?this._stateInComment(t):this._state===k?this._stateAfterComment1(t):this._state===L?this._stateAfterComment2(t):this._state===C?this._stateBeforeCdata1(t):this._state===T?this._stateBeforeCdata2(t):this._state===N?this._stateBeforeCdata3(t):this._state===D?this._stateBeforeCdata4(t):this._state===j?this._stateBeforeCdata5(t):this._state===O?this._stateBeforeCdata6(t):this._state===R?this._stateInCdata(t):this._state===B?this._stateAfterCdata1(t):this._state===I?this._stateAfterCdata2(t):this._state===P?this._stateBeforeSpecial(t):this._state===U?this._stateBeforeSpecialEnd(t):this._state===M?this._stateBeforeScript1(t):this._state===V?this._stateBeforeScript2(t):this._state===z?this._stateBeforeScript3(t):this._state===G?this._stateBeforeScript4(t):this._state===H?this._stateBeforeScript5(t):this._state===F?this._stateAfterScript1(t):this._state===J?this._stateAfterScript2(t):this._state===Q?this._stateAfterScript3(t):this._state===Y?this._stateAfterScript4(t):this._state===K?this._stateAfterScript5(t):this._state===Z?this._stateBeforeStyle1(t):this._state===W?this._stateBeforeStyle2(t):this._state===X?this._stateBeforeStyle3(t):this._state===$?this._stateBeforeStyle4(t):this._state===tt?this._stateAfterStyle1(t):this._state===et?this._stateAfterStyle2(t):this._state===rt?this._stateAfterStyle3(t):this._state===st?this._stateAfterStyle4(t):this._state===it?this._stateBeforeEntity(t):this._state===ot?this._stateBeforeNumericEntity(t):this._state===nt?this._stateInNamedEntity(t):this._state===at?this._stateInNumericEntity(t):this._state===ct?this._stateInHexEntity(t):this._cbs.onerror(Error("unknown _state"),this._state),this._index++}this._cleanup()},mt.prototype.pause=function(){this._running=!1},mt.prototype.resume=function(){this._running=!0,this._index<this._buffer.length&&this._parse(),this._ended&&this._finish()},mt.prototype.end=function(t){this._ended&&this._cbs.onerror(Error(".end() after done!")),t&&this.write(t),this._ended=!0,this._running&&this._finish()},mt.prototype._finish=function(){this._sectionStart<this._index&&this._handleTrailingData(),this._cbs.onend()},mt.prototype._handleTrailingData=function(){var t=this._buffer.substr(this._sectionStart);this._state===R||this._state===B||this._state===I?this._cbs.oncdata(t):this._state===A||this._state===k||this._state===L?this._cbs.oncomment(t):this._state!==nt||this._xmlMode?this._state!==at||this._xmlMode?this._state!==ct||this._xmlMode?this._state!==u&&this._state!==_&&this._state!==b&&this._state!==g&&this._state!==m&&this._state!==v&&this._state!==y&&this._state!==x&&this._state!==d&&this._cbs.ontext(t):(this._decodeNumericEntity(3,16),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData())):(this._decodeNumericEntity(2,10),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData())):(this._parseLegacyEntity(),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData()))},mt.prototype.reset=function(){mt.call(this,{xmlMode:this._xmlMode,decodeEntities:this._decodeEntities},this._cbs)},mt.prototype.getAbsoluteIndex=function(){return this._bufferOffset+this._index},mt.prototype._getSection=function(){return this._buffer.substring(this._sectionStart,this._index)},mt.prototype._emitToken=function(t){this._cbs[t](this._getSection()),this._sectionStart=-1},mt.prototype._emitPartial=function(t){this._baseState!==c?this._cbs.onattribdata(t):this._cbs.ontext(t)}},"../../node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js":function(t,e,r){var s=r("../../node_modules/htmlparser2/node_modules/entities/maps/decode.json");t.exports=function(t){if(t>=55296&&t<=57343||t>1114111)return"\ufffd";t in s&&(t=s[t]);var e="";t>65535&&(t-=65536,e+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t);return e+=String.fromCharCode(t)}},"../../node_modules/htmlparser2/node_modules/entities/maps/decode.json":function(t){t.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},"../../node_modules/htmlparser2/node_modules/entities/maps/entities.json":function(t){t.exports=JSON.parse('{"Aacute":"\xc1","aacute":"\xe1","Abreve":"\u0102","abreve":"\u0103","ac":"\u223e","acd":"\u223f","acE":"\u223e\u0333","Acirc":"\xc2","acirc":"\xe2","acute":"\xb4","Acy":"\u0410","acy":"\u0430","AElig":"\xc6","aelig":"\xe6","af":"\u2061","Afr":"\ud835\udd04","afr":"\ud835\udd1e","Agrave":"\xc0","agrave":"\xe0","alefsym":"\u2135","aleph":"\u2135","Alpha":"\u0391","alpha":"\u03b1","Amacr":"\u0100","amacr":"\u0101","amalg":"\u2a3f","amp":"&","AMP":"&","andand":"\u2a55","And":"\u2a53","and":"\u2227","andd":"\u2a5c","andslope":"\u2a58","andv":"\u2a5a","ang":"\u2220","ange":"\u29a4","angle":"\u2220","angmsdaa":"\u29a8","angmsdab":"\u29a9","angmsdac":"\u29aa","angmsdad":"\u29ab","angmsdae":"\u29ac","angmsdaf":"\u29ad","angmsdag":"\u29ae","angmsdah":"\u29af","angmsd":"\u2221","angrt":"\u221f","angrtvb":"\u22be","angrtvbd":"\u299d","angsph":"\u2222","angst":"\xc5","angzarr":"\u237c","Aogon":"\u0104","aogon":"\u0105","Aopf":"\ud835\udd38","aopf":"\ud835\udd52","apacir":"\u2a6f","ap":"\u2248","apE":"\u2a70","ape":"\u224a","apid":"\u224b","apos":"\'","ApplyFunction":"\u2061","approx":"\u2248","approxeq":"\u224a","Aring":"\xc5","aring":"\xe5","Ascr":"\ud835\udc9c","ascr":"\ud835\udcb6","Assign":"\u2254","ast":"*","asymp":"\u2248","asympeq":"\u224d","Atilde":"\xc3","atilde":"\xe3","Auml":"\xc4","auml":"\xe4","awconint":"\u2233","awint":"\u2a11","backcong":"\u224c","backepsilon":"\u03f6","backprime":"\u2035","backsim":"\u223d","backsimeq":"\u22cd","Backslash":"\u2216","Barv":"\u2ae7","barvee":"\u22bd","barwed":"\u2305","Barwed":"\u2306","barwedge":"\u2305","bbrk":"\u23b5","bbrktbrk":"\u23b6","bcong":"\u224c","Bcy":"\u0411","bcy":"\u0431","bdquo":"\u201e","becaus":"\u2235","because":"\u2235","Because":"\u2235","bemptyv":"\u29b0","bepsi":"\u03f6","bernou":"\u212c","Bernoullis":"\u212c","Beta":"\u0392","beta":"\u03b2","beth":"\u2136","between":"\u226c","Bfr":"\ud835\udd05","bfr":"\ud835\udd1f","bigcap":"\u22c2","bigcirc":"\u25ef","bigcup":"\u22c3","bigodot":"\u2a00","bigoplus":"\u2a01","bigotimes":"\u2a02","bigsqcup":"\u2a06","bigstar":"\u2605","bigtriangledown":"\u25bd","bigtriangleup":"\u25b3","biguplus":"\u2a04","bigvee":"\u22c1","bigwedge":"\u22c0","bkarow":"\u290d","blacklozenge":"\u29eb","blacksquare":"\u25aa","blacktriangle":"\u25b4","blacktriangledown":"\u25be","blacktriangleleft":"\u25c2","blacktriangleright":"\u25b8","blank":"\u2423","blk12":"\u2592","blk14":"\u2591","blk34":"\u2593","block":"\u2588","bne":"=\u20e5","bnequiv":"\u2261\u20e5","bNot":"\u2aed","bnot":"\u2310","Bopf":"\ud835\udd39","bopf":"\ud835\udd53","bot":"\u22a5","bottom":"\u22a5","bowtie":"\u22c8","boxbox":"\u29c9","boxdl":"\u2510","boxdL":"\u2555","boxDl":"\u2556","boxDL":"\u2557","boxdr":"\u250c","boxdR":"\u2552","boxDr":"\u2553","boxDR":"\u2554","boxh":"\u2500","boxH":"\u2550","boxhd":"\u252c","boxHd":"\u2564","boxhD":"\u2565","boxHD":"\u2566","boxhu":"\u2534","boxHu":"\u2567","boxhU":"\u2568","boxHU":"\u2569","boxminus":"\u229f","boxplus":"\u229e","boxtimes":"\u22a0","boxul":"\u2518","boxuL":"\u255b","boxUl":"\u255c","boxUL":"\u255d","boxur":"\u2514","boxuR":"\u2558","boxUr":"\u2559","boxUR":"\u255a","boxv":"\u2502","boxV":"\u2551","boxvh":"\u253c","boxvH":"\u256a","boxVh":"\u256b","boxVH":"\u256c","boxvl":"\u2524","boxvL":"\u2561","boxVl":"\u2562","boxVL":"\u2563","boxvr":"\u251c","boxvR":"\u255e","boxVr":"\u255f","boxVR":"\u2560","bprime":"\u2035","breve":"\u02d8","Breve":"\u02d8","brvbar":"\xa6","bscr":"\ud835\udcb7","Bscr":"\u212c","bsemi":"\u204f","bsim":"\u223d","bsime":"\u22cd","bsolb":"\u29c5","bsol":"\\\\","bsolhsub":"\u27c8","bull":"\u2022","bullet":"\u2022","bump":"\u224e","bumpE":"\u2aae","bumpe":"\u224f","Bumpeq":"\u224e","bumpeq":"\u224f","Cacute":"\u0106","cacute":"\u0107","capand":"\u2a44","capbrcup":"\u2a49","capcap":"\u2a4b","cap":"\u2229","Cap":"\u22d2","capcup":"\u2a47","capdot":"\u2a40","CapitalDifferentialD":"\u2145","caps":"\u2229\ufe00","caret":"\u2041","caron":"\u02c7","Cayleys":"\u212d","ccaps":"\u2a4d","Ccaron":"\u010c","ccaron":"\u010d","Ccedil":"\xc7","ccedil":"\xe7","Ccirc":"\u0108","ccirc":"\u0109","Cconint":"\u2230","ccups":"\u2a4c","ccupssm":"\u2a50","Cdot":"\u010a","cdot":"\u010b","cedil":"\xb8","Cedilla":"\xb8","cemptyv":"\u29b2","cent":"\xa2","centerdot":"\xb7","CenterDot":"\xb7","cfr":"\ud835\udd20","Cfr":"\u212d","CHcy":"\u0427","chcy":"\u0447","check":"\u2713","checkmark":"\u2713","Chi":"\u03a7","chi":"\u03c7","circ":"\u02c6","circeq":"\u2257","circlearrowleft":"\u21ba","circlearrowright":"\u21bb","circledast":"\u229b","circledcirc":"\u229a","circleddash":"\u229d","CircleDot":"\u2299","circledR":"\xae","circledS":"\u24c8","CircleMinus":"\u2296","CirclePlus":"\u2295","CircleTimes":"\u2297","cir":"\u25cb","cirE":"\u29c3","cire":"\u2257","cirfnint":"\u2a10","cirmid":"\u2aef","cirscir":"\u29c2","ClockwiseContourIntegral":"\u2232","CloseCurlyDoubleQuote":"\u201d","CloseCurlyQuote":"\u2019","clubs":"\u2663","clubsuit":"\u2663","colon":":","Colon":"\u2237","Colone":"\u2a74","colone":"\u2254","coloneq":"\u2254","comma":",","commat":"@","comp":"\u2201","compfn":"\u2218","complement":"\u2201","complexes":"\u2102","cong":"\u2245","congdot":"\u2a6d","Congruent":"\u2261","conint":"\u222e","Conint":"\u222f","ContourIntegral":"\u222e","copf":"\ud835\udd54","Copf":"\u2102","coprod":"\u2210","Coproduct":"\u2210","copy":"\xa9","COPY":"\xa9","copysr":"\u2117","CounterClockwiseContourIntegral":"\u2233","crarr":"\u21b5","cross":"\u2717","Cross":"\u2a2f","Cscr":"\ud835\udc9e","cscr":"\ud835\udcb8","csub":"\u2acf","csube":"\u2ad1","csup":"\u2ad0","csupe":"\u2ad2","ctdot":"\u22ef","cudarrl":"\u2938","cudarrr":"\u2935","cuepr":"\u22de","cuesc":"\u22df","cularr":"\u21b6","cularrp":"\u293d","cupbrcap":"\u2a48","cupcap":"\u2a46","CupCap":"\u224d","cup":"\u222a","Cup":"\u22d3","cupcup":"\u2a4a","cupdot":"\u228d","cupor":"\u2a45","cups":"\u222a\ufe00","curarr":"\u21b7","curarrm":"\u293c","curlyeqprec":"\u22de","curlyeqsucc":"\u22df","curlyvee":"\u22ce","curlywedge":"\u22cf","curren":"\xa4","curvearrowleft":"\u21b6","curvearrowright":"\u21b7","cuvee":"\u22ce","cuwed":"\u22cf","cwconint":"\u2232","cwint":"\u2231","cylcty":"\u232d","dagger":"\u2020","Dagger":"\u2021","daleth":"\u2138","darr":"\u2193","Darr":"\u21a1","dArr":"\u21d3","dash":"\u2010","Dashv":"\u2ae4","dashv":"\u22a3","dbkarow":"\u290f","dblac":"\u02dd","Dcaron":"\u010e","dcaron":"\u010f","Dcy":"\u0414","dcy":"\u0434","ddagger":"\u2021","ddarr":"\u21ca","DD":"\u2145","dd":"\u2146","DDotrahd":"\u2911","ddotseq":"\u2a77","deg":"\xb0","Del":"\u2207","Delta":"\u0394","delta":"\u03b4","demptyv":"\u29b1","dfisht":"\u297f","Dfr":"\ud835\udd07","dfr":"\ud835\udd21","dHar":"\u2965","dharl":"\u21c3","dharr":"\u21c2","DiacriticalAcute":"\xb4","DiacriticalDot":"\u02d9","DiacriticalDoubleAcute":"\u02dd","DiacriticalGrave":"`","DiacriticalTilde":"\u02dc","diam":"\u22c4","diamond":"\u22c4","Diamond":"\u22c4","diamondsuit":"\u2666","diams":"\u2666","die":"\xa8","DifferentialD":"\u2146","digamma":"\u03dd","disin":"\u22f2","div":"\xf7","divide":"\xf7","divideontimes":"\u22c7","divonx":"\u22c7","DJcy":"\u0402","djcy":"\u0452","dlcorn":"\u231e","dlcrop":"\u230d","dollar":"$","Dopf":"\ud835\udd3b","dopf":"\ud835\udd55","Dot":"\xa8","dot":"\u02d9","DotDot":"\u20dc","doteq":"\u2250","doteqdot":"\u2251","DotEqual":"\u2250","dotminus":"\u2238","dotplus":"\u2214","dotsquare":"\u22a1","doublebarwedge":"\u2306","DoubleContourIntegral":"\u222f","DoubleDot":"\xa8","DoubleDownArrow":"\u21d3","DoubleLeftArrow":"\u21d0","DoubleLeftRightArrow":"\u21d4","DoubleLeftTee":"\u2ae4","DoubleLongLeftArrow":"\u27f8","DoubleLongLeftRightArrow":"\u27fa","DoubleLongRightArrow":"\u27f9","DoubleRightArrow":"\u21d2","DoubleRightTee":"\u22a8","DoubleUpArrow":"\u21d1","DoubleUpDownArrow":"\u21d5","DoubleVerticalBar":"\u2225","DownArrowBar":"\u2913","downarrow":"\u2193","DownArrow":"\u2193","Downarrow":"\u21d3","DownArrowUpArrow":"\u21f5","DownBreve":"\u0311","downdownarrows":"\u21ca","downharpoonleft":"\u21c3","downharpoonright":"\u21c2","DownLeftRightVector":"\u2950","DownLeftTeeVector":"\u295e","DownLeftVectorBar":"\u2956","DownLeftVector":"\u21bd","DownRightTeeVector":"\u295f","DownRightVectorBar":"\u2957","DownRightVector":"\u21c1","DownTeeArrow":"\u21a7","DownTee":"\u22a4","drbkarow":"\u2910","drcorn":"\u231f","drcrop":"\u230c","Dscr":"\ud835\udc9f","dscr":"\ud835\udcb9","DScy":"\u0405","dscy":"\u0455","dsol":"\u29f6","Dstrok":"\u0110","dstrok":"\u0111","dtdot":"\u22f1","dtri":"\u25bf","dtrif":"\u25be","duarr":"\u21f5","duhar":"\u296f","dwangle":"\u29a6","DZcy":"\u040f","dzcy":"\u045f","dzigrarr":"\u27ff","Eacute":"\xc9","eacute":"\xe9","easter":"\u2a6e","Ecaron":"\u011a","ecaron":"\u011b","Ecirc":"\xca","ecirc":"\xea","ecir":"\u2256","ecolon":"\u2255","Ecy":"\u042d","ecy":"\u044d","eDDot":"\u2a77","Edot":"\u0116","edot":"\u0117","eDot":"\u2251","ee":"\u2147","efDot":"\u2252","Efr":"\ud835\udd08","efr":"\ud835\udd22","eg":"\u2a9a","Egrave":"\xc8","egrave":"\xe8","egs":"\u2a96","egsdot":"\u2a98","el":"\u2a99","Element":"\u2208","elinters":"\u23e7","ell":"\u2113","els":"\u2a95","elsdot":"\u2a97","Emacr":"\u0112","emacr":"\u0113","empty":"\u2205","emptyset":"\u2205","EmptySmallSquare":"\u25fb","emptyv":"\u2205","EmptyVerySmallSquare":"\u25ab","emsp13":"\u2004","emsp14":"\u2005","emsp":"\u2003","ENG":"\u014a","eng":"\u014b","ensp":"\u2002","Eogon":"\u0118","eogon":"\u0119","Eopf":"\ud835\udd3c","eopf":"\ud835\udd56","epar":"\u22d5","eparsl":"\u29e3","eplus":"\u2a71","epsi":"\u03b5","Epsilon":"\u0395","epsilon":"\u03b5","epsiv":"\u03f5","eqcirc":"\u2256","eqcolon":"\u2255","eqsim":"\u2242","eqslantgtr":"\u2a96","eqslantless":"\u2a95","Equal":"\u2a75","equals":"=","EqualTilde":"\u2242","equest":"\u225f","Equilibrium":"\u21cc","equiv":"\u2261","equivDD":"\u2a78","eqvparsl":"\u29e5","erarr":"\u2971","erDot":"\u2253","escr":"\u212f","Escr":"\u2130","esdot":"\u2250","Esim":"\u2a73","esim":"\u2242","Eta":"\u0397","eta":"\u03b7","ETH":"\xd0","eth":"\xf0","Euml":"\xcb","euml":"\xeb","euro":"\u20ac","excl":"!","exist":"\u2203","Exists":"\u2203","expectation":"\u2130","exponentiale":"\u2147","ExponentialE":"\u2147","fallingdotseq":"\u2252","Fcy":"\u0424","fcy":"\u0444","female":"\u2640","ffilig":"\ufb03","fflig":"\ufb00","ffllig":"\ufb04","Ffr":"\ud835\udd09","ffr":"\ud835\udd23","filig":"\ufb01","FilledSmallSquare":"\u25fc","FilledVerySmallSquare":"\u25aa","fjlig":"fj","flat":"\u266d","fllig":"\ufb02","fltns":"\u25b1","fnof":"\u0192","Fopf":"\ud835\udd3d","fopf":"\ud835\udd57","forall":"\u2200","ForAll":"\u2200","fork":"\u22d4","forkv":"\u2ad9","Fouriertrf":"\u2131","fpartint":"\u2a0d","frac12":"\xbd","frac13":"\u2153","frac14":"\xbc","frac15":"\u2155","frac16":"\u2159","frac18":"\u215b","frac23":"\u2154","frac25":"\u2156","frac34":"\xbe","frac35":"\u2157","frac38":"\u215c","frac45":"\u2158","frac56":"\u215a","frac58":"\u215d","frac78":"\u215e","frasl":"\u2044","frown":"\u2322","fscr":"\ud835\udcbb","Fscr":"\u2131","gacute":"\u01f5","Gamma":"\u0393","gamma":"\u03b3","Gammad":"\u03dc","gammad":"\u03dd","gap":"\u2a86","Gbreve":"\u011e","gbreve":"\u011f","Gcedil":"\u0122","Gcirc":"\u011c","gcirc":"\u011d","Gcy":"\u0413","gcy":"\u0433","Gdot":"\u0120","gdot":"\u0121","ge":"\u2265","gE":"\u2267","gEl":"\u2a8c","gel":"\u22db","geq":"\u2265","geqq":"\u2267","geqslant":"\u2a7e","gescc":"\u2aa9","ges":"\u2a7e","gesdot":"\u2a80","gesdoto":"\u2a82","gesdotol":"\u2a84","gesl":"\u22db\ufe00","gesles":"\u2a94","Gfr":"\ud835\udd0a","gfr":"\ud835\udd24","gg":"\u226b","Gg":"\u22d9","ggg":"\u22d9","gimel":"\u2137","GJcy":"\u0403","gjcy":"\u0453","gla":"\u2aa5","gl":"\u2277","glE":"\u2a92","glj":"\u2aa4","gnap":"\u2a8a","gnapprox":"\u2a8a","gne":"\u2a88","gnE":"\u2269","gneq":"\u2a88","gneqq":"\u2269","gnsim":"\u22e7","Gopf":"\ud835\udd3e","gopf":"\ud835\udd58","grave":"`","GreaterEqual":"\u2265","GreaterEqualLess":"\u22db","GreaterFullEqual":"\u2267","GreaterGreater":"\u2aa2","GreaterLess":"\u2277","GreaterSlantEqual":"\u2a7e","GreaterTilde":"\u2273","Gscr":"\ud835\udca2","gscr":"\u210a","gsim":"\u2273","gsime":"\u2a8e","gsiml":"\u2a90","gtcc":"\u2aa7","gtcir":"\u2a7a","gt":">","GT":">","Gt":"\u226b","gtdot":"\u22d7","gtlPar":"\u2995","gtquest":"\u2a7c","gtrapprox":"\u2a86","gtrarr":"\u2978","gtrdot":"\u22d7","gtreqless":"\u22db","gtreqqless":"\u2a8c","gtrless":"\u2277","gtrsim":"\u2273","gvertneqq":"\u2269\ufe00","gvnE":"\u2269\ufe00","Hacek":"\u02c7","hairsp":"\u200a","half":"\xbd","hamilt":"\u210b","HARDcy":"\u042a","hardcy":"\u044a","harrcir":"\u2948","harr":"\u2194","hArr":"\u21d4","harrw":"\u21ad","Hat":"^","hbar":"\u210f","Hcirc":"\u0124","hcirc":"\u0125","hearts":"\u2665","heartsuit":"\u2665","hellip":"\u2026","hercon":"\u22b9","hfr":"\ud835\udd25","Hfr":"\u210c","HilbertSpace":"\u210b","hksearow":"\u2925","hkswarow":"\u2926","hoarr":"\u21ff","homtht":"\u223b","hookleftarrow":"\u21a9","hookrightarrow":"\u21aa","hopf":"\ud835\udd59","Hopf":"\u210d","horbar":"\u2015","HorizontalLine":"\u2500","hscr":"\ud835\udcbd","Hscr":"\u210b","hslash":"\u210f","Hstrok":"\u0126","hstrok":"\u0127","HumpDownHump":"\u224e","HumpEqual":"\u224f","hybull":"\u2043","hyphen":"\u2010","Iacute":"\xcd","iacute":"\xed","ic":"\u2063","Icirc":"\xce","icirc":"\xee","Icy":"\u0418","icy":"\u0438","Idot":"\u0130","IEcy":"\u0415","iecy":"\u0435","iexcl":"\xa1","iff":"\u21d4","ifr":"\ud835\udd26","Ifr":"\u2111","Igrave":"\xcc","igrave":"\xec","ii":"\u2148","iiiint":"\u2a0c","iiint":"\u222d","iinfin":"\u29dc","iiota":"\u2129","IJlig":"\u0132","ijlig":"\u0133","Imacr":"\u012a","imacr":"\u012b","image":"\u2111","ImaginaryI":"\u2148","imagline":"\u2110","imagpart":"\u2111","imath":"\u0131","Im":"\u2111","imof":"\u22b7","imped":"\u01b5","Implies":"\u21d2","incare":"\u2105","in":"\u2208","infin":"\u221e","infintie":"\u29dd","inodot":"\u0131","intcal":"\u22ba","int":"\u222b","Int":"\u222c","integers":"\u2124","Integral":"\u222b","intercal":"\u22ba","Intersection":"\u22c2","intlarhk":"\u2a17","intprod":"\u2a3c","InvisibleComma":"\u2063","InvisibleTimes":"\u2062","IOcy":"\u0401","iocy":"\u0451","Iogon":"\u012e","iogon":"\u012f","Iopf":"\ud835\udd40","iopf":"\ud835\udd5a","Iota":"\u0399","iota":"\u03b9","iprod":"\u2a3c","iquest":"\xbf","iscr":"\ud835\udcbe","Iscr":"\u2110","isin":"\u2208","isindot":"\u22f5","isinE":"\u22f9","isins":"\u22f4","isinsv":"\u22f3","isinv":"\u2208","it":"\u2062","Itilde":"\u0128","itilde":"\u0129","Iukcy":"\u0406","iukcy":"\u0456","Iuml":"\xcf","iuml":"\xef","Jcirc":"\u0134","jcirc":"\u0135","Jcy":"\u0419","jcy":"\u0439","Jfr":"\ud835\udd0d","jfr":"\ud835\udd27","jmath":"\u0237","Jopf":"\ud835\udd41","jopf":"\ud835\udd5b","Jscr":"\ud835\udca5","jscr":"\ud835\udcbf","Jsercy":"\u0408","jsercy":"\u0458","Jukcy":"\u0404","jukcy":"\u0454","Kappa":"\u039a","kappa":"\u03ba","kappav":"\u03f0","Kcedil":"\u0136","kcedil":"\u0137","Kcy":"\u041a","kcy":"\u043a","Kfr":"\ud835\udd0e","kfr":"\ud835\udd28","kgreen":"\u0138","KHcy":"\u0425","khcy":"\u0445","KJcy":"\u040c","kjcy":"\u045c","Kopf":"\ud835\udd42","kopf":"\ud835\udd5c","Kscr":"\ud835\udca6","kscr":"\ud835\udcc0","lAarr":"\u21da","Lacute":"\u0139","lacute":"\u013a","laemptyv":"\u29b4","lagran":"\u2112","Lambda":"\u039b","lambda":"\u03bb","lang":"\u27e8","Lang":"\u27ea","langd":"\u2991","langle":"\u27e8","lap":"\u2a85","Laplacetrf":"\u2112","laquo":"\xab","larrb":"\u21e4","larrbfs":"\u291f","larr":"\u2190","Larr":"\u219e","lArr":"\u21d0","larrfs":"\u291d","larrhk":"\u21a9","larrlp":"\u21ab","larrpl":"\u2939","larrsim":"\u2973","larrtl":"\u21a2","latail":"\u2919","lAtail":"\u291b","lat":"\u2aab","late":"\u2aad","lates":"\u2aad\ufe00","lbarr":"\u290c","lBarr":"\u290e","lbbrk":"\u2772","lbrace":"{","lbrack":"[","lbrke":"\u298b","lbrksld":"\u298f","lbrkslu":"\u298d","Lcaron":"\u013d","lcaron":"\u013e","Lcedil":"\u013b","lcedil":"\u013c","lceil":"\u2308","lcub":"{","Lcy":"\u041b","lcy":"\u043b","ldca":"\u2936","ldquo":"\u201c","ldquor":"\u201e","ldrdhar":"\u2967","ldrushar":"\u294b","ldsh":"\u21b2","le":"\u2264","lE":"\u2266","LeftAngleBracket":"\u27e8","LeftArrowBar":"\u21e4","leftarrow":"\u2190","LeftArrow":"\u2190","Leftarrow":"\u21d0","LeftArrowRightArrow":"\u21c6","leftarrowtail":"\u21a2","LeftCeiling":"\u2308","LeftDoubleBracket":"\u27e6","LeftDownTeeVector":"\u2961","LeftDownVectorBar":"\u2959","LeftDownVector":"\u21c3","LeftFloor":"\u230a","leftharpoondown":"\u21bd","leftharpoonup":"\u21bc","leftleftarrows":"\u21c7","leftrightarrow":"\u2194","LeftRightArrow":"\u2194","Leftrightarrow":"\u21d4","leftrightarrows":"\u21c6","leftrightharpoons":"\u21cb","leftrightsquigarrow":"\u21ad","LeftRightVector":"\u294e","LeftTeeArrow":"\u21a4","LeftTee":"\u22a3","LeftTeeVector":"\u295a","leftthreetimes":"\u22cb","LeftTriangleBar":"\u29cf","LeftTriangle":"\u22b2","LeftTriangleEqual":"\u22b4","LeftUpDownVector":"\u2951","LeftUpTeeVector":"\u2960","LeftUpVectorBar":"\u2958","LeftUpVector":"\u21bf","LeftVectorBar":"\u2952","LeftVector":"\u21bc","lEg":"\u2a8b","leg":"\u22da","leq":"\u2264","leqq":"\u2266","leqslant":"\u2a7d","lescc":"\u2aa8","les":"\u2a7d","lesdot":"\u2a7f","lesdoto":"\u2a81","lesdotor":"\u2a83","lesg":"\u22da\ufe00","lesges":"\u2a93","lessapprox":"\u2a85","lessdot":"\u22d6","lesseqgtr":"\u22da","lesseqqgtr":"\u2a8b","LessEqualGreater":"\u22da","LessFullEqual":"\u2266","LessGreater":"\u2276","lessgtr":"\u2276","LessLess":"\u2aa1","lesssim":"\u2272","LessSlantEqual":"\u2a7d","LessTilde":"\u2272","lfisht":"\u297c","lfloor":"\u230a","Lfr":"\ud835\udd0f","lfr":"\ud835\udd29","lg":"\u2276","lgE":"\u2a91","lHar":"\u2962","lhard":"\u21bd","lharu":"\u21bc","lharul":"\u296a","lhblk":"\u2584","LJcy":"\u0409","ljcy":"\u0459","llarr":"\u21c7","ll":"\u226a","Ll":"\u22d8","llcorner":"\u231e","Lleftarrow":"\u21da","llhard":"\u296b","lltri":"\u25fa","Lmidot":"\u013f","lmidot":"\u0140","lmoustache":"\u23b0","lmoust":"\u23b0","lnap":"\u2a89","lnapprox":"\u2a89","lne":"\u2a87","lnE":"\u2268","lneq":"\u2a87","lneqq":"\u2268","lnsim":"\u22e6","loang":"\u27ec","loarr":"\u21fd","lobrk":"\u27e6","longleftarrow":"\u27f5","LongLeftArrow":"\u27f5","Longleftarrow":"\u27f8","longleftrightarrow":"\u27f7","LongLeftRightArrow":"\u27f7","Longleftrightarrow":"\u27fa","longmapsto":"\u27fc","longrightarrow":"\u27f6","LongRightArrow":"\u27f6","Longrightarrow":"\u27f9","looparrowleft":"\u21ab","looparrowright":"\u21ac","lopar":"\u2985","Lopf":"\ud835\udd43","lopf":"\ud835\udd5d","loplus":"\u2a2d","lotimes":"\u2a34","lowast":"\u2217","lowbar":"_","LowerLeftArrow":"\u2199","LowerRightArrow":"\u2198","loz":"\u25ca","lozenge":"\u25ca","lozf":"\u29eb","lpar":"(","lparlt":"\u2993","lrarr":"\u21c6","lrcorner":"\u231f","lrhar":"\u21cb","lrhard":"\u296d","lrm":"\u200e","lrtri":"\u22bf","lsaquo":"\u2039","lscr":"\ud835\udcc1","Lscr":"\u2112","lsh":"\u21b0","Lsh":"\u21b0","lsim":"\u2272","lsime":"\u2a8d","lsimg":"\u2a8f","lsqb":"[","lsquo":"\u2018","lsquor":"\u201a","Lstrok":"\u0141","lstrok":"\u0142","ltcc":"\u2aa6","ltcir":"\u2a79","lt":"<","LT":"<","Lt":"\u226a","ltdot":"\u22d6","lthree":"\u22cb","ltimes":"\u22c9","ltlarr":"\u2976","ltquest":"\u2a7b","ltri":"\u25c3","ltrie":"\u22b4","ltrif":"\u25c2","ltrPar":"\u2996","lurdshar":"\u294a","luruhar":"\u2966","lvertneqq":"\u2268\ufe00","lvnE":"\u2268\ufe00","macr":"\xaf","male":"\u2642","malt":"\u2720","maltese":"\u2720","Map":"\u2905","map":"\u21a6","mapsto":"\u21a6","mapstodown":"\u21a7","mapstoleft":"\u21a4","mapstoup":"\u21a5","marker":"\u25ae","mcomma":"\u2a29","Mcy":"\u041c","mcy":"\u043c","mdash":"\u2014","mDDot":"\u223a","measuredangle":"\u2221","MediumSpace":"\u205f","Mellintrf":"\u2133","Mfr":"\ud835\udd10","mfr":"\ud835\udd2a","mho":"\u2127","micro":"\xb5","midast":"*","midcir":"\u2af0","mid":"\u2223","middot":"\xb7","minusb":"\u229f","minus":"\u2212","minusd":"\u2238","minusdu":"\u2a2a","MinusPlus":"\u2213","mlcp":"\u2adb","mldr":"\u2026","mnplus":"\u2213","models":"\u22a7","Mopf":"\ud835\udd44","mopf":"\ud835\udd5e","mp":"\u2213","mscr":"\ud835\udcc2","Mscr":"\u2133","mstpos":"\u223e","Mu":"\u039c","mu":"\u03bc","multimap":"\u22b8","mumap":"\u22b8","nabla":"\u2207","Nacute":"\u0143","nacute":"\u0144","nang":"\u2220\u20d2","nap":"\u2249","napE":"\u2a70\u0338","napid":"\u224b\u0338","napos":"\u0149","napprox":"\u2249","natural":"\u266e","naturals":"\u2115","natur":"\u266e","nbsp":"\xa0","nbump":"\u224e\u0338","nbumpe":"\u224f\u0338","ncap":"\u2a43","Ncaron":"\u0147","ncaron":"\u0148","Ncedil":"\u0145","ncedil":"\u0146","ncong":"\u2247","ncongdot":"\u2a6d\u0338","ncup":"\u2a42","Ncy":"\u041d","ncy":"\u043d","ndash":"\u2013","nearhk":"\u2924","nearr":"\u2197","neArr":"\u21d7","nearrow":"\u2197","ne":"\u2260","nedot":"\u2250\u0338","NegativeMediumSpace":"\u200b","NegativeThickSpace":"\u200b","NegativeThinSpace":"\u200b","NegativeVeryThinSpace":"\u200b","nequiv":"\u2262","nesear":"\u2928","nesim":"\u2242\u0338","NestedGreaterGreater":"\u226b","NestedLessLess":"\u226a","NewLine":"\\n","nexist":"\u2204","nexists":"\u2204","Nfr":"\ud835\udd11","nfr":"\ud835\udd2b","ngE":"\u2267\u0338","nge":"\u2271","ngeq":"\u2271","ngeqq":"\u2267\u0338","ngeqslant":"\u2a7e\u0338","nges":"\u2a7e\u0338","nGg":"\u22d9\u0338","ngsim":"\u2275","nGt":"\u226b\u20d2","ngt":"\u226f","ngtr":"\u226f","nGtv":"\u226b\u0338","nharr":"\u21ae","nhArr":"\u21ce","nhpar":"\u2af2","ni":"\u220b","nis":"\u22fc","nisd":"\u22fa","niv":"\u220b","NJcy":"\u040a","njcy":"\u045a","nlarr":"\u219a","nlArr":"\u21cd","nldr":"\u2025","nlE":"\u2266\u0338","nle":"\u2270","nleftarrow":"\u219a","nLeftarrow":"\u21cd","nleftrightarrow":"\u21ae","nLeftrightarrow":"\u21ce","nleq":"\u2270","nleqq":"\u2266\u0338","nleqslant":"\u2a7d\u0338","nles":"\u2a7d\u0338","nless":"\u226e","nLl":"\u22d8\u0338","nlsim":"\u2274","nLt":"\u226a\u20d2","nlt":"\u226e","nltri":"\u22ea","nltrie":"\u22ec","nLtv":"\u226a\u0338","nmid":"\u2224","NoBreak":"\u2060","NonBreakingSpace":"\xa0","nopf":"\ud835\udd5f","Nopf":"\u2115","Not":"\u2aec","not":"\xac","NotCongruent":"\u2262","NotCupCap":"\u226d","NotDoubleVerticalBar":"\u2226","NotElement":"\u2209","NotEqual":"\u2260","NotEqualTilde":"\u2242\u0338","NotExists":"\u2204","NotGreater":"\u226f","NotGreaterEqual":"\u2271","NotGreaterFullEqual":"\u2267\u0338","NotGreaterGreater":"\u226b\u0338","NotGreaterLess":"\u2279","NotGreaterSlantEqual":"\u2a7e\u0338","NotGreaterTilde":"\u2275","NotHumpDownHump":"\u224e\u0338","NotHumpEqual":"\u224f\u0338","notin":"\u2209","notindot":"\u22f5\u0338","notinE":"\u22f9\u0338","notinva":"\u2209","notinvb":"\u22f7","notinvc":"\u22f6","NotLeftTriangleBar":"\u29cf\u0338","NotLeftTriangle":"\u22ea","NotLeftTriangleEqual":"\u22ec","NotLess":"\u226e","NotLessEqual":"\u2270","NotLessGreater":"\u2278","NotLessLess":"\u226a\u0338","NotLessSlantEqual":"\u2a7d\u0338","NotLessTilde":"\u2274","NotNestedGreaterGreater":"\u2aa2\u0338","NotNestedLessLess":"\u2aa1\u0338","notni":"\u220c","notniva":"\u220c","notnivb":"\u22fe","notnivc":"\u22fd","NotPrecedes":"\u2280","NotPrecedesEqual":"\u2aaf\u0338","NotPrecedesSlantEqual":"\u22e0","NotReverseElement":"\u220c","NotRightTriangleBar":"\u29d0\u0338","NotRightTriangle":"\u22eb","NotRightTriangleEqual":"\u22ed","NotSquareSubset":"\u228f\u0338","NotSquareSubsetEqual":"\u22e2","NotSquareSuperset":"\u2290\u0338","NotSquareSupersetEqual":"\u22e3","NotSubset":"\u2282\u20d2","NotSubsetEqual":"\u2288","NotSucceeds":"\u2281","NotSucceedsEqual":"\u2ab0\u0338","NotSucceedsSlantEqual":"\u22e1","NotSucceedsTilde":"\u227f\u0338","NotSuperset":"\u2283\u20d2","NotSupersetEqual":"\u2289","NotTilde":"\u2241","NotTildeEqual":"\u2244","NotTildeFullEqual":"\u2247","NotTildeTilde":"\u2249","NotVerticalBar":"\u2224","nparallel":"\u2226","npar":"\u2226","nparsl":"\u2afd\u20e5","npart":"\u2202\u0338","npolint":"\u2a14","npr":"\u2280","nprcue":"\u22e0","nprec":"\u2280","npreceq":"\u2aaf\u0338","npre":"\u2aaf\u0338","nrarrc":"\u2933\u0338","nrarr":"\u219b","nrArr":"\u21cf","nrarrw":"\u219d\u0338","nrightarrow":"\u219b","nRightarrow":"\u21cf","nrtri":"\u22eb","nrtrie":"\u22ed","nsc":"\u2281","nsccue":"\u22e1","nsce":"\u2ab0\u0338","Nscr":"\ud835\udca9","nscr":"\ud835\udcc3","nshortmid":"\u2224","nshortparallel":"\u2226","nsim":"\u2241","nsime":"\u2244","nsimeq":"\u2244","nsmid":"\u2224","nspar":"\u2226","nsqsube":"\u22e2","nsqsupe":"\u22e3","nsub":"\u2284","nsubE":"\u2ac5\u0338","nsube":"\u2288","nsubset":"\u2282\u20d2","nsubseteq":"\u2288","nsubseteqq":"\u2ac5\u0338","nsucc":"\u2281","nsucceq":"\u2ab0\u0338","nsup":"\u2285","nsupE":"\u2ac6\u0338","nsupe":"\u2289","nsupset":"\u2283\u20d2","nsupseteq":"\u2289","nsupseteqq":"\u2ac6\u0338","ntgl":"\u2279","Ntilde":"\xd1","ntilde":"\xf1","ntlg":"\u2278","ntriangleleft":"\u22ea","ntrianglelefteq":"\u22ec","ntriangleright":"\u22eb","ntrianglerighteq":"\u22ed","Nu":"\u039d","nu":"\u03bd","num":"#","numero":"\u2116","numsp":"\u2007","nvap":"\u224d\u20d2","nvdash":"\u22ac","nvDash":"\u22ad","nVdash":"\u22ae","nVDash":"\u22af","nvge":"\u2265\u20d2","nvgt":">\u20d2","nvHarr":"\u2904","nvinfin":"\u29de","nvlArr":"\u2902","nvle":"\u2264\u20d2","nvlt":"<\u20d2","nvltrie":"\u22b4\u20d2","nvrArr":"\u2903","nvrtrie":"\u22b5\u20d2","nvsim":"\u223c\u20d2","nwarhk":"\u2923","nwarr":"\u2196","nwArr":"\u21d6","nwarrow":"\u2196","nwnear":"\u2927","Oacute":"\xd3","oacute":"\xf3","oast":"\u229b","Ocirc":"\xd4","ocirc":"\xf4","ocir":"\u229a","Ocy":"\u041e","ocy":"\u043e","odash":"\u229d","Odblac":"\u0150","odblac":"\u0151","odiv":"\u2a38","odot":"\u2299","odsold":"\u29bc","OElig":"\u0152","oelig":"\u0153","ofcir":"\u29bf","Ofr":"\ud835\udd12","ofr":"\ud835\udd2c","ogon":"\u02db","Ograve":"\xd2","ograve":"\xf2","ogt":"\u29c1","ohbar":"\u29b5","ohm":"\u03a9","oint":"\u222e","olarr":"\u21ba","olcir":"\u29be","olcross":"\u29bb","oline":"\u203e","olt":"\u29c0","Omacr":"\u014c","omacr":"\u014d","Omega":"\u03a9","omega":"\u03c9","Omicron":"\u039f","omicron":"\u03bf","omid":"\u29b6","ominus":"\u2296","Oopf":"\ud835\udd46","oopf":"\ud835\udd60","opar":"\u29b7","OpenCurlyDoubleQuote":"\u201c","OpenCurlyQuote":"\u2018","operp":"\u29b9","oplus":"\u2295","orarr":"\u21bb","Or":"\u2a54","or":"\u2228","ord":"\u2a5d","order":"\u2134","orderof":"\u2134","ordf":"\xaa","ordm":"\xba","origof":"\u22b6","oror":"\u2a56","orslope":"\u2a57","orv":"\u2a5b","oS":"\u24c8","Oscr":"\ud835\udcaa","oscr":"\u2134","Oslash":"\xd8","oslash":"\xf8","osol":"\u2298","Otilde":"\xd5","otilde":"\xf5","otimesas":"\u2a36","Otimes":"\u2a37","otimes":"\u2297","Ouml":"\xd6","ouml":"\xf6","ovbar":"\u233d","OverBar":"\u203e","OverBrace":"\u23de","OverBracket":"\u23b4","OverParenthesis":"\u23dc","para":"\xb6","parallel":"\u2225","par":"\u2225","parsim":"\u2af3","parsl":"\u2afd","part":"\u2202","PartialD":"\u2202","Pcy":"\u041f","pcy":"\u043f","percnt":"%","period":".","permil":"\u2030","perp":"\u22a5","pertenk":"\u2031","Pfr":"\ud835\udd13","pfr":"\ud835\udd2d","Phi":"\u03a6","phi":"\u03c6","phiv":"\u03d5","phmmat":"\u2133","phone":"\u260e","Pi":"\u03a0","pi":"\u03c0","pitchfork":"\u22d4","piv":"\u03d6","planck":"\u210f","planckh":"\u210e","plankv":"\u210f","plusacir":"\u2a23","plusb":"\u229e","pluscir":"\u2a22","plus":"+","plusdo":"\u2214","plusdu":"\u2a25","pluse":"\u2a72","PlusMinus":"\xb1","plusmn":"\xb1","plussim":"\u2a26","plustwo":"\u2a27","pm":"\xb1","Poincareplane":"\u210c","pointint":"\u2a15","popf":"\ud835\udd61","Popf":"\u2119","pound":"\xa3","prap":"\u2ab7","Pr":"\u2abb","pr":"\u227a","prcue":"\u227c","precapprox":"\u2ab7","prec":"\u227a","preccurlyeq":"\u227c","Precedes":"\u227a","PrecedesEqual":"\u2aaf","PrecedesSlantEqual":"\u227c","PrecedesTilde":"\u227e","preceq":"\u2aaf","precnapprox":"\u2ab9","precneqq":"\u2ab5","precnsim":"\u22e8","pre":"\u2aaf","prE":"\u2ab3","precsim":"\u227e","prime":"\u2032","Prime":"\u2033","primes":"\u2119","prnap":"\u2ab9","prnE":"\u2ab5","prnsim":"\u22e8","prod":"\u220f","Product":"\u220f","profalar":"\u232e","profline":"\u2312","profsurf":"\u2313","prop":"\u221d","Proportional":"\u221d","Proportion":"\u2237","propto":"\u221d","prsim":"\u227e","prurel":"\u22b0","Pscr":"\ud835\udcab","pscr":"\ud835\udcc5","Psi":"\u03a8","psi":"\u03c8","puncsp":"\u2008","Qfr":"\ud835\udd14","qfr":"\ud835\udd2e","qint":"\u2a0c","qopf":"\ud835\udd62","Qopf":"\u211a","qprime":"\u2057","Qscr":"\ud835\udcac","qscr":"\ud835\udcc6","quaternions":"\u210d","quatint":"\u2a16","quest":"?","questeq":"\u225f","quot":"\\"","QUOT":"\\"","rAarr":"\u21db","race":"\u223d\u0331","Racute":"\u0154","racute":"\u0155","radic":"\u221a","raemptyv":"\u29b3","rang":"\u27e9","Rang":"\u27eb","rangd":"\u2992","range":"\u29a5","rangle":"\u27e9","raquo":"\xbb","rarrap":"\u2975","rarrb":"\u21e5","rarrbfs":"\u2920","rarrc":"\u2933","rarr":"\u2192","Rarr":"\u21a0","rArr":"\u21d2","rarrfs":"\u291e","rarrhk":"\u21aa","rarrlp":"\u21ac","rarrpl":"\u2945","rarrsim":"\u2974","Rarrtl":"\u2916","rarrtl":"\u21a3","rarrw":"\u219d","ratail":"\u291a","rAtail":"\u291c","ratio":"\u2236","rationals":"\u211a","rbarr":"\u290d","rBarr":"\u290f","RBarr":"\u2910","rbbrk":"\u2773","rbrace":"}","rbrack":"]","rbrke":"\u298c","rbrksld":"\u298e","rbrkslu":"\u2990","Rcaron":"\u0158","rcaron":"\u0159","Rcedil":"\u0156","rcedil":"\u0157","rceil":"\u2309","rcub":"}","Rcy":"\u0420","rcy":"\u0440","rdca":"\u2937","rdldhar":"\u2969","rdquo":"\u201d","rdquor":"\u201d","rdsh":"\u21b3","real":"\u211c","realine":"\u211b","realpart":"\u211c","reals":"\u211d","Re":"\u211c","rect":"\u25ad","reg":"\xae","REG":"\xae","ReverseElement":"\u220b","ReverseEquilibrium":"\u21cb","ReverseUpEquilibrium":"\u296f","rfisht":"\u297d","rfloor":"\u230b","rfr":"\ud835\udd2f","Rfr":"\u211c","rHar":"\u2964","rhard":"\u21c1","rharu":"\u21c0","rharul":"\u296c","Rho":"\u03a1","rho":"\u03c1","rhov":"\u03f1","RightAngleBracket":"\u27e9","RightArrowBar":"\u21e5","rightarrow":"\u2192","RightArrow":"\u2192","Rightarrow":"\u21d2","RightArrowLeftArrow":"\u21c4","rightarrowtail":"\u21a3","RightCeiling":"\u2309","RightDoubleBracket":"\u27e7","RightDownTeeVector":"\u295d","RightDownVectorBar":"\u2955","RightDownVector":"\u21c2","RightFloor":"\u230b","rightharpoondown":"\u21c1","rightharpoonup":"\u21c0","rightleftarrows":"\u21c4","rightleftharpoons":"\u21cc","rightrightarrows":"\u21c9","rightsquigarrow":"\u219d","RightTeeArrow":"\u21a6","RightTee":"\u22a2","RightTeeVector":"\u295b","rightthreetimes":"\u22cc","RightTriangleBar":"\u29d0","RightTriangle":"\u22b3","RightTriangleEqual":"\u22b5","RightUpDownVector":"\u294f","RightUpTeeVector":"\u295c","RightUpVectorBar":"\u2954","RightUpVector":"\u21be","RightVectorBar":"\u2953","RightVector":"\u21c0","ring":"\u02da","risingdotseq":"\u2253","rlarr":"\u21c4","rlhar":"\u21cc","rlm":"\u200f","rmoustache":"\u23b1","rmoust":"\u23b1","rnmid":"\u2aee","roang":"\u27ed","roarr":"\u21fe","robrk":"\u27e7","ropar":"\u2986","ropf":"\ud835\udd63","Ropf":"\u211d","roplus":"\u2a2e","rotimes":"\u2a35","RoundImplies":"\u2970","rpar":")","rpargt":"\u2994","rppolint":"\u2a12","rrarr":"\u21c9","Rrightarrow":"\u21db","rsaquo":"\u203a","rscr":"\ud835\udcc7","Rscr":"\u211b","rsh":"\u21b1","Rsh":"\u21b1","rsqb":"]","rsquo":"\u2019","rsquor":"\u2019","rthree":"\u22cc","rtimes":"\u22ca","rtri":"\u25b9","rtrie":"\u22b5","rtrif":"\u25b8","rtriltri":"\u29ce","RuleDelayed":"\u29f4","ruluhar":"\u2968","rx":"\u211e","Sacute":"\u015a","sacute":"\u015b","sbquo":"\u201a","scap":"\u2ab8","Scaron":"\u0160","scaron":"\u0161","Sc":"\u2abc","sc":"\u227b","sccue":"\u227d","sce":"\u2ab0","scE":"\u2ab4","Scedil":"\u015e","scedil":"\u015f","Scirc":"\u015c","scirc":"\u015d","scnap":"\u2aba","scnE":"\u2ab6","scnsim":"\u22e9","scpolint":"\u2a13","scsim":"\u227f","Scy":"\u0421","scy":"\u0441","sdotb":"\u22a1","sdot":"\u22c5","sdote":"\u2a66","searhk":"\u2925","searr":"\u2198","seArr":"\u21d8","searrow":"\u2198","sect":"\xa7","semi":";","seswar":"\u2929","setminus":"\u2216","setmn":"\u2216","sext":"\u2736","Sfr":"\ud835\udd16","sfr":"\ud835\udd30","sfrown":"\u2322","sharp":"\u266f","SHCHcy":"\u0429","shchcy":"\u0449","SHcy":"\u0428","shcy":"\u0448","ShortDownArrow":"\u2193","ShortLeftArrow":"\u2190","shortmid":"\u2223","shortparallel":"\u2225","ShortRightArrow":"\u2192","ShortUpArrow":"\u2191","shy":"\xad","Sigma":"\u03a3","sigma":"\u03c3","sigmaf":"\u03c2","sigmav":"\u03c2","sim":"\u223c","simdot":"\u2a6a","sime":"\u2243","simeq":"\u2243","simg":"\u2a9e","simgE":"\u2aa0","siml":"\u2a9d","simlE":"\u2a9f","simne":"\u2246","simplus":"\u2a24","simrarr":"\u2972","slarr":"\u2190","SmallCircle":"\u2218","smallsetminus":"\u2216","smashp":"\u2a33","smeparsl":"\u29e4","smid":"\u2223","smile":"\u2323","smt":"\u2aaa","smte":"\u2aac","smtes":"\u2aac\ufe00","SOFTcy":"\u042c","softcy":"\u044c","solbar":"\u233f","solb":"\u29c4","sol":"/","Sopf":"\ud835\udd4a","sopf":"\ud835\udd64","spades":"\u2660","spadesuit":"\u2660","spar":"\u2225","sqcap":"\u2293","sqcaps":"\u2293\ufe00","sqcup":"\u2294","sqcups":"\u2294\ufe00","Sqrt":"\u221a","sqsub":"\u228f","sqsube":"\u2291","sqsubset":"\u228f","sqsubseteq":"\u2291","sqsup":"\u2290","sqsupe":"\u2292","sqsupset":"\u2290","sqsupseteq":"\u2292","square":"\u25a1","Square":"\u25a1","SquareIntersection":"\u2293","SquareSubset":"\u228f","SquareSubsetEqual":"\u2291","SquareSuperset":"\u2290","SquareSupersetEqual":"\u2292","SquareUnion":"\u2294","squarf":"\u25aa","squ":"\u25a1","squf":"\u25aa","srarr":"\u2192","Sscr":"\ud835\udcae","sscr":"\ud835\udcc8","ssetmn":"\u2216","ssmile":"\u2323","sstarf":"\u22c6","Star":"\u22c6","star":"\u2606","starf":"\u2605","straightepsilon":"\u03f5","straightphi":"\u03d5","strns":"\xaf","sub":"\u2282","Sub":"\u22d0","subdot":"\u2abd","subE":"\u2ac5","sube":"\u2286","subedot":"\u2ac3","submult":"\u2ac1","subnE":"\u2acb","subne":"\u228a","subplus":"\u2abf","subrarr":"\u2979","subset":"\u2282","Subset":"\u22d0","subseteq":"\u2286","subseteqq":"\u2ac5","SubsetEqual":"\u2286","subsetneq":"\u228a","subsetneqq":"\u2acb","subsim":"\u2ac7","subsub":"\u2ad5","subsup":"\u2ad3","succapprox":"\u2ab8","succ":"\u227b","succcurlyeq":"\u227d","Succeeds":"\u227b","SucceedsEqual":"\u2ab0","SucceedsSlantEqual":"\u227d","SucceedsTilde":"\u227f","succeq":"\u2ab0","succnapprox":"\u2aba","succneqq":"\u2ab6","succnsim":"\u22e9","succsim":"\u227f","SuchThat":"\u220b","sum":"\u2211","Sum":"\u2211","sung":"\u266a","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","sup":"\u2283","Sup":"\u22d1","supdot":"\u2abe","supdsub":"\u2ad8","supE":"\u2ac6","supe":"\u2287","supedot":"\u2ac4","Superset":"\u2283","SupersetEqual":"\u2287","suphsol":"\u27c9","suphsub":"\u2ad7","suplarr":"\u297b","supmult":"\u2ac2","supnE":"\u2acc","supne":"\u228b","supplus":"\u2ac0","supset":"\u2283","Supset":"\u22d1","supseteq":"\u2287","supseteqq":"\u2ac6","supsetneq":"\u228b","supsetneqq":"\u2acc","supsim":"\u2ac8","supsub":"\u2ad4","supsup":"\u2ad6","swarhk":"\u2926","swarr":"\u2199","swArr":"\u21d9","swarrow":"\u2199","swnwar":"\u292a","szlig":"\xdf","Tab":"\\t","target":"\u2316","Tau":"\u03a4","tau":"\u03c4","tbrk":"\u23b4","Tcaron":"\u0164","tcaron":"\u0165","Tcedil":"\u0162","tcedil":"\u0163","Tcy":"\u0422","tcy":"\u0442","tdot":"\u20db","telrec":"\u2315","Tfr":"\ud835\udd17","tfr":"\ud835\udd31","there4":"\u2234","therefore":"\u2234","Therefore":"\u2234","Theta":"\u0398","theta":"\u03b8","thetasym":"\u03d1","thetav":"\u03d1","thickapprox":"\u2248","thicksim":"\u223c","ThickSpace":"\u205f\u200a","ThinSpace":"\u2009","thinsp":"\u2009","thkap":"\u2248","thksim":"\u223c","THORN":"\xde","thorn":"\xfe","tilde":"\u02dc","Tilde":"\u223c","TildeEqual":"\u2243","TildeFullEqual":"\u2245","TildeTilde":"\u2248","timesbar":"\u2a31","timesb":"\u22a0","times":"\xd7","timesd":"\u2a30","tint":"\u222d","toea":"\u2928","topbot":"\u2336","topcir":"\u2af1","top":"\u22a4","Topf":"\ud835\udd4b","topf":"\ud835\udd65","topfork":"\u2ada","tosa":"\u2929","tprime":"\u2034","trade":"\u2122","TRADE":"\u2122","triangle":"\u25b5","triangledown":"\u25bf","triangleleft":"\u25c3","trianglelefteq":"\u22b4","triangleq":"\u225c","triangleright":"\u25b9","trianglerighteq":"\u22b5","tridot":"\u25ec","trie":"\u225c","triminus":"\u2a3a","TripleDot":"\u20db","triplus":"\u2a39","trisb":"\u29cd","tritime":"\u2a3b","trpezium":"\u23e2","Tscr":"\ud835\udcaf","tscr":"\ud835\udcc9","TScy":"\u0426","tscy":"\u0446","TSHcy":"\u040b","tshcy":"\u045b","Tstrok":"\u0166","tstrok":"\u0167","twixt":"\u226c","twoheadleftarrow":"\u219e","twoheadrightarrow":"\u21a0","Uacute":"\xda","uacute":"\xfa","uarr":"\u2191","Uarr":"\u219f","uArr":"\u21d1","Uarrocir":"\u2949","Ubrcy":"\u040e","ubrcy":"\u045e","Ubreve":"\u016c","ubreve":"\u016d","Ucirc":"\xdb","ucirc":"\xfb","Ucy":"\u0423","ucy":"\u0443","udarr":"\u21c5","Udblac":"\u0170","udblac":"\u0171","udhar":"\u296e","ufisht":"\u297e","Ufr":"\ud835\udd18","ufr":"\ud835\udd32","Ugrave":"\xd9","ugrave":"\xf9","uHar":"\u2963","uharl":"\u21bf","uharr":"\u21be","uhblk":"\u2580","ulcorn":"\u231c","ulcorner":"\u231c","ulcrop":"\u230f","ultri":"\u25f8","Umacr":"\u016a","umacr":"\u016b","uml":"\xa8","UnderBar":"_","UnderBrace":"\u23df","UnderBracket":"\u23b5","UnderParenthesis":"\u23dd","Union":"\u22c3","UnionPlus":"\u228e","Uogon":"\u0172","uogon":"\u0173","Uopf":"\ud835\udd4c","uopf":"\ud835\udd66","UpArrowBar":"\u2912","uparrow":"\u2191","UpArrow":"\u2191","Uparrow":"\u21d1","UpArrowDownArrow":"\u21c5","updownarrow":"\u2195","UpDownArrow":"\u2195","Updownarrow":"\u21d5","UpEquilibrium":"\u296e","upharpoonleft":"\u21bf","upharpoonright":"\u21be","uplus":"\u228e","UpperLeftArrow":"\u2196","UpperRightArrow":"\u2197","upsi":"\u03c5","Upsi":"\u03d2","upsih":"\u03d2","Upsilon":"\u03a5","upsilon":"\u03c5","UpTeeArrow":"\u21a5","UpTee":"\u22a5","upuparrows":"\u21c8","urcorn":"\u231d","urcorner":"\u231d","urcrop":"\u230e","Uring":"\u016e","uring":"\u016f","urtri":"\u25f9","Uscr":"\ud835\udcb0","uscr":"\ud835\udcca","utdot":"\u22f0","Utilde":"\u0168","utilde":"\u0169","utri":"\u25b5","utrif":"\u25b4","uuarr":"\u21c8","Uuml":"\xdc","uuml":"\xfc","uwangle":"\u29a7","vangrt":"\u299c","varepsilon":"\u03f5","varkappa":"\u03f0","varnothing":"\u2205","varphi":"\u03d5","varpi":"\u03d6","varpropto":"\u221d","varr":"\u2195","vArr":"\u21d5","varrho":"\u03f1","varsigma":"\u03c2","varsubsetneq":"\u228a\ufe00","varsubsetneqq":"\u2acb\ufe00","varsupsetneq":"\u228b\ufe00","varsupsetneqq":"\u2acc\ufe00","vartheta":"\u03d1","vartriangleleft":"\u22b2","vartriangleright":"\u22b3","vBar":"\u2ae8","Vbar":"\u2aeb","vBarv":"\u2ae9","Vcy":"\u0412","vcy":"\u0432","vdash":"\u22a2","vDash":"\u22a8","Vdash":"\u22a9","VDash":"\u22ab","Vdashl":"\u2ae6","veebar":"\u22bb","vee":"\u2228","Vee":"\u22c1","veeeq":"\u225a","vellip":"\u22ee","verbar":"|","Verbar":"\u2016","vert":"|","Vert":"\u2016","VerticalBar":"\u2223","VerticalLine":"|","VerticalSeparator":"\u2758","VerticalTilde":"\u2240","VeryThinSpace":"\u200a","Vfr":"\ud835\udd19","vfr":"\ud835\udd33","vltri":"\u22b2","vnsub":"\u2282\u20d2","vnsup":"\u2283\u20d2","Vopf":"\ud835\udd4d","vopf":"\ud835\udd67","vprop":"\u221d","vrtri":"\u22b3","Vscr":"\ud835\udcb1","vscr":"\ud835\udccb","vsubnE":"\u2acb\ufe00","vsubne":"\u228a\ufe00","vsupnE":"\u2acc\ufe00","vsupne":"\u228b\ufe00","Vvdash":"\u22aa","vzigzag":"\u299a","Wcirc":"\u0174","wcirc":"\u0175","wedbar":"\u2a5f","wedge":"\u2227","Wedge":"\u22c0","wedgeq":"\u2259","weierp":"\u2118","Wfr":"\ud835\udd1a","wfr":"\ud835\udd34","Wopf":"\ud835\udd4e","wopf":"\ud835\udd68","wp":"\u2118","wr":"\u2240","wreath":"\u2240","Wscr":"\ud835\udcb2","wscr":"\ud835\udccc","xcap":"\u22c2","xcirc":"\u25ef","xcup":"\u22c3","xdtri":"\u25bd","Xfr":"\ud835\udd1b","xfr":"\ud835\udd35","xharr":"\u27f7","xhArr":"\u27fa","Xi":"\u039e","xi":"\u03be","xlarr":"\u27f5","xlArr":"\u27f8","xmap":"\u27fc","xnis":"\u22fb","xodot":"\u2a00","Xopf":"\ud835\udd4f","xopf":"\ud835\udd69","xoplus":"\u2a01","xotime":"\u2a02","xrarr":"\u27f6","xrArr":"\u27f9","Xscr":"\ud835\udcb3","xscr":"\ud835\udccd","xsqcup":"\u2a06","xuplus":"\u2a04","xutri":"\u25b3","xvee":"\u22c1","xwedge":"\u22c0","Yacute":"\xdd","yacute":"\xfd","YAcy":"\u042f","yacy":"\u044f","Ycirc":"\u0176","ycirc":"\u0177","Ycy":"\u042b","ycy":"\u044b","yen":"\xa5","Yfr":"\ud835\udd1c","yfr":"\ud835\udd36","YIcy":"\u0407","yicy":"\u0457","Yopf":"\ud835\udd50","yopf":"\ud835\udd6a","Yscr":"\ud835\udcb4","yscr":"\ud835\udcce","YUcy":"\u042e","yucy":"\u044e","yuml":"\xff","Yuml":"\u0178","Zacute":"\u0179","zacute":"\u017a","Zcaron":"\u017d","zcaron":"\u017e","Zcy":"\u0417","zcy":"\u0437","Zdot":"\u017b","zdot":"\u017c","zeetrf":"\u2128","ZeroWidthSpace":"\u200b","Zeta":"\u0396","zeta":"\u03b6","zfr":"\ud835\udd37","Zfr":"\u2128","ZHcy":"\u0416","zhcy":"\u0436","zigrarr":"\u21dd","zopf":"\ud835\udd6b","Zopf":"\u2124","Zscr":"\ud835\udcb5","zscr":"\ud835\udccf","zwj":"\u200d","zwnj":"\u200c"}')},"../../node_modules/htmlparser2/node_modules/entities/maps/legacy.json":function(t){t.exports=JSON.parse('{"Aacute":"\xc1","aacute":"\xe1","Acirc":"\xc2","acirc":"\xe2","acute":"\xb4","AElig":"\xc6","aelig":"\xe6","Agrave":"\xc0","agrave":"\xe0","amp":"&","AMP":"&","Aring":"\xc5","aring":"\xe5","Atilde":"\xc3","atilde":"\xe3","Auml":"\xc4","auml":"\xe4","brvbar":"\xa6","Ccedil":"\xc7","ccedil":"\xe7","cedil":"\xb8","cent":"\xa2","copy":"\xa9","COPY":"\xa9","curren":"\xa4","deg":"\xb0","divide":"\xf7","Eacute":"\xc9","eacute":"\xe9","Ecirc":"\xca","ecirc":"\xea","Egrave":"\xc8","egrave":"\xe8","ETH":"\xd0","eth":"\xf0","Euml":"\xcb","euml":"\xeb","frac12":"\xbd","frac14":"\xbc","frac34":"\xbe","gt":">","GT":">","Iacute":"\xcd","iacute":"\xed","Icirc":"\xce","icirc":"\xee","iexcl":"\xa1","Igrave":"\xcc","igrave":"\xec","iquest":"\xbf","Iuml":"\xcf","iuml":"\xef","laquo":"\xab","lt":"<","LT":"<","macr":"\xaf","micro":"\xb5","middot":"\xb7","nbsp":"\xa0","not":"\xac","Ntilde":"\xd1","ntilde":"\xf1","Oacute":"\xd3","oacute":"\xf3","Ocirc":"\xd4","ocirc":"\xf4","Ograve":"\xd2","ograve":"\xf2","ordf":"\xaa","ordm":"\xba","Oslash":"\xd8","oslash":"\xf8","Otilde":"\xd5","otilde":"\xf5","Ouml":"\xd6","ouml":"\xf6","para":"\xb6","plusmn":"\xb1","pound":"\xa3","quot":"\\"","QUOT":"\\"","raquo":"\xbb","reg":"\xae","REG":"\xae","sect":"\xa7","shy":"\xad","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","szlig":"\xdf","THORN":"\xde","thorn":"\xfe","times":"\xd7","Uacute":"\xda","uacute":"\xfa","Ucirc":"\xdb","ucirc":"\xfb","Ugrave":"\xd9","ugrave":"\xf9","uml":"\xa8","Uuml":"\xdc","uuml":"\xfc","Yacute":"\xdd","yacute":"\xfd","yen":"\xa5","yuml":"\xff"}')},"../../node_modules/htmlparser2/node_modules/entities/maps/xml.json":function(t){t.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},"../../node_modules/inherits/inherits_browser.js":function(t,e){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},"../../node_modules/is-url/index.js":function(t,e){t.exports=function(t){if("string"!=typeof t)return!1;var e=t.match(r);if(!e)return!1;var o=e[1];if(!o)return!1;if(s.test(o)||i.test(o))return!0;return!1};var r=/^(?:\w+:)?\/\/(\S+)$/,s=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,i=/^[^\s\.]+\.\S{2,}$/},"../../node_modules/node-libs-browser/node_modules/events/events.js":function(t,e,r){"use strict";var s,i="object"==typeof Reflect?Reflect:null,o=i&&"function"==typeof i.apply?i.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};s=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var n=Number.isNaN||function(t){return t!=t};function a(){a.init.call(this)}t.exports=a,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var c=10;function l(t){return void 0===t._maxListeners?a.defaultMaxListeners:t._maxListeners}function u(t,e,r,s){var i,o,n,a;if("function"!=typeof r)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r);if(void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),n=o[e]),void 0===n)n=o[e]=r,++t._eventsCount;else if("function"==typeof n?n=o[e]=s?[r,n]:[n,r]:s?n.unshift(r):n.push(r),(i=l(t))>0&&n.length>i&&!n.warned){n.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+n.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=n.length,a=c,console&&console.warn&&console.warn(a)}return t}function h(){for(var t=[],e=0;e<arguments.length;e++)t.push(arguments[e]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,o(this.listener,this.target,t))}function p(t,e,r){var s={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(s);return i.listener=r,s.wrapFn=i,i}function d(t,e,r){var s=t._events;if(void 0===s)return[];var i=s[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(i):_(i,i.length)}function f(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function _(t,e){for(var r=new Array(e),s=0;s<e;++s)r[s]=t[s];return r}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(t){if("number"!=typeof t||t<0||n(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");c=t}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||n(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},a.prototype.getMaxListeners=function(){return l(this)},a.prototype.emit=function(t){for(var e=[],r=1;r<arguments.length;r++)e.push(arguments[r]);var s="error"===t,i=this._events;if(void 0!==i)s=s&&void 0===i.error;else if(!s)return!1;if(s){var n;if(e.length>0&&(n=e[0]),n instanceof Error)throw n;var a=new Error("Unhandled error."+(n?" ("+n.message+")":""));throw a.context=n,a}var c=i[t];if(void 0===c)return!1;if("function"==typeof c)o(c,this,e);else{var l=c.length,u=_(c,l);for(r=0;r<l;++r)o(u[r],this,e)}return!0},a.prototype.addListener=function(t,e){return u(this,t,e,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(t,e){return u(this,t,e,!0)},a.prototype.once=function(t,e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);return this.on(t,p(this,t,e)),this},a.prototype.prependOnceListener=function(t,e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);return this.prependListener(t,p(this,t,e)),this},a.prototype.removeListener=function(t,e){var r,s,i,o,n;if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e);if(void 0===(s=this._events))return this;if(void 0===(r=s[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete s[t],s.removeListener&&this.emit("removeListener",t,r.listener||e));else if("function"!=typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){n=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(r,i),1===r.length&&(s[t]=r[0]),void 0!==s.removeListener&&this.emit("removeListener",t,n||e)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(t){var e,r,s;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var i,o=Object.keys(r);for(s=0;s<o.length;++s)"removeListener"!==(i=o[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=r[t]))this.removeListener(t,e);else if(void 0!==e)for(s=e.length-1;s>=0;s--)this.removeListener(t,e[s]);return this},a.prototype.listeners=function(t){return d(this,t,!0)},a.prototype.rawListeners=function(t){return d(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):f.call(t,e)},a.prototype.listenerCount=f,a.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},"../../node_modules/object-assign/index.js":function(t,e,r){"use strict";var s=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function n(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach((function(t){s[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},s)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,a,c=n(t),l=1;l<arguments.length;l++){for(var u in r=Object(arguments[l]))i.call(r,u)&&(c[u]=r[u]);if(s){a=s(r);for(var h=0;h<a.length;h++)o.call(r,a[h])&&(c[a[h]]=r[a[h]])}}return c}},"../../node_modules/posthtml-parser/index.js":function(t,e,r){"use strict";var s=r("../../node_modules/htmlparser2/lib/Parser.js"),i=r("../../node_modules/object-assign/index.js"),o={lowerCaseTags:!1,lowerCaseAttributeNames:!1},n=[{name:"!doctype",start:"<",end:">"}];function a(t,e){var r=[],a=[];function c(t,e){return t.name instanceof RegExp?RegExp(t.name.source,"i").test(e):e===t.name}r.last=function(){return this[this.length-1]};var l=new s({onprocessinginstruction:function(t,s){for(var i=[].concat(n,e.directives||[]),o=r.last(),l=0;l<i.length;l++){var u=i[l],h=u.start+s+u.end;if(c(u,t=t.toLowerCase())){if(!o)return void a.push(h);o.content||(o.content=[]),o.content.push(h)}}},oncomment:function(t){var e="\x3c!--"+t+"--\x3e",s=r.last();s?(s.content||(s.content=[]),s.content.push(e)):a.push(e)},onopentag:function(t,e){var s={tag:t};Object.keys(e).length&&(s.attrs=function(t){var e={};return Object.keys(t).forEach((function(r){var s={};s[r]=t[r].replace(/&quot;/g,'"'),i(e,s)})),e}(e)),r.push(s)},onclosetag:function(){var t=r.pop();if(r.length){var e=r.last();Array.isArray(e.content)||(e.content=[]),e.content.push(t)}else a.push(t)},ontext:function(t){var e=r.last();e?(e.content||(e.content=[]),e.content.push(t)):a.push(t)}},e||o);return l.write(t),l.end(),a}t.exports=function(){var t;function e(e){return a(e,i(o,t))}return 1===arguments.length&&Boolean(arguments[0])&&"Object"===arguments[0].constructor.name?(t=arguments[0],e):(t=arguments[1],e(arguments[0]))},t.exports.defaultOptions=o,t.exports.defaultDirectives=n},"../../node_modules/posthtml/lib/api.js":function(t,e,r){"use strict";function s(t){return o(this,t)}function i(t,e){return Array.isArray(t)?o(this,(function(r){for(var s=0;s<t.length;s++)if(n(t[s],r))return e(r);return r})):o(this,(function(r){return n(t,r)?e(r):r}))}function o(t,e){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]=o(e(t[r]),e);else t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,"content")&&o(t.content,e);return t}function n(t,e){if(t instanceof RegExp){if("object"==typeof e)return!1;if("string"==typeof e)return t.test(e)}return typeof t==typeof e&&("object"!=typeof t||null===t?t===e:Array.isArray(t)?t.every((function(t){return[].some.call(e,(function(e){return n(t,e)}))})):Object.keys(t).every((function(r){var s=e[r],i=t[r];return"object"==typeof i&&null!==i&&null!==s?n(i,s):"boolean"==typeof i?i!==(null==s):s===i})))}t.exports=function(){this.walk=s,this.match=i},t.exports.match=i,t.exports.walk=s},"../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/presets/parcel/transpilers/html-worker.ts":function(t,e,r){"use strict";r.r(e);var s=r("../../node_modules/@babel/runtime/helpers/asyncToGenerator.js"),i=r.n(s),o=r("../../node_modules/posthtml-parser/index.js"),n=r.n(o),a=r("../../node_modules/posthtml/lib/api.js"),c=r.n(a);const l=r("../../node_modules/is-url/index.js"),u=/^#/,h=/^[a-z][a-z0-9\-+.]*:/i;var p=function(t){return l(t)||u.test(t)||h.test(t)},d=r("../../node_modules/@babel/runtime/helpers/defineProperty.js"),f=r.n(d);class _ extends Error{}const m=new class{constructor(t){f()(this,"name",void 0),f()(this,"functions",new Map),f()(this,"pendingCalls",new Map),f()(this,"callId",0),f()(this,"isReady",!1),f()(this,"initializeFS",void 0),f()(this,"queuedMessages",[]),this.name=t,self.addEventListener("message",t=>{this.handleMessage(t.data).catch(console.error)}),self.postMessage({type:"worker_started",codesandbox:!0})}registerFunction(t,e){this.functions.set(t,e)}registerFSInitializer(t){this.initializeFS=t}handleMessage(t){var e=this;return i()((function*(){if("object"==typeof t&&t.codesandbox)if(e.isReady)switch(t.type){case"ping":e.isReady&&(yield e.emitReady());break;case"request":yield e.handleCallRequest(t);break;case"response":yield e.handleCallResponse(t);break;case"initialize-fs":if(!e.initializeFS)throw new Error("initializeFS is undefined for ".concat(e.name));yield e.initializeFS()}else e.queuedMessages.push(t);else t.browserfsMessage||console.warn("Invalid message from main thread to ".concat(e.name),t)}))()}handleCallResponse(t){const e=this.pendingCalls.get(t.idx);e&&(t.isError?e.reject(function(t){const e=new _(t.message);return e.name=t.name,e.columnNumber=t.columnNumber,e.fileName=t.fileName,e.lineNumber=t.lineNumber,e}(t.data)):e.resolve(t.data))}handleCallRequest(t){var e=this;return i()((function*(){try{const r=e.functions.get(t.method);if(!r)throw new Error("Could not find registered child function for call ".concat(e.name,"#").concat(t.method));const s=yield r(t.data);self.postMessage({type:"response",codesandbox:!0,idx:t.idx,data:s})}catch(e){console.error(e),self.postMessage({type:"response",codesandbox:!0,idx:t.idx,isError:!0,data:(r=e,{name:r.name,message:r.message,fileName:r.fileName,lineNumber:r.lineNumber,columnNumber:r.columnNumber})})}var r}))()}callFn(t){let e=t.method,r=t.data;const s=this.callId++,i={type:"request",codesandbox:!0,idx:s,method:e,data:r};return new Promise((t,o)=>{this.pendingCalls.set(s,{method:e,data:r,resolve:t,reject:o}),self.postMessage(i)})}emitReady(){this.isReady=!0,this.queuedMessages.forEach(t=>{console.warn("Run queued message",t),this.handleMessage(t).catch(console.error)}),self.postMessage({type:"ready",codesandbox:!0})}}("html-worker"),g={src:["script","img","audio","video","source","track","iframe","embed"],href:["link","a"],poster:["video"],"xlink:href":["use"],content:["meta"]},b={property:["og:image","og:image:url","og:image:secure_url","og:audio","og:audio:secure_url","og:video","og:video:secure_url"],name:["twitter:image","msapplication-square150x150logo","msapplication-square310x310logo","msapplication-square70x70logo","msapplication-wide310x150logo","msapplication-TileImage"],itemprop:["image","logo","screenshot","thumbnailUrl","contentUrl","downloadUrl"]};function y(){return(y=i()((function*(t){const e=t.code,r=[],s=[];function i(t){if(!p(t)){let e=decodeURIComponent(t);return/^\w/.test(e)&&(e="./".concat(e)),s.push({path:e,isEntry:!0}),r.push(e),e}return!1}function o(t){const e=[];return t.split(",").forEach(t=>{const r=t.trim().split(" ");if(0===r.length)return;const s=i(r[0]);s&&(r[0]=s),e.push(r.join(" "))}),e.join(",")}const a=n()(e,{lowerCaseAttributeNames:!0});a.walk=c.a.walk,a.match=c.a.match,a.walk(t=>{if(null==t)return t;if(t.attrs){if("meta"===t.tag&&!Object.keys(t.attrs).some(e=>{const r=b[e];return r&&r.includes(t.attrs[e])}))return t;for(const e in t.attrs)if(Object.prototype.hasOwnProperty.call(t.attrs,e)){if("img"===t.tag&&"srcset"===e){t.attrs[e]=o(t.attrs[e]);continue}const r=g[e];if("a"===t.tag&&t.attrs[e].lastIndexOf(".")<1||t.attrs[e].endsWith(".html"))continue;if("html"===t.tag&&t.attrs[e].endsWith(".html")&&"href"===e)continue;if(r&&r.includes(t.tag)){const r=i(t.attrs[e]);r&&("link"===t.tag||"script"===t.tag?(t.tag=!1,t.content=[]):t.attrs[e]=r)}}}return t});let l="";return l+="\n",l+="function loadResources() {",r.forEach(t=>{const e=JSON.stringify(t);l+="\n",l+="\trequire(".concat(e,");\n")}),l+="\n}",l+="\nif (document.readyState !== 'complete') {\n window.addEventListener('load', function() { loadResources() });\n} else {\n loadResources();\n}\n\n",{transpiledCode:l,foundDependencies:s}}))).apply(this,arguments)}m.registerFunction("compile",(function(t){return y.apply(this,arguments)})),m.emitReady()}});
//# sourceMappingURL=parcel-html-transpiler.e0273d5a.worker.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s="../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/pug/pug-worker.ts")}({"../../node_modules/@babel/runtime/helpers/asyncToGenerator.js":function(e,t){function r(e,t,r,n,o,s,i){try{var a=e[s](i),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(o,s){var i=e.apply(t,n);function a(e){r(i,o,s,a,l,"next",e)}function l(e){r(i,o,s,a,l,"throw",e)}a(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/toPropertyKey.js");e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPrimitive.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/typeof.js").default;e.exports=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPropertyKey.js":function(e,t,r){var n=r("../../node_modules/@babel/runtime/helpers/typeof.js").default,o=r("../../node_modules/@babel/runtime/helpers/toPrimitive.js");e.exports=function(e){var t=o(e,"string");return"symbol"===n(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/typeof.js":function(e,t){function r(t){return e.exports=r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,r(t)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/pug/pug-worker.ts":function(e,t,r){"use strict";r.r(t);var n=r("../../node_modules/@babel/runtime/helpers/asyncToGenerator.js"),o=r.n(n),s=r("../../node_modules/@babel/runtime/helpers/defineProperty.js"),i=r.n(s);class a extends Error{}self.importScripts("".concat("","/static/js/browserified-pug.0.1.0.min.js"));const l=new class{constructor(e){i()(this,"name",void 0),i()(this,"functions",new Map),i()(this,"pendingCalls",new Map),i()(this,"callId",0),i()(this,"isReady",!1),i()(this,"initializeFS",void 0),i()(this,"queuedMessages",[]),this.name=e,self.addEventListener("message",e=>{this.handleMessage(e.data).catch(console.error)}),self.postMessage({type:"worker_started",codesandbox:!0})}registerFunction(e,t){this.functions.set(e,t)}registerFSInitializer(e){this.initializeFS=e}handleMessage(e){var t=this;return o()((function*(){if("object"==typeof e&&e.codesandbox)if(t.isReady)switch(e.type){case"ping":t.isReady&&(yield t.emitReady());break;case"request":yield t.handleCallRequest(e);break;case"response":yield t.handleCallResponse(e);break;case"initialize-fs":if(!t.initializeFS)throw new Error("initializeFS is undefined for ".concat(t.name));yield t.initializeFS()}else t.queuedMessages.push(e);else e.browserfsMessage||console.warn("Invalid message from main thread to ".concat(t.name),e)}))()}handleCallResponse(e){const t=this.pendingCalls.get(e.idx);t&&(e.isError?t.reject(function(e){const t=new a(e.message);return t.name=e.name,t.columnNumber=e.columnNumber,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t}(e.data)):t.resolve(e.data))}handleCallRequest(e){var t=this;return o()((function*(){try{const r=t.functions.get(e.method);if(!r)throw new Error("Could not find registered child function for call ".concat(t.name,"#").concat(e.method));const n=yield r(e.data);self.postMessage({type:"response",codesandbox:!0,idx:e.idx,data:n})}catch(t){console.error(t),self.postMessage({type:"response",codesandbox:!0,idx:e.idx,isError:!0,data:(r=t,{name:r.name,message:r.message,fileName:r.fileName,lineNumber:r.lineNumber,columnNumber:r.columnNumber})})}var r}))()}callFn(e){let t=e.method,r=e.data;const n=this.callId++,o={type:"request",codesandbox:!0,idx:n,method:t,data:r};return new Promise((e,s)=>{this.pendingCalls.set(n,{method:t,data:r,resolve:e,reject:s}),self.postMessage(o)})}emitReady(){this.isReady=!0,this.queuedMessages.forEach(e=>{console.warn("Run queued message",e),this.handleMessage(e).catch(console.error)}),self.postMessage({type:"ready",codesandbox:!0})}}("pug-worker");function u(){return(u=o()((function*(e){const t=e.code,r=e.path;return{transpiledCode:yield new Promise((e,n)=>{self.pug.render(t,{filename:r},(t,r)=>t?n(t):e(r))})}}))).apply(this,arguments)}l.registerFunction("compile",(function(e){return u.apply(this,arguments)})),l.emitReady()}});
//# sourceMappingURL=pug-transpiler.41006669.worker.js.map
\ No newline at end of file
User-agent: *
Allow: /
\ No newline at end of file
<svg width="700" height="700" viewBox="0 0 700 700" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="700" height="700" fill="#151515"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M175 175L524.805 175V525H175V175ZM489.029 210.795V489.205H210.775V210.795H489.029Z" fill="white"/>
</svg>
"use strict";var precacheConfig=[["index.html","1a76dd09c254fd9a15bda685d3b3fd67"]],cacheName="sw-precache-v3-code-sandbox-sandbox-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var o=new URL(e);return r&&o.pathname.match(r)||(o.search+=(o.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),o.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),o=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),o]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],e.request.url)&&(n=new URL("https://new.codesandbox.io/frame.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).toolbox=e()}}(function(){return function e(t,n,r){function o(c,i){if(!n[c]){if(!t[c]){var s="function"==typeof require&&require;if(!i&&s)return s(c,!0);if(a)return a(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var h=n[c]={exports:{}};t[c][0].call(h.exports,function(e){var n=t[c][1][e];return o(n||e)},h,h.exports,e,t,n,r)}return n[c].exports}for(var a="function"==typeof require&&require,c=0;c<r.length;c++)o(r[c]);return o}({1:[function(e,t,n){function r(e,t){((t=t||{}).debug||s.debug)&&console.log("[sw-toolbox] "+e)}function o(e){var t;return e&&e.cache&&(t=e.cache.name),t=t||s.cache.name,caches.open(t)}function a(e,t,n){var o=e.url,a=n.maxAgeSeconds,c=n.maxEntries,i=n.name,s=Date.now();return r("Updating LRU order for "+o+". Max entries is "+c+", max age is "+a),u.getDb(i).then(function(e){return u.setTimestampForUrl(e,o,s)}).then(function(e){return u.expireEntries(e,c,a,s)}).then(function(e){r("Successfully updated IDB.");var n=e.map(function(e){return t.delete(e)});return Promise.all(n).then(function(){r("Done with cache cleanup.")})}).catch(function(e){r(e)})}function c(e){var t=Array.isArray(e);if(t&&e.forEach(function(e){"string"==typeof e||e instanceof Request||(t=!1)}),!t)throw new TypeError("The precache method expects either an array of strings and/or Requests or a Promise that resolves to an array of strings and/or Requests.");return e}var i,s=e("./options"),u=e("./idb-cache-expiration");t.exports={debug:r,fetchAndCache:function(e,t){var n=(t=t||{}).successResponses||s.successResponses;return fetch(e.clone()).then(function(r){return"GET"===e.method&&n.test(r.status)&&o(t).then(function(n){n.put(e,r).then(function(){var r=t.cache||s.cache;(r.maxEntries||r.maxAgeSeconds)&&r.name&&function(e,t,n){var r=a.bind(null,e,t,n);i=i?i.then(r):r()}(e,n,r)})}),r.clone()})},openCache:o,renameCache:function(e,t,n){return r("Renaming cache: ["+e+"] to ["+t+"]",n),caches.delete(t).then(function(){return Promise.all([caches.open(e),caches.open(t)]).then(function(t){var n=t[0],r=t[1];return n.keys().then(function(e){return Promise.all(e.map(function(e){return n.match(e).then(function(t){return r.put(e,t)})}))}).then(function(){return caches.delete(e)})})})},cache:function(e,t){return o(t).then(function(t){return t.add(e)})},uncache:function(e,t){return o(t).then(function(t){return t.delete(e)})},precache:function(e){e instanceof Promise||c(e),s.preCacheItems=s.preCacheItems.concat(e)},validatePrecacheInput:c,isResponseFresh:function(e,t,n){if(!e)return!1;if(t){var r=e.headers.get("date");if(r&&new Date(r).getTime()+1e3*t<n)return!1}return!0}}},{"./idb-cache-expiration":2,"./options":4}],2:[function(e,t,n){var r="sw-toolbox-",o=1,a="store",c="url",i="timestamp",s={};t.exports={getDb:function(e){return e in s||(s[e]=function(e){return new Promise(function(t,n){var s=indexedDB.open(r+e,o);s.onupgradeneeded=function(){s.result.createObjectStore(a,{keyPath:c}).createIndex(i,i,{unique:!1})},s.onsuccess=function(){t(s.result)},s.onerror=function(){n(s.error)}})}(e)),s[e]},setTimestampForUrl:function(e,t,n){return new Promise(function(r,o){var c=e.transaction(a,"readwrite");c.objectStore(a).put({url:t,timestamp:n}),c.oncomplete=function(){r(e)},c.onabort=function(){o(c.error)}})},expireEntries:function(e,t,n,r){return function(e,t,n){return t?new Promise(function(r,o){var s=1e3*t,u=[],h=e.transaction(a,"readwrite"),f=h.objectStore(a);f.index(i).openCursor().onsuccess=function(e){var t=e.target.result;if(t&&n-s>t.value[i]){var r=t.value[c];u.push(r),f.delete(r),t.continue()}},h.oncomplete=function(){r(u)},h.onabort=o}):Promise.resolve([])}(e,n,r).then(function(n){return function(e,t){return t?new Promise(function(n,r){var o=[],s=e.transaction(a,"readwrite"),u=s.objectStore(a),h=u.index(i),f=h.count();h.count().onsuccess=function(){var e=f.result;e>t&&(h.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var a=r.value[c];o.push(a),u.delete(a),e-o.length>t&&r.continue()}})},s.oncomplete=function(){n(o)},s.onabort=r}):Promise.resolve([])}(e,t).then(function(e){return n.concat(e)})})}}},{}],3:[function(e,t,n){function r(e){return e.reduce(function(e,t){return e.concat(t)},[])}e("serviceworker-cache-polyfill");var o=e("./helpers"),a=e("./router"),c=e("./options");t.exports={fetchListener:function(e){var t=a.match(e.request);t?e.respondWith(t(e.request)):a.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(a.default(e.request))},activateListener:function(e){o.debug("activate event fired");var t=c.cache.name+"$$$inactive$$$";e.waitUntil(o.renameCache(t,c.cache.name))},installListener:function(e){var t=c.cache.name+"$$$inactive$$$";o.debug("install event fired"),o.debug("creating cache ["+t+"]"),e.waitUntil(o.openCache({cache:{name:t}}).then(function(e){return Promise.all(c.preCacheItems).then(r).then(o.validatePrecacheInput).then(function(t){return o.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){var r=new URL("./",self.location).pathname,o=e("path-to-regexp"),a=function(e,t,n,a){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=r+t),this.keys=[],this.regexp=o(t,this.keys)),this.method=e,this.options=a,this.handler=n};a.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=a},{"path-to-regexp":15}],6:[function(e,t,n){var r=e("./route"),o=e("./helpers"),a=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){new RegExp(r.value[0]).test(t)&&o.push(r.value[1]),r=n.next()}return o},c=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){c.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),c.prototype.add=function(e,t,n,a){var c;a=a||{},t instanceof RegExp?c=RegExp:c=(c=a.origin||self.location.origin)instanceof RegExp?c.source:function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(c),e=e.toLowerCase();var i=new r(e,t,n,a);this.routes.has(c)||this.routes.set(c,new Map);var s=this.routes.get(c);s.has(e)||s.set(e,new Map);var u=s.get(e),h=i.regexp||i.fullUrlRegExp;u.has(h.source)&&o.debug('"'+t+'" resolves to same regex as existing route.'),u.set(h.source,i)},c.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,a(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},c.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r<t.length;r++){var o=t[r],c=o&&o.get(e.toLowerCase());if(c){var i=a(c,n);if(i.length>0)return i[0].makeHandler(n)}}return null},c.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new c},{"./helpers":1,"./route":5}],7:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache first ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(t){var a=n.cache||r.cache,c=Date.now();return o.isResponseFresh(t,a.maxAgeSeconds,c)?t:o.fetchAndCache(e,n)})})}},{"../helpers":1,"../options":4}],8:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache only ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||r.cache,a=Date.now();if(o.isResponseFresh(e,t.maxAgeSeconds,a))return e})})}},{"../helpers":1,"../options":4}],9:[function(e,t,n){var r=e("../helpers"),o=e("./cacheOnly");t.exports=function(e,t,n){return r.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(a,c){var i=!1,s=[],u=function(e){s.push(e.toString()),i?c(new Error('Both cache and network failed: "'+s.join('", "')+'"')):i=!0},h=function(e){e instanceof Response?a(e):u("No result returned")};r.fetchAndCache(e.clone(),n).then(h,u),o(e,t,n).then(h,u)})}},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){var a=(n=n||{}).successResponses||r.successResponses,c=n.networkTimeoutSeconds||r.networkTimeoutSeconds;return o.debug("Strategy: network first ["+e.url+"]",n),o.openCache(n).then(function(t){var i,s,u=[];if(c){var h=new Promise(function(a){i=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||r.cache,c=Date.now(),i=t.maxAgeSeconds;o.isResponseFresh(e,i,c)&&a(e)})},1e3*c)});u.push(h)}var f=o.fetchAndCache(e,n).then(function(e){if(i&&clearTimeout(i),a.test(e.status))return e;throw o.debug("Response was an HTTP error: "+e.statusText,n),s=e,new Error("Bad response")}).catch(function(r){return o.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(s)return s;throw r})});return u.push(f),Promise.race(u)})}},{"../helpers":1,"../options":4}],12:[function(e,t,n){var r=e("../helpers");t.exports=function(e,t,n){return r.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}},{"../helpers":1}],13:[function(e,t,n){var r=e("./options"),o=e("./router"),a=e("./helpers"),c=e("./strategies"),i=e("./listeners");a.debug("Service Worker Toolbox is loading"),self.addEventListener("install",i.installListener),self.addEventListener("activate",i.activateListener),self.addEventListener("fetch",i.fetchListener),t.exports={networkOnly:c.networkOnly,networkFirst:c.networkFirst,cacheOnly:c.cacheOnly,cacheFirst:c.cacheFirst,fastest:c.fastest,router:o,options:r,cache:a.cache,uncache:a.uncache,precache:a.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],o=0,a=0,c="",u=t&&t.delimiter||"/";null!=(n=d.exec(e));){var h=n[0],f=n[1],l=n.index;if(c+=e.slice(a,l),a=l+h.length,f)c+=f[1];else{var p=e[a],m=n[2],g=n[3],x=n[4],v=n[5],w=n[6],y=n[7];c&&(r.push(c),c="");var b=null!=m&&null!=p&&p!==m,E="+"===w||"*"===w,R="?"===w||"*"===w,k=n[2]||u,C=x||v;r.push({name:g||o++,prefix:m||"",delimiter:k,optional:R,repeat:E,partial:b,asterisk:!!y,pattern:C?s(C):y?".*":"[^"+i(k)+"]+?"})}}return a<e.length&&(c+=e.substr(a)),c&&r.push(c),r}function o(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function a(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var c="",i=n||{},s=(r||{}).pretty?o:encodeURIComponent,u=0;u<e.length;u++){var h=e[u];if("string"!=typeof h){var f,l=i[h.name];if(null==l){if(h.optional){h.partial&&(c+=h.prefix);continue}throw new TypeError('Expected "'+h.name+'" to be defined')}if(p(l)){if(!h.repeat)throw new TypeError('Expected "'+h.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(h.optional)continue;throw new TypeError('Expected "'+h.name+'" to not be empty')}for(var d=0;d<l.length;d++){if(f=s(l[d]),!t[u].test(f))throw new TypeError('Expected all "'+h.name+'" to match "'+h.pattern+'", but received `'+JSON.stringify(f)+"`");c+=(0===d?h.prefix:h.delimiter)+f}}else{if(f=h.asterisk?a(l):s(l),!t[u].test(f))throw new TypeError('Expected "'+h.name+'" to match "'+h.pattern+'", but received "'+f+'"');c+=h.prefix+f}}else c+=h}return c}}function i(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function h(e){return e.sensitive?"":"i"}function f(e,t,n){p(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,a="",c=0;c<e.length;c++){var s=e[c];if("string"==typeof s)a+=i(s);else{var f=i(s.prefix),l="(?:"+s.pattern+")";t.push(s),s.repeat&&(l+="(?:"+f+l+")*"),a+=l=s.optional?s.partial?f+"("+l+")?":"(?:"+f+"("+l+"))?":f+"("+l+")"}}var d=i(n.delimiter||"/"),m=a.slice(-d.length)===d;return r||(a=(m?a.slice(0,-d.length):a)+"(?:"+d+"(?=$))?"),a+=o?"$":r&&m?"":"(?="+d+"|$)",u(new RegExp("^"+a,h(n)),t)}function l(e,t,n){return p(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):p(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(l(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",h(n)),t)}(e,t,n):function(e,t,n){return f(r(e,n),t,n)}(e,t,n)}var p=e("isarray");t.exports=l,t.exports.parse=r,t.exports.compile=function(e,t){return c(r(e,t))},t.exports.tokensToFunction=c,t.exports.tokensToRegExp=f;var d=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},{isarray:14}],16:[function(e,t,n){!function(){var e=Cache.prototype.addAll,t=navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);if(t)var n=t[1],r=parseInt(t[2]);e&&(!t||"Firefox"===n&&r>=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}),toolbox.router.get(/api\/v1\/dependencies/,toolbox.cacheFirst,{cache:{maxAgeSeconds:86400,name:"dependency-version-cache"}}),toolbox.router.get(/codesandbox\.io\/static\/js\//,toolbox.cacheFirst,{cache:{maxAgeSeconds:86400,name:"static-root-cache"}}),toolbox.router.get(/\.amazonaws\.com\/prod\/package/,toolbox.cacheFirst,{cache:{maxAgeSeconds:604800,name:"dependency-url-generator-cache"}}),toolbox.router.get(/prod-packager-packages\.codesandbox\.io/,toolbox.cacheFirst,{cache:{maxAgeSeconds:604800,name:"dependency-files-cache"}}),toolbox.router.get(/^https:\/\/unpkg\.com\/.*\/package.json/,toolbox.networkFirst,{cache:{maxEntries:300,name:"unpkg-dep-pkg-cache",maxAgeSeconds:300}}),toolbox.router.get(/^https:\/\/unpkg\.com/,toolbox.cacheFirst,{cache:{maxEntries:300,name:"unpkg-dep-cache",maxAgeSeconds:604800}}),toolbox.router.get(/^https:\/\/cdn\.rawgit\.com/,toolbox.cacheFirst,{cache:{maxEntries:300,name:"rawgit-cache",maxAgeSeconds:604800}}),toolbox.router.get(/jsdelivr\.(com|net)/,toolbox.cacheFirst,{cache:{maxEntries:300,name:"jsdelivr-dep-cache",maxAgeSeconds:604800}}),toolbox.router.get(/cloudflare\.com/,toolbox.cacheFirst,{cache:{maxEntries:50,name:"cloudflare-cache",maxAgeSeconds:604800}});
\ No newline at end of file
!function(e){this.webpackChunk=function(t,r){for(var o in r)e[o]=r[o];for(;t.length;)n[t.pop()]=1};var t={},n={main:1};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.e=function(e){var t=[];return t.push(Promise.resolve().then((function(){n[e]||importScripts(r.p+""+e+".sass-transpiler.d0a9e805.worker.js")}))),Promise.all(t)},r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s="../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/sass/worker/index.ts")}({"../../node_modules/@babel/runtime/helpers/asyncToGenerator.js":function(e,t){function n(e,t,n,r,o,s,i){try{var l=e[s](i),a=l.value}catch(e){return void n(e)}l.done?t(a):Promise.resolve(a).then(r,o)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(o,s){var i=e.apply(t,r);function l(e){n(i,o,s,l,a,"next",e)}function a(e){n(i,o,s,l,a,"throw",e)}l(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(e,t,n){var r=n("../../node_modules/@babel/runtime/helpers/toPropertyKey.js");e.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPrimitive.js":function(e,t,n){var r=n("../../node_modules/@babel/runtime/helpers/typeof.js").default;e.exports=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/toPropertyKey.js":function(e,t,n){var r=n("../../node_modules/@babel/runtime/helpers/typeof.js").default,o=n("../../node_modules/@babel/runtime/helpers/toPrimitive.js");e.exports=function(e){var t=o(e,"string");return"symbol"===r(t)?t:String(t)},e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/@babel/runtime/helpers/typeof.js":function(e,t){function n(t){return e.exports=n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,n(t)}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports},"../../node_modules/process/browser.js":function(e,t){var n,r,o=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var a,u=[],c=!1,d=-1;function f(){c&&a&&(c=!1,a.length?u=a.concat(u):d=-1,u.length&&p())}function p(){if(!c){var e=l(f);c=!0;for(var t=u.length;t;){for(a=u,u=[];++d<t;)a&&a[d].run();d=-1,t=u.length}a=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new h(e,t)),1!==u.length||c||l(p)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},"../../node_modules/thread-loader/dist/cjs.js?!../../node_modules/babel-loader/lib/index.js?!./src/sandbox/eval/transpilers/sass/worker/index.ts":function(e,t,n){self.importScripts("".concat("","/static/browserfs12/browserfs.min.js")),self.process=self.BrowserFS.BFSRequire("process"),self.Buffer=self.BrowserFS.BFSRequire("buffer").Buffer,n("./src/sandbox/eval/transpilers/sass/worker/sass-worker.ts")},"../common/lib/utils/delay.js":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e=1e3){return new Promise(t=>setTimeout(t,e))}},"../common/lib/utils/path.js":function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.relative=t.resolve=t.extname=t.absolute=t.basename=t.dirname=t.join=t.normalize=t.isAbsolute=void 0;const n=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^/]+?|)(\.[^./]*|))(?:[/]*)$/;function r(e,t){const n=[];for(let r=0;r<e.length;r+=1){const o=e[r];o&&"."!==o&&(".."===o?n.length&&".."!==n[n.length-1]?n.pop():t&&n.push(".."):n.push(o))}return n}function o(e){return"/"===e.charAt(0)}function s(e){const t=o(e),n=e&&"/"===e[e.length-1];let s=e;return s=r(s.split("/"),!t).join("/"),s||t||(s="."),s&&n&&(s+="/"),(t?"/":"")+s}function i(...t){let n="",o=!1;for(let r=t.length-1;r>=-1&&!o;r--){const s=r>=0?t[r]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,o="/"===s[0])}return n=r(n.split("/"),!o).join("/"),(o?"/":"")+n||"."}function l(e){const t=e.length-1;let n=0;for(;n<=t&&!e[n];n++);let r=t;for(;r>=0&&!e[r];r--);return 0===n&&r===t?e:n>r?[]:e.slice(n,r+1)}t.isAbsolute=o,t.normalize=s,t.join=function(...e){let t="";for(let n=0;n<e.length;n+=1){const r=e[n];if("string"!=typeof r)throw new TypeError("Arguments to path.join must be strings");r&&(t+=t?"/"+r:r)}return s(t)},t.dirname=function(e){const t=(r=e,n.exec(r).slice(1));var r;const o=t[0];let s=t[1];return o||s?(s&&(s=s.substr(0,s.length-1)),o+s):"."},t.basename=function(e,t=""){if(""===e)return e;const n=s(e).split("/"),r=n[n.length-1];if(""===r&&n.length>1)return n[n.length-2];if(t.length>0){if(r.substr(r.length-t.length)===t)return r.substr(0,r.length-t.length)}return r},t.absolute=function(e){return e.startsWith("/")?e:e.startsWith("./")?e.replace("./","/"):"/"+e},t.extname=function(e){!function(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}(e);let t=-1,n=0,r=-1,o=!0,s=0;for(let i=e.length-1;i>=0;--i){const l=e.charCodeAt(i);if(47!==l)-1===r&&(o=!1,r=i+1),46===l?-1===t?t=i:1!==s&&(s=1):-1!==t&&(s=-1);else if(!o){n=i+1;break}}return-1===t||-1===r||0===s||1===s&&t===r-1&&t===n+1?"":e.slice(t,r)},t.resolve=i,t.relative=function(e,t){e=i(e).substr(1),t=i(t).substr(1);const n=l(e.split("/")),r=l(t.split("/")),o=Math.min(n.length,r.length);let s=o;for(let e=0;e<o;e++)if(n[e]!==r[e]){s=e;break}let a=[];for(let e=s;e<n.length;e++)a.push("..");return a=a.concat(r.slice(s)),a.join("/")}}).call(this,n("../../node_modules/process/browser.js"))},"./src/sandbox/eval/transpilers/sass/worker/sass-worker.ts":function(e,t,n){"use strict";n.r(t);var r=n("../../node_modules/@babel/runtime/helpers/asyncToGenerator.js"),o=n.n(r),s=n("../common/lib/utils/delay.js"),i=n.n(s),l=n("../common/lib/utils/path.js");const a=["scss","sass","css"];function u(e){const t=!!l.extname(e),n=t?[""]:a.map(e=>"."+e),r=[];for(const t of n)r.push(l.join(e+t)),r.push(l.join("_"+e+t));if(!t)for(const t of n)r.push(l.join(e,"index"+t)),r.push(l.join(e,"_index"+t));return r}function c(e,t){return"~"===t[0]?(e=["/node_modules"],t=t.substr(1)):"."!==t[0]&&"/"!==t[0]&&e.push("/node_modules"),e.map(e=>l.join(e,t))}function d(e){return f.apply(this,arguments)}function f(){return(f=o()((function*(e){const t=e.path,n=e.options,r=void 0===n?{}:n,o=e.loaderContextId,s=e.childHandler,i=yield s.callFn({method:"resolve-async-transpiled-module",data:{path:t,options:r,loaderContextId:o}});if(!i.found)throw new Error("Module ".concat(t," not found."));return i}))).apply(this,arguments)}function p(e){const t=e.fs,n=e.filepath,r=e.loaderContextId,s=e.childHandler;return new Promise(e=>{t.stat(n,function(){var i=o()((function*(o,i){if(o||i.isDirectory()){if(i&&i.isDirectory())return void e(!1);try{const o=yield d({path:n,options:{isAbsolute:n.startsWith("/"),ignoredExtensions:a},loaderContextId:r,childHandler:s}),i=l.extname(o.path).substring(1);if(-1===a.indexOf(i))return void e(!1);try{t.mkdirSync(l.dirname(o.path),{recursive:!0})}catch(e){}try{t.writeFileSync(o.path,o.code)}catch(e){}e(o.path)}catch(t){e(!1)}}else e(n)}));return function(e,t){return i.apply(this,arguments)}}())})}function h(e){return m.apply(this,arguments)}function m(){return(m=o()((function*(e){const t=e.fs,n=e.potentialPath,r=e.loaderContextId,o=e.childHandler;try{const e=l.dirname(n),s=u(l.basename(n)).map(t=>l.join(e,t)),i=s.shift();if(yield p({fs:t,filepath:i,loaderContextId:r,childHandler:o}))return i;for(const e of s){if(yield p({fs:t,filepath:e,loaderContextId:r,childHandler:o}))return e}return null}catch(e){return null}}))).apply(this,arguments)}function y(e){try{return new URL(e).pathname}catch(t){return e}}function b(e){return e.map(y)}function g(e){return v.apply(this,arguments)}function v(){return(v=o()((function*(e){const t=e.includePaths,n=void 0===t?[]:t,r=e.env,o=void 0===r?{}:r,s=e.fs,i=e.resolutionCache,a=e.loaderContextId,u=e.childHandler;let d=e.url,f=e.previous;if(null==a)throw new Error("Loader context id is required");d=y(d),f=y(f);let p=[l.dirname(f)];n&&p.push(...n),o.SASS_PATH&&p.push(...o.SASS_PATH.split(":")),p=b(p);const m=c(p,d);for(const e of m){if(i[e])return i[e];i[e]=h({fs:s,potentialPath:e,loaderContextId:a,childHandler:u});const t=yield i[e];if(t)return t}return null}))).apply(this,arguments)}var x=n("../../node_modules/@babel/runtime/helpers/defineProperty.js"),w=n.n(x);class j extends Error{}function S(e){return _.apply(this,arguments)}function _(){return(_=o()((function*(e){const t=e.childHandler,n=e.loaderContextId;if(null==n)throw new Error("Loader context id is required");return(yield t.callFn({method:"resolve-fs",data:{loaderContextId:n}})).modules}))).apply(this,arguments)}self.window=self;let M=null;function C(){return P.apply(this,arguments)}function P(){return(P=o()((function*(){return M||(M=n.e(0).then(n.t.bind(null,"../browser-dart-sass/lib/index.js",7)).then(e=>e.default)),M}))).apply(this,arguments)}let T=!1,E=!1;const F=new class{constructor(e){w()(this,"name",void 0),w()(this,"functions",new Map),w()(this,"pendingCalls",new Map),w()(this,"callId",0),w()(this,"isReady",!1),w()(this,"initializeFS",void 0),w()(this,"queuedMessages",[]),this.name=e,self.addEventListener("message",e=>{this.handleMessage(e.data).catch(console.error)}),self.postMessage({type:"worker_started",codesandbox:!0})}registerFunction(e,t){this.functions.set(e,t)}registerFSInitializer(e){this.initializeFS=e}handleMessage(e){var t=this;return o()((function*(){if("object"==typeof e&&e.codesandbox)if(t.isReady)switch(e.type){case"ping":t.isReady&&(yield t.emitReady());break;case"request":yield t.handleCallRequest(e);break;case"response":yield t.handleCallResponse(e);break;case"initialize-fs":if(!t.initializeFS)throw new Error("initializeFS is undefined for ".concat(t.name));yield t.initializeFS()}else t.queuedMessages.push(e);else e.browserfsMessage||console.warn("Invalid message from main thread to ".concat(t.name),e)}))()}handleCallResponse(e){const t=this.pendingCalls.get(e.idx);t&&(e.isError?t.reject(function(e){const t=new j(e.message);return t.name=e.name,t.columnNumber=e.columnNumber,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t}(e.data)):t.resolve(e.data))}handleCallRequest(e){var t=this;return o()((function*(){try{const n=t.functions.get(e.method);if(!n)throw new Error("Could not find registered child function for call ".concat(t.name,"#").concat(e.method));const r=yield n(e.data);self.postMessage({type:"response",codesandbox:!0,idx:e.idx,data:r})}catch(t){console.error(t),self.postMessage({type:"response",codesandbox:!0,idx:e.idx,isError:!0,data:(n=t,{name:n.name,message:n.message,fileName:n.fileName,lineNumber:n.lineNumber,columnNumber:n.columnNumber})})}var n}))()}callFn(e){let t=e.method,n=e.data;const r=this.callId++,o={type:"request",codesandbox:!0,idx:r,method:t,data:n};return new Promise((e,s)=>{this.pendingCalls.set(r,{method:t,data:n,resolve:e,reject:s}),self.postMessage(o)})}emitReady(){this.isReady=!0,this.queuedMessages.forEach(e=>{console.warn("Run queued message",e),this.handleMessage(e).catch(console.error)}),self.postMessage({type:"ready",codesandbox:!0})}}("sass-worker");function I(e){return k.apply(this,arguments)}function k(){return(k=o()((function*(e){if(E||T){if(!T)for(;!T;)yield i()(50)}else yield A(e)}))).apply(this,arguments)}function R(){return(R=o()((function*(e){const t=e.code,n=e.path,r=e.indentedSyntax,s=e.loaderContextId,i=yield C();yield I(s);const l=BrowserFS.BFSRequire("fs"),a={},u={},c=[],f=t=>(a[t]||(a[t]=new Promise((n,r)=>{l.readFile(t,{},function(){var s=o()((function*(o,s){if(o){const s=yield d({path:t,loaderContextId:e.loaderContextId,childHandler:F,options:{isAbsolute:!1,ignoredExtensions:[".sass",".css",".scss"]}});return s?void n(s.code):void r(o)}n(s.toString())}));return function(e,t){return s.apply(this,arguments)}}())})),a[t]),p=function(){var e=o()((function*(e,t){try{const r="stdin"===t?n:t,o=yield g({url:e,previous:r,fs:l,resolutionCache:u,loaderContextId:s,childHandler:F});if(!o)throw new Error("Could not resolve ".concat(e));c.push({path:o,options:{isAbsolute:!0}});return{file:o,contents:yield f(o),isIndentedSyntax:o.endsWith("sass")}}catch(t){throw t.message="Could not resolve ".concat(e,": ").concat(t.message),t}}));return function(t,n){return e.apply(this,arguments)}}();return{transpiledCode:(yield new Promise((e,n)=>{i.render({data:t,importer:(e,t,n)=>{p(e,t).then(e=>{n(e)}).catch(e=>{n(e)})},sourceMapEmbed:!0,indentedSyntax:r},(t,r)=>t?n(t):e(r))})).css.toString(),transpilationDependencies:c}}))).apply(this,arguments)}function A(e){return H.apply(this,arguments)}function H(){return(H=o()((function*(e){E=!0;const t=yield S({childHandler:F,loaderContextId:e}),n={};t.forEach(e=>{n[e.path]={module:e}});const r={getTranspiledModules:()=>n,addModule:()=>{},removeModule:()=>{},moveModule:()=>{},updateModule:()=>{}};return new Promise(e=>{BrowserFS.configure({fs:"OverlayFS",options:{writable:{fs:"InMemory"},readable:{fs:"CodeSandboxFS",options:{manager:r}}}},t=>{t?console.error(t):(E=!1,T=!0,e(null))})})}))).apply(this,arguments)}F.registerFunction("compile",(function(e){return R.apply(this,arguments)})),F.registerFSInitializer(()=>{}),F.emitReady()}});
//# sourceMappingURL=sass-transpiler.d0a9e805.worker.js.map
\ No newline at end of file
"use strict";var precacheConfig=[["/0.babel-transpiler.ef09383f.worker.js","c0aa4767594d199aa93c7ca983a97661"],["/0.sass-transpiler.d0a9e805.worker.js","f1663410135e996b8643a02e4e6ed1de"],["/1.babel-transpiler.ef09383f.worker.js","55cfd25c10f5ff55250b9e1bf7d80fed"],["/babel-plugin-jsx-pragmatic.babel-transpiler.ef09383f.worker.js","d9865928c2aeaf494beb0ca8813d390b"],["/babel-plugin-transform-vue-jsx.babel-transpiler.ef09383f.worker.js","cc7f3731caf67ef2820a7ec33c0aae0c"],["/babel-transpiler.ef09383f.worker.js","192bfc552440a8b34fc1143312a732b6"],["/coffee-transpiler.6abe87e8.worker.js","bfd50f21e98794ba297337f9917d5755"],["/file-manifest.json","2c0b9161ef8cfba05ea70edcd781bd52"],["/index.html","1a76dd09c254fd9a15bda685d3b3fd67"],["/less-transpiler.74a88bd2.worker.js","3f828d250e3c8c2280573e33fd9ccf3f"],["/parcel-html-transpiler.e0273d5a.worker.js","30ea486770f7c6810ddd14779a16ab2d"],["/public/sse-hooks/sse-hooks.e15ace8ccace5398a721ffec81f121de.js","fcf326a20ca26b03764ea04d89226d74"],["/pug-transpiler.41006669.worker.js","682a4ee1375b7a450d5c30f4d12f58c3"],["/sass-transpiler.d0a9e805.worker.js","a8bad35e983371aa1fcaf14e339b6594"],["/static/js/0.483b0f0f9.chunk.js","fa359f7a91d420c697b2cd32abf1efcc"],["/static/js/1.390d5cd6d.chunk.js","6165d3a1070236dd592b56ea5c0ed0ef"],["/static/js/2.f916e8469.chunk.js","33c6fa2da9152736a30393727266bed5"],["/static/js/3.732764890.chunk.js","d93efb1ed224e29bfca8b441f44bdf03"],["/static/js/4.a87895b63.chunk.js","5e493f232482b71d44d6cc3235added7"],["/static/js/5.029c574e1.chunk.js","db2caa3519e4e912c3aba0a1876c40fa"],["/static/js/6.5df64e83c.chunk.js","c20b5025e336e6e518f08c356dca8481"],["/static/js/7.33c8239f0.chunk.js","ba8d525f71ca58aae1d1d443f574e1d9"],["/static/js/8.ae1ec3a24.chunk.js","7705f0ab7b47571f23742c318db241f5"],["/static/js/9.2553176dc.chunk.js","2244922ce16f67604917935b16eff3fa"],["/static/js/css-loader.64087c7f5.chunk.js","97ce5128d436ac3bf658e2e52c3ed997"],["/static/js/css-modules-loader-core.2b4823c95.chunk.js","47857579c25efa9a481b4d495d44d048"],["/static/js/default~sandbox~sandbox-startup.19e4d6b87.chunk.js","bf7f9c7ab3198e17222b1c0c07f18b4a"],["/static/js/postcss-compiler.78d728d62.chunk.js","0d71e73dfaa9201a21fb27577a04a122"],["/static/js/sandbox-startup.a0ea8d1cb.js","ac2deea2340abb2a340a145104ab6999"],["/static/js/sandbox.7734067cf.js","aab5e4f2591010b8279bf85d839ccd83"],["/static/js/vendors~css-modules-loader-core.05c653935.chunk.js","6b1c0452ceb7c0caedc80135c7efe7ee"],["/static/js/vendors~postcss-compiler.950b69b0b.chunk.js","116945c36c9ded3882f2a207bff59463"],["/static/js/vendors~postcss-compiler~vue-style-compiler.49745dd34.chunk.js","04eb43274ddc521f94be81902ddd2815"],["/static/js/vendors~react-devtools-backend.ea71e47fe.chunk.js","d44eceeb50526174ac542c55b0fdc81b"],["/static/js/vendors~sandbox-startup.ca8a95b40.chunk.js","c3242e24b4873b131f143a6e4ea6fa56"],["/static/js/vendors~sandbox.ecbcf4e6a.chunk.js","379411d4f38eab2b9065b80118dae5d8"],["/static/js/vendors~vue-loader~vue-selector~vue-template-compiler.869041708.chunk.js","7f80bdb5ac273b9832e0eabbfd818973"],["/static/js/vendors~vue-style-compiler.8f51b5006.chunk.js","09770dd878b6edf13c75e3c5e2feac80"],["/static/js/vendors~vue-template-compiler.a8c77cdee.chunk.js","362edea8f41e276d5d8338915d6202e3"],["/static/js/vue-loader.36a4d8407.chunk.js","934c8ae012d99cf2828d8e079f37d644"],["/static/js/vue-selector.91b0cc6f0.chunk.js","093e1fe7b7ee09f07e284f63150e7c32"],["/static/js/vue-style-compiler.f0f11a7be.chunk.js","b4ee376dc9d9b6c6323f8065fa946d71"],["/static/js/vue-template-compiler.b8f7afc7a.chunk.js","5d78f12e4e02a582a5099ec52fd400ed"],["/stylus-transpiler.428164ba.worker.js","482bf1091ef7bf7f33f60cb7278cc8cf"],["/svelte-transpiler.9ca0e0b3.worker.js","a582ce60f1efe93cb603671d1419ab25"],["/sw.80f6d573.worker.js","80f6d573899e302d89e03a724edc3a02"],["/transform-cx-jsx.babel-transpiler.ef09383f.worker.js","667463990c787d5ffeec9db75ce28e83"],["/typescript-transpiler.1585b49f.worker.js","156a109dd1d06e57470b0e5c6824c77c"]],cacheName="sw-precache-v3-code-sandbox-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var a=new URL(e);return r&&a.pathname.match(r)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),a=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted(["\\/s\\/"],e.request.url)&&(n=new URL("/app.html",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).toolbox=e()}}(function(){return function e(t,n,r){function a(c,s){if(!n[c]){if(!t[c]){var i="function"==typeof require&&require;if(!s&&i)return i(c,!0);if(o)return o(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var f=n[c]={exports:{}};t[c][0].call(f.exports,function(e){var n=t[c][1][e];return a(n||e)},f,f.exports,e,t,n,r)}return n[c].exports}for(var o="function"==typeof require&&require,c=0;c<r.length;c++)a(r[c]);return a}({1:[function(e,t,n){function r(e,t){((t=t||{}).debug||i.debug)&&console.log("[sw-toolbox] "+e)}function a(e){var t;return e&&e.cache&&(t=e.cache.name),t=t||i.cache.name,caches.open(t)}function o(e,t,n){var a=e.url,o=n.maxAgeSeconds,c=n.maxEntries,s=n.name,i=Date.now();return r("Updating LRU order for "+a+". Max entries is "+c+", max age is "+o),u.getDb(s).then(function(e){return u.setTimestampForUrl(e,a,i)}).then(function(e){return u.expireEntries(e,c,o,i)}).then(function(e){r("Successfully updated IDB.");var n=e.map(function(e){return t.delete(e)});return Promise.all(n).then(function(){r("Done with cache cleanup.")})}).catch(function(e){r(e)})}function c(e){var t=Array.isArray(e);if(t&&e.forEach(function(e){"string"==typeof e||e instanceof Request||(t=!1)}),!t)throw new TypeError("The precache method expects either an array of strings and/or Requests or a Promise that resolves to an array of strings and/or Requests.");return e}var s,i=e("./options"),u=e("./idb-cache-expiration");t.exports={debug:r,fetchAndCache:function(e,t){var n=(t=t||{}).successResponses||i.successResponses;return fetch(e.clone()).then(function(r){return"GET"===e.method&&n.test(r.status)&&a(t).then(function(n){n.put(e,r).then(function(){var r=t.cache||i.cache;(r.maxEntries||r.maxAgeSeconds)&&r.name&&function(e,t,n){var r=o.bind(null,e,t,n);s=s?s.then(r):r()}(e,n,r)})}),r.clone()})},openCache:a,renameCache:function(e,t,n){return r("Renaming cache: ["+e+"] to ["+t+"]",n),caches.delete(t).then(function(){return Promise.all([caches.open(e),caches.open(t)]).then(function(t){var n=t[0],r=t[1];return n.keys().then(function(e){return Promise.all(e.map(function(e){return n.match(e).then(function(t){return r.put(e,t)})}))}).then(function(){return caches.delete(e)})})})},cache:function(e,t){return a(t).then(function(t){return t.add(e)})},uncache:function(e,t){return a(t).then(function(t){return t.delete(e)})},precache:function(e){e instanceof Promise||c(e),i.preCacheItems=i.preCacheItems.concat(e)},validatePrecacheInput:c,isResponseFresh:function(e,t,n){if(!e)return!1;if(t){var r=e.headers.get("date");if(r&&new Date(r).getTime()+1e3*t<n)return!1}return!0}}},{"./idb-cache-expiration":2,"./options":4}],2:[function(e,t,n){var r="sw-toolbox-",a=1,o="store",c="url",s="timestamp",i={};t.exports={getDb:function(e){return e in i||(i[e]=function(e){return new Promise(function(t,n){var i=indexedDB.open(r+e,a);i.onupgradeneeded=function(){i.result.createObjectStore(o,{keyPath:c}).createIndex(s,s,{unique:!1})},i.onsuccess=function(){t(i.result)},i.onerror=function(){n(i.error)}})}(e)),i[e]},setTimestampForUrl:function(e,t,n){return new Promise(function(r,a){var c=e.transaction(o,"readwrite");c.objectStore(o).put({url:t,timestamp:n}),c.oncomplete=function(){r(e)},c.onabort=function(){a(c.error)}})},expireEntries:function(e,t,n,r){return function(e,t,n){return t?new Promise(function(r,a){var i=1e3*t,u=[],f=e.transaction(o,"readwrite"),h=f.objectStore(o);h.index(s).openCursor().onsuccess=function(e){var t=e.target.result;if(t&&n-i>t.value[s]){var r=t.value[c];u.push(r),h.delete(r),t.continue()}},f.oncomplete=function(){r(u)},f.onabort=a}):Promise.resolve([])}(e,n,r).then(function(n){return function(e,t){return t?new Promise(function(n,r){var a=[],i=e.transaction(o,"readwrite"),u=i.objectStore(o),f=u.index(s),h=f.count();f.count().onsuccess=function(){var e=h.result;e>t&&(f.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var o=r.value[c];a.push(o),u.delete(o),e-a.length>t&&r.continue()}})},i.oncomplete=function(){n(a)},i.onabort=r}):Promise.resolve([])}(e,t).then(function(e){return n.concat(e)})})}}},{}],3:[function(e,t,n){function r(e){return e.reduce(function(e,t){return e.concat(t)},[])}e("serviceworker-cache-polyfill");var a=e("./helpers"),o=e("./router"),c=e("./options");t.exports={fetchListener:function(e){var t=o.match(e.request);t?e.respondWith(t(e.request)):o.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(o.default(e.request))},activateListener:function(e){a.debug("activate event fired");var t=c.cache.name+"$$$inactive$$$";e.waitUntil(a.renameCache(t,c.cache.name))},installListener:function(e){var t=c.cache.name+"$$$inactive$$$";a.debug("install event fired"),a.debug("creating cache ["+t+"]"),e.waitUntil(a.openCache({cache:{name:t}}).then(function(e){return Promise.all(c.preCacheItems).then(r).then(a.validatePrecacheInput).then(function(t){return a.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){var r=new URL("./",self.location).pathname,a=e("path-to-regexp"),o=function(e,t,n,o){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=r+t),this.keys=[],this.regexp=a(t,this.keys)),this.method=e,this.options=o,this.handler=n};o.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=o},{"path-to-regexp":15}],6:[function(e,t,n){var r=e("./route"),a=e("./helpers"),o=function(e,t){for(var n=e.entries(),r=n.next(),a=[];!r.done;){new RegExp(r.value[0]).test(t)&&a.push(r.value[1]),r=n.next()}return a},c=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){c.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),c.prototype.add=function(e,t,n,o){var c;o=o||{},t instanceof RegExp?c=RegExp:c=(c=o.origin||self.location.origin)instanceof RegExp?c.source:function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(c),e=e.toLowerCase();var s=new r(e,t,n,o);this.routes.has(c)||this.routes.set(c,new Map);var i=this.routes.get(c);i.has(e)||i.set(e,new Map);var u=i.get(e),f=s.regexp||s.fullUrlRegExp;u.has(f.source)&&a.debug('"'+t+'" resolves to same regex as existing route.'),u.set(f.source,s)},c.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,a=n.pathname;return this._match(e,o(this.routes,r),a)||this._match(e,[this.routes.get(RegExp)],t)},c.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r<t.length;r++){var a=t[r],c=a&&a.get(e.toLowerCase());if(c){var s=o(c,n);if(s.length>0)return s[0].makeHandler(n)}}return null},c.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new c},{"./helpers":1,"./route":5}],7:[function(e,t,n){var r=e("../options"),a=e("../helpers");t.exports=function(e,t,n){return n=n||{},a.debug("Strategy: cache first ["+e.url+"]",n),a.openCache(n).then(function(t){return t.match(e).then(function(t){var o=n.cache||r.cache,c=Date.now();return a.isResponseFresh(t,o.maxAgeSeconds,c)?t:a.fetchAndCache(e,n)})})}},{"../helpers":1,"../options":4}],8:[function(e,t,n){var r=e("../options"),a=e("../helpers");t.exports=function(e,t,n){return n=n||{},a.debug("Strategy: cache only ["+e.url+"]",n),a.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||r.cache,o=Date.now();if(a.isResponseFresh(e,t.maxAgeSeconds,o))return e})})}},{"../helpers":1,"../options":4}],9:[function(e,t,n){var r=e("../helpers"),a=e("./cacheOnly");t.exports=function(e,t,n){return r.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(o,c){var s=!1,i=[],u=function(e){i.push(e.toString()),s?c(new Error('Both cache and network failed: "'+i.join('", "')+'"')):s=!0},f=function(e){e instanceof Response?o(e):u("No result returned")};r.fetchAndCache(e.clone(),n).then(f,u),a(e,t,n).then(f,u)})}},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){var r=e("../options"),a=e("../helpers");t.exports=function(e,t,n){var o=(n=n||{}).successResponses||r.successResponses,c=n.networkTimeoutSeconds||r.networkTimeoutSeconds;return a.debug("Strategy: network first ["+e.url+"]",n),a.openCache(n).then(function(t){var s,i,u=[];if(c){var f=new Promise(function(o){s=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||r.cache,c=Date.now(),s=t.maxAgeSeconds;a.isResponseFresh(e,s,c)&&o(e)})},1e3*c)});u.push(f)}var h=a.fetchAndCache(e,n).then(function(e){if(s&&clearTimeout(s),o.test(e.status))return e;throw a.debug("Response was an HTTP error: "+e.statusText,n),i=e,new Error("Bad response")}).catch(function(r){return a.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(i)return i;throw r})});return u.push(h),Promise.race(u)})}},{"../helpers":1,"../options":4}],12:[function(e,t,n){var r=e("../helpers");t.exports=function(e,t,n){return r.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}},{"../helpers":1}],13:[function(e,t,n){var r=e("./options"),a=e("./router"),o=e("./helpers"),c=e("./strategies"),s=e("./listeners");o.debug("Service Worker Toolbox is loading"),self.addEventListener("install",s.installListener),self.addEventListener("activate",s.activateListener),self.addEventListener("fetch",s.fetchListener),t.exports={networkOnly:c.networkOnly,networkFirst:c.networkFirst,cacheOnly:c.cacheOnly,cacheFirst:c.cacheFirst,fastest:c.fastest,router:a,options:r,cache:o.cache,uncache:o.uncache,precache:o.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],a=0,o=0,c="",u=t&&t.delimiter||"/";null!=(n=p.exec(e));){var f=n[0],h=n[1],l=n.index;if(c+=e.slice(o,l),o=l+f.length,h)c+=h[1];else{var d=e[o],m=n[2],b=n[3],v=n[4],g=n[5],w=n[6],x=n[7];c&&(r.push(c),c="");var y=null!=m&&null!=d&&d!==m,j="+"===w||"*"===w,k="?"===w||"*"===w,E=n[2]||u,R=v||g;r.push({name:b||a++,prefix:m||"",delimiter:E,optional:k,repeat:j,partial:y,asterisk:!!x,pattern:R?i(R):x?".*":"[^"+s(E)+"]+?"})}}return o<e.length&&(c+=e.substr(o)),c&&r.push(c),r}function a(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function o(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var c="",s=n||{},i=(r||{}).pretty?a:encodeURIComponent,u=0;u<e.length;u++){var f=e[u];if("string"!=typeof f){var h,l=s[f.name];if(null==l){if(f.optional){f.partial&&(c+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(d(l)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var p=0;p<l.length;p++){if(h=i(l[p]),!t[u].test(h))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+JSON.stringify(h)+"`");c+=(0===p?f.prefix:f.delimiter)+h}}else{if(h=f.asterisk?o(l):i(l),!t[u].test(h))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+h+'"');c+=f.prefix+h}}else c+=f}return c}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function i(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function h(e,t,n){d(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,a=!1!==n.end,o="",c=0;c<e.length;c++){var i=e[c];if("string"==typeof i)o+=s(i);else{var h=s(i.prefix),l="(?:"+i.pattern+")";t.push(i),i.repeat&&(l+="(?:"+h+l+")*"),o+=l=i.optional?i.partial?h+"("+l+")?":"(?:"+h+"("+l+"))?":h+"("+l+")"}}var p=s(n.delimiter||"/"),m=o.slice(-p.length)===p;return r||(o=(m?o.slice(0,-p.length):o)+"(?:"+p+"(?=$))?"),o+=a?"$":r&&m?"":"(?="+p+"|$)",u(new RegExp("^"+o,f(n)),t)}function l(e,t,n){return d(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):d(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(l(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return h(r(e,n),t,n)}(e,t,n)}var d=e("isarray");t.exports=l,t.exports.parse=r,t.exports.compile=function(e,t){return c(r(e,t))},t.exports.tokensToFunction=c,t.exports.tokensToRegExp=h;var p=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},{isarray:14}],16:[function(e,t,n){!function(){var e=Cache.prototype.addAll,t=navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);if(t)var n=t[1],r=parseInt(t[2]);e&&(!t||"Firefox"===n&&r>=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}),toolbox.router.get(/^https:\/\/unpkg\.com/,toolbox.cacheFirst,{cache:{maxEntries:300,name:"unpkg-cache"}}),toolbox.router.get(/cloudflare\.com/,toolbox.cacheFirst,{cache:{maxEntries:20,name:"cloudflare-cache"}}),toolbox.router.get(/\/vscode33/,toolbox.cacheFirst,{cache:{maximumFileSizeToCacheInBytes:104857600,name:"vscode"}}),toolbox.router.get(/vscode-extensions\//,toolbox.cacheFirst,{cache:{maximumFileSizeToCacheInBytes:104857600,name:"vscode-extensions"}});
\ No newline at end of file
{
"name": "CodeSandbox",
"short_name": "CodeSandbox",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
export * from './node/index';
export as namespace BrowserFS;
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
import { FileSystem, SynchronousFileSystem, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { File } from '../core/file';
import Stats from '../core/node_fs_stats';
import PreloadFile from '../generic/preload_file';
/**
* Configuration options for the AsyncMirror file system.
*/
export interface AsyncMirrorOptions {
sync: FileSystem;
async: FileSystem;
}
/**
* AsyncMirrorFS mirrors a synchronous filesystem into an asynchronous filesystem
* by:
*
* * Performing operations over the in-memory copy, while asynchronously pipelining them
* to the backing store.
* * During application loading, the contents of the async file system can be reloaded into
* the synchronous store, if desired.
*
* The two stores will be kept in sync. The most common use-case is to pair a synchronous
* in-memory filesystem with an asynchronous backing store.
*
* Example: Mirroring an IndexedDB file system to an in memory file system. Now, you can use
* IndexedDB synchronously.
*
* ```javascript
* BrowserFS.configure({
* fs: "AsyncMirror",
* options: {
* sync: { fs: "InMemory" },
* async: { fs: "IndexedDB" }
* }
* }, function(e) {
* // BrowserFS is initialized and ready-to-use!
* });
* ```
*
* Or, alternatively:
*
* ```javascript
* BrowserFS.FileSystem.IndexedDB.Create(function(e, idbfs) {
* BrowserFS.FileSystem.InMemory.Create(function(e, inMemory) {
* BrowserFS.FileSystem.AsyncMirror({
* sync: inMemory, async: idbfs
* }, function(e, mirrored) {
* BrowserFS.initialize(mirrored);
* });
* });
* });
* ```
*/
export default class AsyncMirror extends SynchronousFileSystem implements FileSystem {
static readonly Name = "AsyncMirror";
static readonly Options: FileSystemOptions;
/**
* Constructs and initializes an AsyncMirror file system with the given options.
*/
static Create(opts: AsyncMirrorOptions, cb: BFSCallback<AsyncMirror>): void;
static isAvailable(): boolean;
/**
* Queue of pending asynchronous operations.
*/
private _queue;
private _queueRunning;
private _sync;
private _async;
private _isInitialized;
private _initializeCallbacks;
/**
* **Deprecated; use AsyncMirror.Create() method instead.**
*
* Mirrors the synchronous file system into the asynchronous file system.
*
* **IMPORTANT**: You must call `initialize` on the file system before it can be used.
* @param sync The synchronous file system to mirror the asynchronous file system to.
* @param async The asynchronous file system to mirror.
*/
constructor(sync: FileSystem, async: FileSystem);
getName(): string;
_syncSync(fd: PreloadFile<any>): void;
isReadOnly(): boolean;
supportsSynch(): boolean;
supportsLinks(): boolean;
supportsProps(): boolean;
renameSync(oldPath: string, newPath: string): void;
statSync(p: string, isLstat: boolean): Stats;
openSync(p: string, flag: FileFlag, mode: number): File;
unlinkSync(p: string): void;
rmdirSync(p: string): void;
mkdirSync(p: string, mode: number): void;
readdirSync(p: string): string[];
existsSync(p: string): boolean;
chmodSync(p: string, isLchmod: boolean, mode: number): void;
chownSync(p: string, isLchown: boolean, uid: number, gid: number): void;
utimesSync(p: string, atime: Date, mtime: Date): void;
/**
* Called once to load up files from async storage into sync storage.
*/
private _initialize;
private enqueueOp;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var file_system_1 = require("../core/file_system");
var api_error_1 = require("../core/api_error");
var file_flag_1 = require("../core/file_flag");
var preload_file_1 = require("../generic/preload_file");
var path = require("path");
/**
* We define our own file to interpose on syncSync() for mirroring purposes.
*/
var MirrorFile = /** @class */ (function (_super) {
__extends(MirrorFile, _super);
function MirrorFile(fs, path, flag, stat, data) {
return _super.call(this, fs, path, flag, stat, data) || this;
}
MirrorFile.prototype.syncSync = function () {
if (this.isDirty()) {
this._fs._syncSync(this);
this.resetDirty();
}
};
MirrorFile.prototype.closeSync = function () {
this.syncSync();
};
return MirrorFile;
}(preload_file_1.default));
/**
* AsyncMirrorFS mirrors a synchronous filesystem into an asynchronous filesystem
* by:
*
* * Performing operations over the in-memory copy, while asynchronously pipelining them
* to the backing store.
* * During application loading, the contents of the async file system can be reloaded into
* the synchronous store, if desired.
*
* The two stores will be kept in sync. The most common use-case is to pair a synchronous
* in-memory filesystem with an asynchronous backing store.
*
* Example: Mirroring an IndexedDB file system to an in memory file system. Now, you can use
* IndexedDB synchronously.
*
* ```javascript
* BrowserFS.configure({
* fs: "AsyncMirror",
* options: {
* sync: { fs: "InMemory" },
* async: { fs: "IndexedDB" }
* }
* }, function(e) {
* // BrowserFS is initialized and ready-to-use!
* });
* ```
*
* Or, alternatively:
*
* ```javascript
* BrowserFS.FileSystem.IndexedDB.Create(function(e, idbfs) {
* BrowserFS.FileSystem.InMemory.Create(function(e, inMemory) {
* BrowserFS.FileSystem.AsyncMirror({
* sync: inMemory, async: idbfs
* }, function(e, mirrored) {
* BrowserFS.initialize(mirrored);
* });
* });
* });
* ```
*/
var AsyncMirror = /** @class */ (function (_super) {
__extends(AsyncMirror, _super);
/**
* **Deprecated; use AsyncMirror.Create() method instead.**
*
* Mirrors the synchronous file system into the asynchronous file system.
*
* **IMPORTANT**: You must call `initialize` on the file system before it can be used.
* @param sync The synchronous file system to mirror the asynchronous file system to.
* @param async The asynchronous file system to mirror.
*/
function AsyncMirror(sync, async) {
var _this = _super.call(this) || this;
/**
* Queue of pending asynchronous operations.
*/
_this._queue = [];
_this._queueRunning = false;
_this._isInitialized = false;
_this._initializeCallbacks = [];
_this._sync = sync;
_this._async = async;
return _this;
}
/**
* Constructs and initializes an AsyncMirror file system with the given options.
*/
AsyncMirror.Create = function (opts, cb) {
try {
var fs_1 = new AsyncMirror(opts.sync, opts.async);
fs_1._initialize(function (e) {
if (e) {
cb(e);
}
else {
cb(null, fs_1);
}
});
}
catch (e) {
cb(e);
}
};
AsyncMirror.isAvailable = function () {
return true;
};
AsyncMirror.prototype.getName = function () {
return AsyncMirror.Name;
};
AsyncMirror.prototype._syncSync = function (fd) {
this._sync.writeFileSync(fd.getPath(), fd.getBuffer(), null, file_flag_1.FileFlag.getFileFlag('w'), fd.getStats().mode);
this.enqueueOp({
apiMethod: 'writeFile',
arguments: [fd.getPath(), fd.getBuffer(), null, fd.getFlag(), fd.getStats().mode]
});
};
AsyncMirror.prototype.isReadOnly = function () { return false; };
AsyncMirror.prototype.supportsSynch = function () { return true; };
AsyncMirror.prototype.supportsLinks = function () { return false; };
AsyncMirror.prototype.supportsProps = function () { return this._sync.supportsProps() && this._async.supportsProps(); };
AsyncMirror.prototype.renameSync = function (oldPath, newPath) {
this._sync.renameSync(oldPath, newPath);
this.enqueueOp({
apiMethod: 'rename',
arguments: [oldPath, newPath]
});
};
AsyncMirror.prototype.statSync = function (p, isLstat) {
return this._sync.statSync(p, isLstat);
};
AsyncMirror.prototype.openSync = function (p, flag, mode) {
// Sanity check: Is this open/close permitted?
var fd = this._sync.openSync(p, flag, mode);
fd.closeSync();
return new MirrorFile(this, p, flag, this._sync.statSync(p, false), this._sync.readFileSync(p, null, file_flag_1.FileFlag.getFileFlag('r')));
};
AsyncMirror.prototype.unlinkSync = function (p) {
this._sync.unlinkSync(p);
this.enqueueOp({
apiMethod: 'unlink',
arguments: [p]
});
};
AsyncMirror.prototype.rmdirSync = function (p) {
this._sync.rmdirSync(p);
this.enqueueOp({
apiMethod: 'rmdir',
arguments: [p]
});
};
AsyncMirror.prototype.mkdirSync = function (p, mode) {
this._sync.mkdirSync(p, mode);
this.enqueueOp({
apiMethod: 'mkdir',
arguments: [p, mode]
});
};
AsyncMirror.prototype.readdirSync = function (p) {
return this._sync.readdirSync(p);
};
AsyncMirror.prototype.existsSync = function (p) {
return this._sync.existsSync(p);
};
AsyncMirror.prototype.chmodSync = function (p, isLchmod, mode) {
this._sync.chmodSync(p, isLchmod, mode);
this.enqueueOp({
apiMethod: 'chmod',
arguments: [p, isLchmod, mode]
});
};
AsyncMirror.prototype.chownSync = function (p, isLchown, uid, gid) {
this._sync.chownSync(p, isLchown, uid, gid);
this.enqueueOp({
apiMethod: 'chown',
arguments: [p, isLchown, uid, gid]
});
};
AsyncMirror.prototype.utimesSync = function (p, atime, mtime) {
this._sync.utimesSync(p, atime, mtime);
this.enqueueOp({
apiMethod: 'utimes',
arguments: [p, atime, mtime]
});
};
/**
* Called once to load up files from async storage into sync storage.
*/
AsyncMirror.prototype._initialize = function (userCb) {
var _this = this;
var callbacks = this._initializeCallbacks;
var end = function (e) {
_this._isInitialized = !e;
_this._initializeCallbacks = [];
callbacks.forEach(function (cb) { return cb(e); });
};
if (!this._isInitialized) {
// First call triggers initialization, the rest wait.
if (callbacks.push(userCb) === 1) {
var copyDirectory_1 = function (p, mode, cb) {
if (p !== '/') {
_this._sync.mkdirSync(p, mode);
}
_this._async.readdir(p, function (err, files) {
var i = 0;
// NOTE: This function must not be in a lexically nested statement,
// such as an if or while statement. Safari refuses to run the
// script since it is undefined behavior.
function copyNextFile(err) {
if (err) {
cb(err);
}
else if (i < files.length) {
copyItem_1(path.join(p, files[i]), copyNextFile);
i++;
}
else {
cb();
}
}
if (err) {
cb(err);
}
else {
copyNextFile();
}
});
}, copyFile_1 = function (p, mode, cb) {
_this._async.readFile(p, null, file_flag_1.FileFlag.getFileFlag('r'), function (err, data) {
if (err) {
cb(err);
}
else {
try {
_this._sync.writeFileSync(p, data, null, file_flag_1.FileFlag.getFileFlag('w'), mode);
}
catch (e) {
err = e;
}
finally {
cb(err);
}
}
});
}, copyItem_1 = function (p, cb) {
_this._async.stat(p, false, function (err, stats) {
if (err) {
cb(err);
}
else if (stats.isDirectory()) {
copyDirectory_1(p, stats.mode, cb);
}
else {
copyFile_1(p, stats.mode, cb);
}
});
};
copyDirectory_1('/', 0, end);
}
}
else {
userCb();
}
};
AsyncMirror.prototype.enqueueOp = function (op) {
var _this = this;
this._queue.push(op);
if (!this._queueRunning) {
this._queueRunning = true;
var doNextOp_1 = function (err) {
if (err) {
throw new Error("WARNING: File system has desynchronized. Received following error: ".concat(err, "\n$"));
}
if (_this._queue.length > 0) {
var op_1 = _this._queue.shift(), args = op_1.arguments;
args.push(doNextOp_1);
_this._async[op_1.apiMethod].apply(_this._async, args);
}
else {
_this._queueRunning = false;
}
};
doNextOp_1();
}
};
AsyncMirror.Name = "AsyncMirror";
AsyncMirror.Options = {
sync: {
type: "object",
description: "The synchronous file system to mirror the asynchronous file system to.",
validator: function (v, cb) {
if (v && typeof (v['supportsSynch']) === "function" && v.supportsSynch()) {
cb();
}
else {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, "'sync' option must be a file system that supports synchronous operations"));
}
}
},
async: {
type: "object",
description: "The asynchronous file system to mirror."
}
};
return AsyncMirror;
}(file_system_1.SynchronousFileSystem));
exports.default = AsyncMirror;
//# sourceMappingURL=AsyncMirror.js.map
\ No newline at end of file
/// <reference types="node" />
import { BaseFileSystem, FileSystem, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { File } from '../core/file';
import Stats from '../core/node_fs_stats';
/**
* Configuration options for a HTTPRequest file system.
*/
export interface HTTPRequestOptions {
index?: string | object;
bundle?: string | object;
baseUrl?: string;
preferXHR?: boolean;
logReads?: boolean;
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
export default class BundledHTTPRequest extends BaseFileSystem implements FileSystem {
static readonly Name = "BundledHTTPRequest";
static readonly Options: FileSystemOptions;
/**
* Construct an HTTPRequest file system backend with the given options.
*/
static Create(opts: HTTPRequestOptions, cb: BFSCallback<BundledHTTPRequest>): void;
static isAvailable(): boolean;
readonly prefixUrl: string;
private _logReads;
private _index;
private _requestFileAsyncInternal;
private _requestFileSizeAsyncInternal;
private _requestFileSyncInternal;
private _requestFileSizeSyncInternal;
private constructor();
empty(): void;
getName(): string;
diskSpace(path: string, cb: (total: number, free: number) => void): void;
isReadOnly(): boolean;
supportsLinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
private logRead;
/**
* Special HTTPFS function: Preload the given file into the index.
* @param [String] path
* @param [BrowserFS.Buffer] buffer
*/
preloadFile(path: string, buffer: Buffer): void;
stat(path: string, isLstat: boolean, cb: BFSCallback<Stats>): void;
statSync(path: string, isLstat: boolean): Stats;
open(path: string, flags: FileFlag, mode: number, cb: BFSCallback<File>): void;
openSync(path: string, flags: FileFlag, mode: number): File;
readdir(path: string, cb: BFSCallback<string[]>): void;
readdirSync(path: string): string[];
/**
* We have the entire file as a buffer; optimize readFile.
*/
readFile(fname: string, encoding: string, flag: FileFlag, cb: BFSCallback<string | Buffer>): void;
/**
* Specially-optimized readfile.
*/
readFileSync(fname: string, encoding: string, flag: FileFlag): any;
private _getHTTPPath;
/**
* Asynchronously download the given file.
*/
private _requestFileAsync;
/**
* Synchronously download the given file.
*/
private _requestFileSync;
/**
* Only requests the HEAD content, for the file size.
*/
private _requestFileSizeAsync;
private _requestFileSizeSync;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var file_system_1 = require("../core/file_system");
var api_error_1 = require("../core/api_error");
var file_flag_1 = require("../core/file_flag");
var util_1 = require("../core/util");
var node_fs_stats_1 = require("../core/node_fs_stats");
var preload_file_1 = require("../generic/preload_file");
var xhr_1 = require("../generic/xhr");
var fetch_1 = require("../generic/fetch");
var file_index_1 = require("../generic/file_index");
/**
* Try to convert the given buffer into a string, and pass it to the callback.
* Optimization that removes the needed try/catch into a helper function, as
* this is an uncommon case.
* @hidden
*/
function tryToString(buff, encoding, cb) {
try {
cb(null, buff.toString(encoding));
}
catch (e) {
cb(e);
}
}
function syncNotAvailableError() {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP, "Synchronous HTTP download methods are not available in this environment.");
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
var BundledHTTPRequest = /** @class */ (function (_super) {
__extends(BundledHTTPRequest, _super);
function BundledHTTPRequest(index, bundle, prefixUrl, preferXHR, logReads) {
if (bundle === void 0) { bundle = {}; }
if (prefixUrl === void 0) { prefixUrl = ''; }
if (preferXHR === void 0) { preferXHR = false; }
if (logReads === void 0) { logReads = false; }
var _this = _super.call(this) || this;
// prefix_url must end in a directory separator.
if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') {
prefixUrl = prefixUrl + '/';
}
_this.prefixUrl = prefixUrl;
_this._logReads = logReads;
_this._index = file_index_1.FileIndex.fromListing(index);
_this._index.fileIterator(function (file, path) {
var bundleInfo = bundle[path];
if (bundleInfo !== undefined) {
if (typeof bundleInfo === 'number') {
file.size = bundleInfo;
}
else if (!file.fileData) {
var buffer = new Buffer(bundleInfo);
file.size = buffer.length;
file.fileData = buffer;
}
}
});
if (fetch_1.fetchIsAvailable && (!preferXHR || !xhr_1.xhrIsAvailable)) {
_this._requestFileAsyncInternal = fetch_1.fetchFileAsync;
_this._requestFileSizeAsyncInternal = fetch_1.fetchFileSizeAsync;
}
else {
_this._requestFileAsyncInternal = xhr_1.asyncDownloadFile;
_this._requestFileSizeAsyncInternal = xhr_1.getFileSizeAsync;
}
if (xhr_1.xhrIsAvailable) {
_this._requestFileSyncInternal = xhr_1.syncDownloadFile;
_this._requestFileSizeSyncInternal = xhr_1.getFileSizeSync;
}
else {
_this._requestFileSyncInternal = syncNotAvailableError;
_this._requestFileSizeSyncInternal = syncNotAvailableError;
}
return _this;
}
/**
* Construct an HTTPRequest file system backend with the given options.
*/
BundledHTTPRequest.Create = function (opts, cb) {
if (opts.index === undefined) {
opts.index = "index.json";
}
if (typeof (opts.index) === "string") {
(0, xhr_1.asyncDownloadFile)(opts.index, "json", function (e, data) {
if (e) {
cb(e);
}
else {
if (typeof opts.bundle === 'string') {
(0, xhr_1.asyncDownloadFile)(opts.bundle, "json", function (e, bundleData) {
if (e) {
console.error("Couldn't preload bundle", e);
}
cb(null, new BundledHTTPRequest(data, bundleData || {}, opts.baseUrl, opts.preferXHR, opts.logReads));
});
}
else {
cb(null, new BundledHTTPRequest(data, (opts.bundle || {}), opts.baseUrl, opts.preferXHR, opts.logReads));
}
}
});
}
else {
var index_1 = opts.index;
if (typeof opts.bundle === 'string') {
(0, xhr_1.asyncDownloadFile)(opts.bundle, "json", function (e, bundleData) {
if (e) {
console.error("Couldn't preload bundle", e);
}
cb(null, new BundledHTTPRequest(index_1, bundleData || {}, opts.baseUrl, opts.preferXHR, opts.logReads));
});
}
else {
cb(null, new BundledHTTPRequest(index_1, (opts.bundle || {}), opts.baseUrl, opts.preferXHR, opts.logReads));
}
}
};
BundledHTTPRequest.isAvailable = function () {
return xhr_1.xhrIsAvailable || fetch_1.fetchIsAvailable;
};
BundledHTTPRequest.prototype.empty = function () {
this._index.fileIterator(function (file) {
file.fileData = null;
});
};
BundledHTTPRequest.prototype.getName = function () {
return BundledHTTPRequest.Name;
};
BundledHTTPRequest.prototype.diskSpace = function (path, cb) {
// Read-only file system. We could calculate the total space, but that's not
// important right now.
cb(0, 0);
};
BundledHTTPRequest.prototype.isReadOnly = function () {
return true;
};
BundledHTTPRequest.prototype.supportsLinks = function () {
return false;
};
BundledHTTPRequest.prototype.supportsProps = function () {
return false;
};
BundledHTTPRequest.prototype.supportsSynch = function () {
// Synchronous operations are only available via the XHR interface for now.
return xhr_1.xhrIsAvailable;
};
BundledHTTPRequest.prototype.logRead = function (path, content) {
var ctx = (self || global);
ctx.fileReads = ctx.fileReads || {};
if (!ctx.fileReads[path] || typeof ctx.fileReads[path] === 'number') {
ctx.fileReads[path] = content;
}
};
/**
* Special HTTPFS function: Preload the given file into the index.
* @param [String] path
* @param [BrowserFS.Buffer] buffer
*/
BundledHTTPRequest.prototype.preloadFile = function (path, buffer) {
var inode = this._index.getInode(path);
if ((0, file_index_1.isFileInode)(inode)) {
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
var stats = inode.getData();
stats.size = buffer.length;
stats.fileData = buffer;
}
else {
throw api_error_1.ApiError.EISDIR(path);
}
};
BundledHTTPRequest.prototype.stat = function (path, isLstat, cb) {
var _this = this;
var inode = this._index.getInode(path);
if (inode === null) {
return cb(api_error_1.ApiError.ENOENT(path));
}
var stats;
if ((0, file_index_1.isFileInode)(inode)) {
stats = inode.getData();
// At this point, a non-opened file will still have default stats from the listing.
if (stats.size < 0) {
this._requestFileSizeAsync(path, function (e, size) {
if (e) {
return cb(e);
}
if (_this._logReads) {
// Log the read
_this.logRead(path, size);
}
stats.size = size;
cb(null, node_fs_stats_1.default.clone(stats));
});
}
else {
cb(null, node_fs_stats_1.default.clone(stats));
}
}
else if ((0, file_index_1.isDirInode)(inode)) {
stats = inode.getStats();
cb(null, stats);
}
else {
cb(api_error_1.ApiError.FileError(api_error_1.ErrorCode.EINVAL, path));
}
};
BundledHTTPRequest.prototype.statSync = function (path, isLstat) {
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
var stats;
if ((0, file_index_1.isFileInode)(inode)) {
stats = inode.getData();
// At this point, a non-opened file will still have default stats from the listing.
if (stats.size < 0) {
var size = this._requestFileSizeSync(path);
if (this._logReads) {
// Log the read
this.logRead(path, size);
}
stats.size = size;
}
}
else if ((0, file_index_1.isDirInode)(inode)) {
stats = inode.getStats();
}
else {
throw api_error_1.ApiError.FileError(api_error_1.ErrorCode.EINVAL, path);
}
return stats;
};
BundledHTTPRequest.prototype.open = function (path, flags, mode, cb) {
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path));
}
var self = this;
// Check if the path exists, and is a file.
var inode = this._index.getInode(path);
if (inode === null) {
return cb(api_error_1.ApiError.ENOENT(path));
}
if ((0, file_index_1.isFileInode)(inode)) {
var stats_1 = inode.getData();
switch (flags.pathExistsAction()) {
case file_flag_1.ActionType.THROW_EXCEPTION:
case file_flag_1.ActionType.TRUNCATE_FILE:
return cb(api_error_1.ApiError.EEXIST(path));
case file_flag_1.ActionType.NOP:
// Use existing file contents.
// XXX: Uh, this maintains the previously-used flag.
if (stats_1.fileData) {
return cb(null, new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.clone(stats_1), stats_1.fileData));
}
// @todo be lazier about actually requesting the file
this._requestFileAsync(path, 'buffer', function (err, buffer) {
if (err) {
return cb(err);
}
// we don't initially have file sizes
stats_1.size = buffer.length;
stats_1.fileData = buffer;
return cb(null, new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.clone(stats_1), buffer));
});
break;
default:
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, 'Invalid FileMode object.'));
}
}
else {
return cb(api_error_1.ApiError.EISDIR(path));
}
};
BundledHTTPRequest.prototype.openSync = function (path, flags, mode) {
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path);
}
// Check if the path exists, and is a file.
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
if ((0, file_index_1.isFileInode)(inode)) {
var stats = inode.getData();
switch (flags.pathExistsAction()) {
case file_flag_1.ActionType.THROW_EXCEPTION:
case file_flag_1.ActionType.TRUNCATE_FILE:
throw api_error_1.ApiError.EEXIST(path);
case file_flag_1.ActionType.NOP:
// Use existing file contents.
// XXX: Uh, this maintains the previously-used flag.
if (stats.fileData) {
return new preload_file_1.NoSyncFile(this, path, flags, node_fs_stats_1.default.clone(stats), stats.fileData);
}
// @todo be lazier about actually requesting the file
var buffer = this._requestFileSync(path, 'buffer');
// we don't initially have file sizes
stats.size = buffer.length;
stats.fileData = buffer;
return new preload_file_1.NoSyncFile(this, path, flags, node_fs_stats_1.default.clone(stats), buffer);
default:
throw new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, 'Invalid FileMode object.');
}
}
else {
throw api_error_1.ApiError.EISDIR(path);
}
};
BundledHTTPRequest.prototype.readdir = function (path, cb) {
try {
cb(null, this.readdirSync(path));
}
catch (e) {
cb(e);
}
};
BundledHTTPRequest.prototype.readdirSync = function (path) {
// Check if it exists.
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
else if ((0, file_index_1.isDirInode)(inode)) {
return inode.getListing();
}
else {
throw api_error_1.ApiError.ENOTDIR(path);
}
};
/**
* We have the entire file as a buffer; optimize readFile.
*/
BundledHTTPRequest.prototype.readFile = function (fname, encoding, flag, cb) {
var _this = this;
// Wrap cb in file closing code.
var oldCb = cb;
// Get file.
this.open(fname, flag, 0x1a4, function (err, fd) {
if (err) {
return cb(err);
}
cb = function (err, arg) {
fd.close(function (err2) {
if (!err) {
err = err2;
}
return oldCb(err, arg);
});
};
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (_this._logReads) {
// Log the read
_this.logRead(fname, fdBuff.toString());
}
if (encoding === null) {
cb(err, (0, util_1.copyingSlice)(fdBuff));
}
else {
tryToString(fdBuff, encoding, cb);
}
});
};
/**
* Specially-optimized readfile.
*/
BundledHTTPRequest.prototype.readFileSync = function (fname, encoding, flag) {
// Get file.
var fd = this.openSync(fname, flag, 0x1a4);
try {
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (this._logReads) {
// Log the read
this.logRead(fname, fdBuff.toString());
}
if (encoding === null) {
return (0, util_1.copyingSlice)(fdBuff);
}
return fdBuff.toString(encoding);
}
finally {
fd.closeSync();
}
};
BundledHTTPRequest.prototype._getHTTPPath = function (filePath) {
if (filePath.charAt(0) === '/') {
filePath = filePath.slice(1);
}
return this.prefixUrl + filePath;
};
BundledHTTPRequest.prototype._requestFileAsync = function (p, type, cb) {
this._requestFileAsyncInternal(this._getHTTPPath(p), type, cb);
};
BundledHTTPRequest.prototype._requestFileSync = function (p, type) {
return this._requestFileSyncInternal(this._getHTTPPath(p), type);
};
/**
* Only requests the HEAD content, for the file size.
*/
BundledHTTPRequest.prototype._requestFileSizeAsync = function (path, cb) {
this._requestFileSizeAsyncInternal(this._getHTTPPath(path), cb);
};
BundledHTTPRequest.prototype._requestFileSizeSync = function (path) {
return this._requestFileSizeSyncInternal(this._getHTTPPath(path));
};
BundledHTTPRequest.Name = "BundledHTTPRequest";
BundledHTTPRequest.Options = {
index: {
type: ["string", "object"],
optional: true,
description: "URL to a file index as a JSON file or the file index object itself, generated with the make_http_index script. Defaults to `index.json`."
},
bundle: {
type: ["string", "object"],
optional: true,
description: "URL to a JSON file with the files preloaded."
},
baseUrl: {
type: "string",
optional: true,
description: "Used as the URL prefix for fetched files. Default: Fetch files relative to the index."
},
preferXHR: {
type: "boolean",
optional: true,
description: "Whether to prefer XmlHttpRequest or fetch for async operations if both are available. Default: false"
},
logReads: {
type: "boolean",
optional: true,
description: "Whether to log all reads of files and put them in an object, this is useful for getting initial bundles that you can put in 'bundle' option. Values are put on `global.readFiles`. Default: false."
}
};
return BundledHTTPRequest;
}(file_system_1.BaseFileSystem));
exports.default = BundledHTTPRequest;
//# sourceMappingURL=BundledHTTPRequest.js.map
\ No newline at end of file
/// <reference types="node" />
import { File } from '../core/file';
import { FileFlag } from '../core/file_flag';
import { BFSCallback, BFSOneArgCallback, FileSystem, FileSystemOptions, SynchronousFileSystem } from '../core/file_system';
import { default as Stats } from '../core/node_fs_stats';
export interface IModule {
path: string;
updatedAt: string;
insertedAt: string;
}
export type IFile = IModule & {
code: string | undefined;
savedCode: string | null;
isBinary: boolean;
type: 'file';
};
export type IDirectory = IModule & {
type: 'directory';
};
export interface IManager {
getSandboxFs: () => {
[path: string]: IFile | IDirectory;
};
getJwt: () => string;
}
export interface ICodeSandboxFileSystemOptions {
api: IManager;
}
export default class CodeSandboxEditorFS extends SynchronousFileSystem implements FileSystem {
static readonly Name = "CodeSandboxEditorFS";
static readonly Options: FileSystemOptions;
/**
* Creates an InMemoryFileSystem instance.
*/
static Create(options: ICodeSandboxFileSystemOptions, cb: BFSCallback<CodeSandboxEditorFS>): void;
static isAvailable(): boolean;
private api;
constructor(api: IManager);
getName(): string;
isReadOnly(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
empty(mainCb: BFSOneArgCallback): void;
renameSync(oldPath: string, newPath: string): void;
statSync(p: string, isLstate: boolean): Stats;
createFileSync(p: string, flag: FileFlag, mode: number): File;
open(p: string, flag: FileFlag, mode: number, cb: BFSCallback<File>): void;
openFileSync(p: string, flag: FileFlag, mode: number): File;
writeFileSync(): void;
rmdirSync(p: string): void;
mkdirSync(p: string): void;
unlinkSync(p: string): void;
readdirSync(path: string): string[];
_sync(p: string, data: Buffer, cb: BFSCallback<Stats>): void;
_syncSync(p: string, data: Buffer): void;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var api_error_1 = require("../core/api_error");
/* eslint-disable */
var file_system_1 = require("../core/file_system");
var node_fs_stats_1 = require("../core/node_fs_stats");
var preload_file_1 = require("../generic/preload_file");
function blobToBuffer(blob, cb) {
if (typeof Blob === 'undefined' || !(blob instanceof Blob)) {
throw new Error('first argument must be a Blob');
}
if (typeof cb !== 'function') {
throw new Error('second argument must be a function');
}
var reader = new FileReader();
function onLoadEnd(e) {
reader.removeEventListener('loadend', onLoadEnd, false);
if (e.error) {
cb(e.error);
}
else {
// @ts-ignore
cb(null, Buffer.from(reader.result));
}
}
reader.addEventListener('loadend', onLoadEnd, false);
reader.readAsArrayBuffer(blob);
}
function getCode(savedCode, code) {
if (savedCode === null) {
return code || '';
}
return savedCode || '';
}
var CodeSandboxFile = /** @class */ (function (_super) {
__extends(CodeSandboxFile, _super);
function CodeSandboxFile(_fs, _path, _flag, _stat, contents) {
return _super.call(this, _fs, _path, _flag, _stat, contents) || this;
}
CodeSandboxFile.prototype.sync = function (cb) {
var _this = this;
if (this.isDirty()) {
var buffer = this.getBuffer();
this._fs._sync(this.getPath(), buffer, function (e, stat) {
if (!e) {
_this.resetDirty();
}
cb(e);
});
}
else {
cb();
}
};
CodeSandboxFile.prototype.close = function (cb) {
this.sync(cb);
};
CodeSandboxFile.prototype.syncSync = function () {
if (this.isDirty()) {
this._fs._syncSync(this.getPath(), this.getBuffer());
this.resetDirty();
}
};
CodeSandboxFile.prototype.closeSync = function () {
this.syncSync();
};
return CodeSandboxFile;
}(preload_file_1.default));
var CodeSandboxEditorFS = /** @class */ (function (_super) {
__extends(CodeSandboxEditorFS, _super);
function CodeSandboxEditorFS(api) {
var _this = _super.call(this) || this;
_this.api = api;
return _this;
}
/**
* Creates an InMemoryFileSystem instance.
*/
CodeSandboxEditorFS.Create = function (options, cb) {
cb(null, new CodeSandboxEditorFS(options.api));
};
CodeSandboxEditorFS.isAvailable = function () {
return true;
};
CodeSandboxEditorFS.prototype.getName = function () {
return 'CodeSandboxEditorFS';
};
CodeSandboxEditorFS.prototype.isReadOnly = function () {
return false;
};
CodeSandboxEditorFS.prototype.supportsProps = function () {
return false;
};
CodeSandboxEditorFS.prototype.supportsSynch = function () {
return true;
};
CodeSandboxEditorFS.prototype.empty = function (mainCb) {
throw new Error('Empty not supported');
};
CodeSandboxEditorFS.prototype.renameSync = function (oldPath, newPath) {
throw new Error('Rename not supported');
};
CodeSandboxEditorFS.prototype.statSync = function (p, isLstate) {
var modules = this.api.getSandboxFs();
var moduleInfo = modules[p];
if (!moduleInfo) {
var modulesStartingWithPath = Object.keys(modules).filter(function (pa) { return pa.startsWith(p.endsWith('/') ? p : p + '/') || pa === p; });
if (modulesStartingWithPath.length > 0) {
return new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 0);
}
else {
throw api_error_1.ApiError.FileError(api_error_1.ErrorCode.ENOENT, p);
}
}
if (moduleInfo.type === 'directory') {
return new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 4096, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
}
else {
return new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, getCode(moduleInfo.savedCode, moduleInfo.code).length, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
}
};
CodeSandboxEditorFS.prototype.createFileSync = function (p, flag, mode) {
throw new Error('Create file not supported');
};
CodeSandboxEditorFS.prototype.open = function (p, flag, mode, cb) {
var _this = this;
var moduleInfo = this.api.getSandboxFs()[p];
if (!moduleInfo) {
cb(api_error_1.ApiError.ENOENT(p));
return;
}
if (moduleInfo.type === 'directory') {
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 4096, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
cb(null, new CodeSandboxFile(this, p, flag, stats));
}
else {
var isBinary = moduleInfo.isBinary, savedCode = moduleInfo.savedCode, code = moduleInfo.code;
if (isBinary) {
var url = getCode(savedCode, code);
var jwt = this.api.getJwt && this.api.getJwt();
var sendAuth = jwt && new URL(url).origin === document.location.origin;
var headers = sendAuth ? {
Authorization: "Bearer ".concat(this.api.getJwt && this.api.getJwt())
} : {};
fetch(url, { headers: headers }).then(function (x) { return x.blob(); }).then(function (blob) {
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, blob.size, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
blobToBuffer(blob, function (err, r) {
if (err) {
cb(err);
return;
}
cb(undefined, new CodeSandboxFile(_this, p, flag, stats, r));
});
});
return;
}
var buffer = Buffer.from(getCode(savedCode, code));
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, buffer.length, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
cb(null, new CodeSandboxFile(this, p, flag, stats, buffer));
}
};
CodeSandboxEditorFS.prototype.openFileSync = function (p, flag, mode) {
var moduleInfo = this.api.getSandboxFs()[p];
if (!moduleInfo) {
throw api_error_1.ApiError.ENOENT(p);
}
if (moduleInfo.type === 'directory') {
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 4096, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
return new CodeSandboxFile(this, p, flag, stats);
}
else {
var savedCode = moduleInfo.savedCode, code = moduleInfo.code;
var buffer = Buffer.from(getCode(savedCode, code));
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, buffer.length, undefined, +new Date(), +new Date(moduleInfo.updatedAt), +new Date(moduleInfo.insertedAt));
return new CodeSandboxFile(this, p, flag, stats, buffer);
}
};
CodeSandboxEditorFS.prototype.writeFileSync = function () {
// Stubbed
};
CodeSandboxEditorFS.prototype.rmdirSync = function (p) {
// Stubbed
};
CodeSandboxEditorFS.prototype.mkdirSync = function (p) {
// Stubbed
};
CodeSandboxEditorFS.prototype.unlinkSync = function (p) {
// Stubbed
};
CodeSandboxEditorFS.prototype.readdirSync = function (path) {
var paths = Object.keys(this.api.getSandboxFs());
var p = path.endsWith('/') ? path : path + '/';
var pathsInDir = paths.filter(function (secondP) { return secondP.startsWith(p); });
if (pathsInDir.length === 0) {
return [];
}
var directChildren = new Set();
var currentPathLength = p.split('/').length;
pathsInDir
.filter(function (np) { return np.split('/').length >= currentPathLength; })
.forEach(function (np) {
var parts = np.split('/');
parts.length = currentPathLength;
directChildren.add(parts.join('/'));
});
var pathArray = Array.from(directChildren).map(function (pa) { return pa.replace(p, ''); });
return pathArray;
};
CodeSandboxEditorFS.prototype._sync = function (p, data, cb) {
// Stubbed
cb(null, undefined);
};
CodeSandboxEditorFS.prototype._syncSync = function (p, data) {
// Stubbed
};
CodeSandboxEditorFS.Name = 'CodeSandboxEditorFS';
CodeSandboxEditorFS.Options = {
api: {
type: 'object',
description: 'The CodeSandbox Editor',
validator: function (opt, cb) {
if (opt) {
cb();
}
else {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, 'Manager is invalid'));
}
},
},
};
return CodeSandboxEditorFS;
}(file_system_1.SynchronousFileSystem));
exports.default = CodeSandboxEditorFS;
//# sourceMappingURL=CodeSandboxEditorFS.js.map
\ No newline at end of file
/// <reference types="node" />
import { SynchronousFileSystem, FileSystem, BFSOneArgCallback, BFSCallback, FileSystemOptions } from "../core/file_system";
import { File } from "../core/file";
import { FileFlag } from "../core/file_flag";
import { default as Stats } from "../core/node_fs_stats";
export interface IModule {
path?: string;
code: string | undefined;
}
export interface IManager {
getTranspiledModules: () => {
[path: string]: {
module: IModule;
};
};
addModule(module: IModule): void;
removeModule(module: IModule): void;
moveModule(module: IModule, newPath: string): void;
updateModule(module: IModule): void;
}
export interface ICodeSandboxFileSystemOptions {
manager: IManager;
}
export default class CodeSandboxFS extends SynchronousFileSystem implements FileSystem {
static readonly Name = "CodeSandboxFS";
static readonly Options: FileSystemOptions;
/**
* Creates an InMemoryFileSystem instance.
*/
static Create(options: ICodeSandboxFileSystemOptions, cb: BFSCallback<CodeSandboxFS>): void;
static isAvailable(): boolean;
private manager;
constructor(manager: IManager);
getName(): string;
isReadOnly(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
empty(mainCb: BFSOneArgCallback): void;
renameSync(oldPath: string, newPath: string): void;
statSync(p: string, isLstate: boolean): Stats;
createFileSync(p: string, flag: FileFlag, mode: number): File;
openFileSync(p: string, flag: FileFlag, mode: number): File;
rmdirSync(p: string): void;
mkdirSync(p: string): void;
readdirSync(path: string): string[];
_sync(p: string, data: Buffer, cb: BFSCallback<Stats>): void;
_syncSync(p: string, data: Buffer): void;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var file_system_1 = require("../core/file_system");
var node_fs_stats_1 = require("../core/node_fs_stats");
var preload_file_1 = require("../generic/preload_file");
var api_error_1 = require("../core/api_error");
var CodeSandboxFile = /** @class */ (function (_super) {
__extends(CodeSandboxFile, _super);
function CodeSandboxFile(_fs, _path, _flag, _stat, contents) {
return _super.call(this, _fs, _path, _flag, _stat, contents) || this;
}
CodeSandboxFile.prototype.sync = function (cb) {
var _this = this;
if (this.isDirty()) {
var buffer = this.getBuffer();
this._fs._sync(this.getPath(), buffer, function (e, stat) {
if (!e) {
_this.resetDirty();
}
cb(e);
});
}
else {
cb();
}
};
CodeSandboxFile.prototype.close = function (cb) {
this.sync(cb);
};
CodeSandboxFile.prototype.syncSync = function () {
if (this.isDirty()) {
this._fs._syncSync(this.getPath(), this.getBuffer());
this.resetDirty();
}
};
CodeSandboxFile.prototype.closeSync = function () {
this.syncSync();
};
return CodeSandboxFile;
}(preload_file_1.default));
var CodeSandboxFS = /** @class */ (function (_super) {
__extends(CodeSandboxFS, _super);
function CodeSandboxFS(manager) {
var _this = _super.call(this) || this;
_this.manager = manager;
return _this;
}
/**
* Creates an InMemoryFileSystem instance.
*/
CodeSandboxFS.Create = function (options, cb) {
cb(null, new CodeSandboxFS(options.manager));
};
CodeSandboxFS.isAvailable = function () {
return true;
};
CodeSandboxFS.prototype.getName = function () {
return "CodeSandboxFS";
};
CodeSandboxFS.prototype.isReadOnly = function () {
return false;
};
CodeSandboxFS.prototype.supportsProps = function () {
return false;
};
CodeSandboxFS.prototype.supportsSynch = function () {
return true;
};
CodeSandboxFS.prototype.empty = function (mainCb) {
var _this = this;
var tModules = this.manager.getTranspiledModules();
Object.keys(tModules).forEach(function (pa) {
_this.manager.removeModule(tModules[pa].module);
});
mainCb();
};
CodeSandboxFS.prototype.renameSync = function (oldPath, newPath) {
var _this = this;
var tModules = this.manager.getTranspiledModules();
var modulesWithPath = Object.keys(tModules).filter(function (p) { return p.startsWith(oldPath) + "/" || p === oldPath; });
if (modulesWithPath.length === 0) {
throw api_error_1.ApiError.FileError(api_error_1.ErrorCode.ENOENT, oldPath);
}
modulesWithPath
.map(function (p) { return ({ path: p, moduleInfo: tModules[p] }); })
.forEach(function (_a) {
var path = _a.path, moduleInfo = _a.moduleInfo;
var module = moduleInfo.module;
_this.manager.moveModule(module, path.replace(oldPath, newPath));
});
};
CodeSandboxFS.prototype.statSync = function (p, isLstate) {
var tModules = this.manager.getTranspiledModules();
var moduleInfo = tModules[p];
if (!moduleInfo) {
var modulesStartingWithPath = Object.keys(tModules).filter(function (pa) { return pa.startsWith(p.endsWith("/") ? p : p + "/") || pa === p; });
if (modulesStartingWithPath.length > 0) {
return new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 0);
}
else {
throw api_error_1.ApiError.FileError(api_error_1.ErrorCode.ENOENT, p);
}
}
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, Buffer.byteLength(moduleInfo.module.code || '', 'utf8'));
return stats;
};
CodeSandboxFS.prototype.createFileSync = function (p, flag, mode) {
if (p === "/") {
throw api_error_1.ApiError.EEXIST(p);
}
if (this.manager.getTranspiledModules()[p]) {
throw api_error_1.ApiError.EEXIST(p);
}
var module = {
path: p,
code: ""
};
this.manager.addModule(module);
var buffer = Buffer.from(module.code || "");
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, buffer.length);
return new CodeSandboxFile(this, p, flag, stats, buffer);
};
CodeSandboxFS.prototype.openFileSync = function (p, flag, mode) {
var moduleInfo = this.manager.getTranspiledModules()[p];
if (!moduleInfo) {
throw api_error_1.ApiError.ENOENT(p);
}
var _a = moduleInfo.module.code, code = _a === void 0 ? "" : _a;
var buffer = Buffer.from(code || "");
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, buffer.length);
return new CodeSandboxFile(this, p, flag, stats, buffer);
};
CodeSandboxFS.prototype.rmdirSync = function (p) {
var _this = this;
var tModules = this.manager.getTranspiledModules();
Object.keys(tModules)
.filter(function (pa) { return pa.startsWith(p + "/") || p === pa; })
.forEach(function (pa) {
var module = tModules[pa].module;
_this.manager.removeModule(module);
});
};
CodeSandboxFS.prototype.mkdirSync = function (p) {
// CodeSandbox Manager doesn't have the concept of directories, like git.
// For now we will do nothing, as we pretend that every directory already exists.
};
CodeSandboxFS.prototype.readdirSync = function (path) {
var paths = Object.keys(this.manager.getTranspiledModules());
var p = path.endsWith("/") ? path : path + "/";
var pathsInDir = paths.filter(function (secondP) { return secondP.startsWith(p); });
if (pathsInDir.length === 0) {
return [];
}
var directChildren = new Set();
var currentPathLength = p.split("/").length;
pathsInDir
.filter(function (np) { return np.split("/").length >= currentPathLength; })
.forEach(function (np) {
var parts = np.split("/");
parts.length = currentPathLength;
directChildren.add(parts.join("/"));
});
var pathArray = Array.from(directChildren).map(function (pa) { return pa.replace(p, ""); });
return pathArray;
};
CodeSandboxFS.prototype._sync = function (p, data, cb) {
var _this = this;
var parent = path.dirname(p);
this.stat(parent, false, function (error, stat) {
if (error) {
cb(api_error_1.ApiError.FileError(api_error_1.ErrorCode.ENOENT, parent));
}
else {
var module_1 = _this.manager.getTranspiledModules()[p].module;
_this.manager.updateModule(module_1);
cb(null);
}
});
};
CodeSandboxFS.prototype._syncSync = function (p, data) {
var parent = path.dirname(p);
this.statSync(parent, false);
var module = this.manager.getTranspiledModules()[p].module;
this.manager.updateModule(module);
};
CodeSandboxFS.Name = "CodeSandboxFS";
CodeSandboxFS.Options = {
manager: {
type: "object",
description: "The CodeSandbox Manager",
validator: function (opt, cb) {
if (opt) {
cb();
}
else {
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, "Manager is invalid"));
}
}
}
};
return CodeSandboxFS;
}(file_system_1.SynchronousFileSystem));
exports.default = CodeSandboxFS;
//# sourceMappingURL=CodeSandboxFS.js.map
\ No newline at end of file
/// <reference types="node" />
import PreloadFile from '../generic/preload_file';
import { BaseFileSystem, FileSystem, BFSOneArgCallback, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { default as Stats } from '../core/node_fs_stats';
import { File } from '../core/file';
export declare class DropboxFile extends PreloadFile<DropboxFileSystem> implements File {
constructor(_fs: DropboxFileSystem, _path: string, _flag: FileFlag, _stat: Stats, contents?: Buffer);
sync(cb: BFSOneArgCallback): void;
close(cb: BFSOneArgCallback): void;
}
/**
* Options for the Dropbox file system.
*/
export interface DropboxFileSystemOptions {
client: DropboxTypes.Dropbox;
}
/**
* A read/write file system backed by Dropbox cloud storage.
*
* Uses the Dropbox V2 API, and the 2.x JS SDK.
*/
export default class DropboxFileSystem extends BaseFileSystem implements FileSystem {
static readonly Name = "DropboxV2";
static readonly Options: FileSystemOptions;
/**
* Creates a new DropboxFileSystem instance with the given options.
* Must be given an *authenticated* Dropbox client from 2.x JS SDK.
*/
static Create(opts: DropboxFileSystemOptions, cb: BFSCallback<DropboxFileSystem>): void;
static isAvailable(): boolean;
private _client;
private constructor();
getName(): string;
isReadOnly(): boolean;
supportsSymlinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
/**
* Deletes *everything* in the file system. Mainly intended for unit testing!
* @param mainCb Called when operation completes.
*/
empty(mainCb: BFSOneArgCallback): void;
rename(oldPath: string, newPath: string, cb: BFSOneArgCallback): void;
stat(path: string, isLstat: boolean, cb: BFSCallback<Stats>): void;
openFile(path: string, flags: FileFlag, cb: BFSCallback<File>): void;
createFile(p: string, flags: FileFlag, mode: number, cb: BFSCallback<File>): void;
/**
* Delete a file
*/
unlink(path: string, cb: BFSOneArgCallback): void;
/**
* Delete a directory
*/
rmdir(path: string, cb: BFSOneArgCallback): void;
/**
* Create a directory
*/
mkdir(p: string, mode: number, cb: BFSOneArgCallback): void;
/**
* Get the names of the files in a directory
*/
readdir(path: string, cb: BFSCallback<string[]>): void;
/**
* (Internal) Syncs file to Dropbox.
*/
_syncFile(p: string, d: Buffer, cb: BFSOneArgCallback): void;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.DropboxFile = void 0;
var preload_file_1 = require("../generic/preload_file");
var file_system_1 = require("../core/file_system");
var node_fs_stats_1 = require("../core/node_fs_stats");
var api_error_1 = require("../core/api_error");
var util_1 = require("../core/util");
var dropbox_bridge_1 = require("dropbox_bridge");
var setImmediate_1 = require("../generic/setImmediate");
var path_1 = require("path");
/**
* Dropbox paths do not begin with a /, they just begin with a folder at the root node.
* Here, we strip the `/`.
* @param p An absolute path
*/
function FixPath(p) {
if (p === '/') {
return '';
}
else {
return p;
}
}
/**
* HACK: Dropbox errors are FUBAR'd sometimes.
* @url https://github.com/dropbox/dropbox-sdk-js/issues/146
* @param e
*/
function ExtractTheFuckingError(e) {
var obj = e.error;
if (obj['.tag']) {
// Everything is OK.
return obj;
}
else if (obj['error']) {
// Terrible nested object bug.
var obj2 = obj.error;
if (obj2['.tag']) {
return obj2;
}
else if (obj2['reason'] && obj2['reason']['.tag']) {
return obj2.reason;
}
else {
return obj2;
}
}
else if (typeof (obj) === 'string') {
// Might be a fucking JSON object error.
try {
var obj2 = JSON.parse(obj);
if (obj2['error'] && obj2['error']['reason'] && obj2['error']['reason']['.tag']) {
return obj2.error.reason;
}
}
catch (e) {
// Nope. Give up.
}
}
return obj;
}
/**
* Returns a user-facing error message given an error.
*
* HACK: Dropbox error messages sometimes lack a `user_message` field.
* Sometimes, they are even strings. Ugh.
* @url https://github.com/dropbox/dropbox-sdk-js/issues/146
* @url https://github.com/dropbox/dropbox-sdk-js/issues/145
* @url https://github.com/dropbox/dropbox-sdk-js/issues/144
* @param err An error.
*/
function GetErrorMessage(err) {
if (err['user_message']) {
return err.user_message.text;
}
else if (err['error_summary']) {
return err.error_summary;
}
else if (typeof (err.error) === "string") {
return err.error;
}
else if (typeof (err.error) === "object") {
// DROPBOX BUG: Sometimes, error is a nested error.
return GetErrorMessage(err.error);
}
else {
throw new Error("Dropbox's servers gave us a garbage error message: ".concat(JSON.stringify(err)));
}
}
function LookupErrorToError(err, p, msg) {
switch (err['.tag']) {
case 'malformed_path':
return new api_error_1.ApiError(api_error_1.ErrorCode.EBADF, msg, p);
case 'not_found':
return api_error_1.ApiError.ENOENT(p);
case 'not_file':
return api_error_1.ApiError.EISDIR(p);
case 'not_folder':
return api_error_1.ApiError.ENOTDIR(p);
case 'restricted_content':
return api_error_1.ApiError.EPERM(p);
case 'other':
default:
return new api_error_1.ApiError(api_error_1.ErrorCode.EIO, msg, p);
}
}
function WriteErrorToError(err, p, msg) {
switch (err['.tag']) {
case 'malformed_path':
case 'disallowed_name':
return new api_error_1.ApiError(api_error_1.ErrorCode.EBADF, msg, p);
case 'conflict':
case 'no_write_permission':
case 'team_folder':
return api_error_1.ApiError.EPERM(p);
case 'insufficient_space':
return new api_error_1.ApiError(api_error_1.ErrorCode.ENOSPC, msg);
case 'other':
default:
return new api_error_1.ApiError(api_error_1.ErrorCode.EIO, msg, p);
}
}
function FilesDeleteWrapped(client, p, cb) {
var arg = {
path: FixPath(p)
};
client.filesDeleteV2(arg)
.then(function () {
cb();
}).catch(function (e) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'path_lookup':
cb(LookupErrorToError(err.path_lookup, p, GetErrorMessage(e)));
break;
case 'path_write':
cb(WriteErrorToError(err.path_write, p, GetErrorMessage(e)));
break;
case 'too_many_write_operations':
setTimeout(function () { return FilesDeleteWrapped(client, p, cb); }, 500 + (300 * (Math.random())));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), p));
break;
}
});
}
var DropboxFile = /** @class */ (function (_super) {
__extends(DropboxFile, _super);
function DropboxFile(_fs, _path, _flag, _stat, contents) {
return _super.call(this, _fs, _path, _flag, _stat, contents) || this;
}
DropboxFile.prototype.sync = function (cb) {
this._fs._syncFile(this.getPath(), this.getBuffer(), cb);
};
DropboxFile.prototype.close = function (cb) {
this.sync(cb);
};
return DropboxFile;
}(preload_file_1.default));
exports.DropboxFile = DropboxFile;
/**
* A read/write file system backed by Dropbox cloud storage.
*
* Uses the Dropbox V2 API, and the 2.x JS SDK.
*/
var DropboxFileSystem = /** @class */ (function (_super) {
__extends(DropboxFileSystem, _super);
function DropboxFileSystem(client) {
var _this = _super.call(this) || this;
_this._client = client;
return _this;
}
/**
* Creates a new DropboxFileSystem instance with the given options.
* Must be given an *authenticated* Dropbox client from 2.x JS SDK.
*/
DropboxFileSystem.Create = function (opts, cb) {
cb(null, new DropboxFileSystem(opts.client));
};
DropboxFileSystem.isAvailable = function () {
// Checks if the Dropbox library is loaded.
return typeof dropbox_bridge_1.Dropbox !== 'undefined';
};
DropboxFileSystem.prototype.getName = function () {
return DropboxFileSystem.Name;
};
DropboxFileSystem.prototype.isReadOnly = function () {
return false;
};
// Dropbox doesn't support symlinks, properties, or synchronous calls
// TODO: does it???
DropboxFileSystem.prototype.supportsSymlinks = function () {
return false;
};
DropboxFileSystem.prototype.supportsProps = function () {
return false;
};
DropboxFileSystem.prototype.supportsSynch = function () {
return false;
};
/**
* Deletes *everything* in the file system. Mainly intended for unit testing!
* @param mainCb Called when operation completes.
*/
DropboxFileSystem.prototype.empty = function (mainCb) {
var _this = this;
this.readdir('/', function (e, paths) {
if (paths) {
var next_1 = function (e) {
if (paths.length === 0) {
mainCb();
}
else {
FilesDeleteWrapped(_this._client, paths.shift(), next_1);
}
};
next_1();
}
else {
mainCb(e);
}
});
};
DropboxFileSystem.prototype.rename = function (oldPath, newPath, cb) {
var _this = this;
// Dropbox doesn't let you rename things over existing things, but POSIX does.
// So, we need to see if newPath exists...
this.stat(newPath, false, function (e, stats) {
var rename = function () {
var relocationArg = {
from_path: FixPath(oldPath),
to_path: FixPath(newPath)
};
_this._client.filesMoveV2(relocationArg)
.then(function () { return cb(); })
.catch(function (e) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'from_lookup':
cb(LookupErrorToError(err.from_lookup, oldPath, GetErrorMessage(e)));
break;
case 'from_write':
cb(WriteErrorToError(err.from_write, oldPath, GetErrorMessage(e)));
break;
case 'to':
cb(WriteErrorToError(err.to, newPath, GetErrorMessage(e)));
break;
case 'cant_copy_shared_folder':
case 'cant_nest_shared_folder':
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, GetErrorMessage(e), oldPath));
break;
case 'cant_move_folder_into_itself':
case 'duplicated_or_nested_paths':
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EBADF, GetErrorMessage(e), oldPath));
break;
case 'too_many_files':
cb(new api_error_1.ApiError(api_error_1.ErrorCode.ENOSPC, GetErrorMessage(e), oldPath));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), oldPath));
break;
}
});
};
if (e) {
// Doesn't exist. Proceed!
rename();
}
else if (oldPath === newPath) {
// NOP if the path exists. Error if it doesn't exist.
if (e) {
cb(api_error_1.ApiError.ENOENT(newPath));
}
else {
cb();
}
}
else if (stats && stats.isDirectory()) {
// Exists, is a directory. Cannot rename over an existing directory.
cb(api_error_1.ApiError.EISDIR(newPath));
}
else {
// Exists, is a file, and differs from oldPath. Delete and rename.
_this.unlink(newPath, function (e) {
if (e) {
cb(e);
}
else {
rename();
}
});
}
});
};
DropboxFileSystem.prototype.stat = function (path, isLstat, cb) {
if (path === '/') {
// Dropbox doesn't support querying the root directory.
(0, setImmediate_1.default)(function () {
cb(null, new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 4096));
});
return;
}
var arg = {
path: FixPath(path)
};
this._client.filesGetMetadata(arg).then(function (ref) {
switch (ref['.tag']) {
case 'file':
var fileMetadata = ref;
// TODO: Parse time fields.
cb(null, new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, fileMetadata.size));
break;
case 'folder':
cb(null, new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, 4096));
break;
case 'deleted':
cb(api_error_1.ApiError.ENOENT(path));
break;
default:
// Unknown.
break;
}
}).catch(function (e) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'path':
cb(LookupErrorToError(err.path, path, GetErrorMessage(e)));
break;
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), path));
break;
}
});
};
DropboxFileSystem.prototype.openFile = function (path, flags, cb) {
var _this = this;
var downloadArg = {
path: FixPath(path)
};
this._client.filesDownload(downloadArg).then(function (res) {
var b = res.fileBlob;
var fr = new FileReader();
fr.onload = function () {
var ab = fr.result;
cb(null, new DropboxFile(_this, path, flags, new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, ab.byteLength), (0, util_1.arrayBuffer2Buffer)(ab)));
};
fr.readAsArrayBuffer(b);
}).catch(function (e) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'path':
var dpError = err;
cb(LookupErrorToError(dpError.path, path, GetErrorMessage(e)));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), path));
break;
}
});
};
DropboxFileSystem.prototype.createFile = function (p, flags, mode, cb) {
var _this = this;
var fileData = Buffer.alloc(0);
var blob = new Blob([(0, util_1.buffer2ArrayBuffer)(fileData)], { type: "octet/stream" });
var commitInfo = {
contents: blob,
path: FixPath(p)
};
this._client.filesUpload(commitInfo).then(function (metadata) {
cb(null, new DropboxFile(_this, p, flags, new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, 0), fileData));
}).catch(function (e) {
var err = ExtractTheFuckingError(e);
// HACK: Casting to 'any' since tag can be 'too_many_write_operations'.
switch (err['.tag']) {
case 'path':
var upError = err;
cb(WriteErrorToError(upError.path.reason, p, GetErrorMessage(e)));
break;
case 'too_many_write_operations':
// Retry in (500, 800) ms.
setTimeout(function () { return _this.createFile(p, flags, mode, cb); }, 500 + (300 * (Math.random())));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), p));
break;
}
});
};
/**
* Delete a file
*/
DropboxFileSystem.prototype.unlink = function (path, cb) {
var _this = this;
// Must be a file. Check first.
this.stat(path, false, function (e, stat) {
if (stat) {
if (stat.isDirectory()) {
cb(api_error_1.ApiError.EISDIR(path));
}
else {
FilesDeleteWrapped(_this._client, path, cb);
}
}
else {
cb(e);
}
});
};
/**
* Delete a directory
*/
DropboxFileSystem.prototype.rmdir = function (path, cb) {
var _this = this;
this.readdir(path, function (e, paths) {
if (paths) {
if (paths.length > 0) {
cb(api_error_1.ApiError.ENOTEMPTY(path));
}
else {
FilesDeleteWrapped(_this._client, path, cb);
}
}
else {
cb(e);
}
});
};
/**
* Create a directory
*/
DropboxFileSystem.prototype.mkdir = function (p, mode, cb) {
var _this = this;
// Dropbox's create_folder is recursive. Check if parent exists.
var parent = (0, path_1.dirname)(p);
this.stat(parent, false, function (e, stats) {
if (e) {
cb(e);
}
else if (stats && !stats.isDirectory()) {
cb(api_error_1.ApiError.ENOTDIR(parent));
}
else {
var arg = {
path: FixPath(p)
};
_this._client.filesCreateFolderV2(arg).then(function () { return cb(); }).catch(function (e) {
var err = ExtractTheFuckingError(e);
if (err['.tag'] === "too_many_write_operations") {
// Retry in a bit.
setTimeout(function () { return _this.mkdir(p, mode, cb); }, 500 + (300 * (Math.random())));
}
else {
cb(WriteErrorToError(ExtractTheFuckingError(e).path, p, GetErrorMessage(e)));
}
});
}
});
};
/**
* Get the names of the files in a directory
*/
DropboxFileSystem.prototype.readdir = function (path, cb) {
var _this = this;
var arg = {
path: FixPath(path)
};
this._client.filesListFolder(arg).then(function (res) {
ContinueReadingDir(_this._client, path, res, [], cb);
}).catch(function (e) {
ProcessListFolderError(e, path, cb);
});
};
/**
* (Internal) Syncs file to Dropbox.
*/
DropboxFileSystem.prototype._syncFile = function (p, d, cb) {
var _this = this;
var blob = new Blob([(0, util_1.buffer2ArrayBuffer)(d)], { type: "octet/stream" });
var arg = {
contents: blob,
path: FixPath(p),
mode: {
'.tag': 'overwrite'
}
};
this._client.filesUpload(arg).then(function () {
cb();
}).catch(function (e) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'path':
var upError = err;
cb(WriteErrorToError(upError.path.reason, p, GetErrorMessage(e)));
break;
case 'too_many_write_operations':
setTimeout(function () { return _this._syncFile(p, d, cb); }, 500 + (300 * (Math.random())));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), p));
break;
}
});
};
DropboxFileSystem.Name = "DropboxV2";
DropboxFileSystem.Options = {
client: {
type: "object",
description: "An *authenticated* Dropbox client. Must be from the 2.5.x JS SDK."
}
};
return DropboxFileSystem;
}(file_system_1.BaseFileSystem));
exports.default = DropboxFileSystem;
function ProcessListFolderError(e, path, cb) {
var err = ExtractTheFuckingError(e);
switch (err['.tag']) {
case 'path':
var pathError = err;
cb(LookupErrorToError(pathError.path, path, GetErrorMessage(e)));
break;
case 'other':
default:
cb(new api_error_1.ApiError(api_error_1.ErrorCode.EIO, GetErrorMessage(e), path));
break;
}
}
function ContinueReadingDir(client, path, res, previousEntries, cb) {
var newEntries = res.entries.map(function (e) { return e.path_display; }).filter(Boolean);
var entries = previousEntries.concat(newEntries);
if (!res.has_more) {
cb(null, entries);
}
else {
var arg = {
cursor: res.cursor
};
client.filesListFolderContinue(arg).then(function (res) {
ContinueReadingDir(client, path, res, entries, cb);
}).catch(function (e) {
ProcessListFolderError(e, path, cb);
});
}
}
//# sourceMappingURL=Dropbox.js.map
\ No newline at end of file
/// <reference types="node" />
import { BaseFileSystem, FileSystem, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { File } from '../core/file';
import Stats from '../core/node_fs_stats';
/**
* Configuration options for a DynamicHTTPRequest file system.
*/
export interface DynamicHTTPRequestOptions {
index?: string | object;
baseUrl?: string;
preferXHR?: boolean;
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
export default class DynamicHTTPRequest extends BaseFileSystem implements FileSystem {
static readonly Name = "DynamicHTTPRequest";
static readonly Options: FileSystemOptions;
/**
* Construct an DynamicHTTPRequest file system backend with the given options.
*/
static Create(opts: DynamicHTTPRequestOptions, cb: BFSCallback<DynamicHTTPRequest>): void;
static isAvailable(): boolean;
readonly prefixUrl: string;
private _requestFileAsyncInternal;
private _requestFileSyncInternal;
private constructor();
private convertAPIError;
empty(): void;
getName(): string;
diskSpace(path: string, cb: (total: number, free: number) => void): void;
isReadOnly(): boolean;
supportsLinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
stat(path: string, isLstat: boolean, cb: BFSCallback<Stats>): void;
statSync(path: string, isLstat: boolean): Stats;
open(path: string, flags: FileFlag, mode: number, cb: BFSCallback<File>): void;
openSync(path: string, flags: FileFlag, mode: number): File;
readdir(path: string, cb: BFSCallback<string[]>): void;
readdirSync(path: string): string[];
/**
* We have the entire file as a buffer; optimize readFile.
*/
readFile(fname: string, encoding: string, flag: FileFlag, cb: BFSCallback<string | Buffer>): void;
/**
* Specially-optimized readfile.
*/
readFileSync(fname: string, encoding: string, flag: FileFlag): any;
private _getHTTPPath;
/**
* Asynchronously download the given file.
*/
private _requestFileAsync;
/**
* Synchronously download the given file.
*/
private _requestFileSync;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var file_system_1 = require("../core/file_system");
var api_error_1 = require("../core/api_error");
var util_1 = require("../core/util");
var node_fs_stats_1 = require("../core/node_fs_stats");
var preload_file_1 = require("../generic/preload_file");
var xhr_1 = require("../generic/xhr");
var fetch_1 = require("../generic/fetch");
/**
* Try to convert the given buffer into a string, and pass it to the callback.
* Optimization that removes the needed try/catch into a helper function, as
* this is an uncommon case.
* @hidden
*/
function tryToString(buff, encoding, cb) {
try {
cb(null, buff.toString(encoding));
}
catch (e) {
cb(e);
}
}
function syncNotAvailableError() {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP, "Synchronous HTTP download methods are not available in this environment.");
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
var DynamicHTTPRequest = /** @class */ (function (_super) {
__extends(DynamicHTTPRequest, _super);
// private _requestFileSizeSyncInternal: (p: string) => number;
function DynamicHTTPRequest(prefixUrl, preferXHR) {
if (prefixUrl === void 0) { prefixUrl = ''; }
if (preferXHR === void 0) { preferXHR = false; }
var _this = _super.call(this) || this;
// prefix_url must end in a directory separator.
if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') {
prefixUrl = prefixUrl + '/';
}
_this.prefixUrl = prefixUrl;
if (fetch_1.fetchIsAvailable && (!preferXHR || !xhr_1.xhrIsAvailable)) {
_this._requestFileAsyncInternal = fetch_1.fetchFileAsync;
// this._requestFileSizeAsyncInternal = fetchFileSizeAsync;
}
else {
_this._requestFileAsyncInternal = xhr_1.asyncDownloadFile;
// this._requestFileSizeAsyncInternal = getFileSizeAsync;
}
if (xhr_1.xhrIsAvailable) {
_this._requestFileSyncInternal = xhr_1.syncDownloadFile;
// this._requestFileSizeSyncInternal = getFileSizeSync;
}
else {
_this._requestFileSyncInternal = syncNotAvailableError;
// this._requestFileSizeSyncInternal = syncNotAvailableError;
}
return _this;
}
/**
* Construct an DynamicHTTPRequest file system backend with the given options.
*/
DynamicHTTPRequest.Create = function (opts, cb) {
cb(null, new DynamicHTTPRequest(opts.baseUrl));
};
DynamicHTTPRequest.isAvailable = function () {
return xhr_1.xhrIsAvailable || fetch_1.fetchIsAvailable;
};
DynamicHTTPRequest.prototype.convertAPIError = function (error) {
return new api_error_1.ApiError(error.errno, error.message, error.path);
};
DynamicHTTPRequest.prototype.empty = function () {
// this._index.fileIterator(function(file: Stats) {
// file.fileData = null;
// });
};
DynamicHTTPRequest.prototype.getName = function () {
return DynamicHTTPRequest.Name;
};
DynamicHTTPRequest.prototype.diskSpace = function (path, cb) {
// Read-only file system. We could calculate the total space, but that's not
// important right now.
cb(0, 0);
};
DynamicHTTPRequest.prototype.isReadOnly = function () {
return true;
};
DynamicHTTPRequest.prototype.supportsLinks = function () {
return false;
};
DynamicHTTPRequest.prototype.supportsProps = function () {
return false;
};
DynamicHTTPRequest.prototype.supportsSynch = function () {
// Synchronous operations are only available via the XHR interface for now.
return xhr_1.xhrIsAvailable;
};
DynamicHTTPRequest.prototype.stat = function (path, isLstat, cb) {
var _this = this;
this._requestFileAsync(path + '?stat', 'json', function (err, data) {
if (err || data.error) {
cb(err || _this.convertAPIError(data.error));
}
else {
cb(null, node_fs_stats_1.default.fromBuffer(Buffer.from(data.stats)));
}
});
};
DynamicHTTPRequest.prototype.statSync = function (path, isLstat) {
var data = this._requestFileSync(path + '?stat', 'json');
if (data.error) {
throw this.convertAPIError(data.error);
}
return node_fs_stats_1.default.fromBuffer(Buffer.from(data.stats));
};
DynamicHTTPRequest.prototype.open = function (path, flags, mode, cb) {
var _this = this;
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path));
}
var self = this;
this._requestFileAsync(path, 'json', function (err, data) {
if (err || data.error) {
return cb(err || _this.convertAPIError(data.error));
}
return cb(null, new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.fromBuffer(Buffer.from(data.stats)), Buffer.from(data.result)));
});
};
DynamicHTTPRequest.prototype.openSync = function (path, flags, mode) {
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path);
}
var self = this;
var data = this._requestFileSync(path, 'json');
if (data.error) {
throw this.convertAPIError(data.error);
}
return new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.fromBuffer(Buffer.from(data.stats)), Buffer.from(data.result));
};
DynamicHTTPRequest.prototype.readdir = function (path, cb) {
try {
cb(null, this.readdirSync(path));
}
catch (e) {
cb(e);
}
};
DynamicHTTPRequest.prototype.readdirSync = function (path) {
// Check if it exists.
var data = this._requestFileSync(path + '?meta', 'json');
if (data.error) {
throw this.convertAPIError(data.error);
}
return data.result;
};
/**
* We have the entire file as a buffer; optimize readFile.
*/
DynamicHTTPRequest.prototype.readFile = function (fname, encoding, flag, cb) {
// Wrap cb in file closing code.
var oldCb = cb;
// Get file.
this.open(fname, flag, 0x1a4, function (err, fd) {
if (err) {
return cb(err);
}
cb = function (err, arg) {
fd.close(function (err2) {
if (!err) {
err = err2;
}
return oldCb(err, arg);
});
};
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (encoding === null) {
cb(err, (0, util_1.copyingSlice)(fdBuff));
}
else {
tryToString(fdBuff, encoding, cb);
}
});
};
/**
* Specially-optimized readfile.
*/
DynamicHTTPRequest.prototype.readFileSync = function (fname, encoding, flag) {
// Get file.
var fd = this.openSync(fname, flag, 0x1a4);
try {
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (encoding === null) {
return (0, util_1.copyingSlice)(fdBuff);
}
return fdBuff.toString(encoding);
}
finally {
fd.closeSync();
}
};
DynamicHTTPRequest.prototype._getHTTPPath = function (filePath) {
if (filePath.charAt(0) === '/') {
filePath = filePath.slice(1);
}
return this.prefixUrl + filePath;
};
DynamicHTTPRequest.prototype._requestFileAsync = function (p, type, cb) {
this._requestFileAsyncInternal(this._getHTTPPath(p), type, cb);
};
DynamicHTTPRequest.prototype._requestFileSync = function (p, type) {
return this._requestFileSyncInternal(this._getHTTPPath(p), type);
};
DynamicHTTPRequest.Name = "DynamicHTTPRequest";
DynamicHTTPRequest.Options = {
baseUrl: {
type: "string",
optional: true,
description: "Used as the URL prefix for fetched files. Default: Fetch files relative to the index."
},
preferXHR: {
type: "boolean",
optional: true,
description: "Whether to prefer XmlHttpRequest or fetch for async operations if both are available. Default: false"
}
};
return DynamicHTTPRequest;
}(file_system_1.BaseFileSystem));
exports.default = DynamicHTTPRequest;
//# sourceMappingURL=DynamicHTTPRequest.js.map
\ No newline at end of file
/// <reference types="node" />
import { SynchronousFileSystem, BFSOneArgCallback, BFSCallback, BFSThreeArgCallback, FileSystemOptions } from '../core/file_system';
import { default as Stats } from '../core/node_fs_stats';
import { FileFlag } from '../core/file_flag';
import { BaseFile, File } from '../core/file';
export declare class EmscriptenFile extends BaseFile implements File {
private _fs;
private _FS;
private _path;
private _stream;
constructor(_fs: EmscriptenFileSystem, _FS: any, _path: string, _stream: any);
getPos(): number | undefined;
close(cb: BFSOneArgCallback): void;
closeSync(): void;
stat(cb: BFSCallback<Stats>): void;
statSync(): Stats;
truncate(len: number, cb: BFSOneArgCallback): void;
truncateSync(len: number): void;
write(buffer: Buffer, offset: number, length: number, position: number, cb: BFSThreeArgCallback<number, Buffer>): void;
writeSync(buffer: Buffer, offset: number, length: number, position: number | null): number;
read(buffer: Buffer, offset: number, length: number, position: number, cb: BFSThreeArgCallback<number, Buffer>): void;
readSync(buffer: Buffer, offset: number, length: number, position: number | null): number;
sync(cb: BFSOneArgCallback): void;
syncSync(): void;
chown(uid: number, gid: number, cb: BFSOneArgCallback): void;
chownSync(uid: number, gid: number): void;
chmod(mode: number, cb: BFSOneArgCallback): void;
chmodSync(mode: number): void;
utimes(atime: Date, mtime: Date, cb: BFSOneArgCallback): void;
utimesSync(atime: Date, mtime: Date): void;
}
/**
* Configuration options for Emscripten file systems.
*/
export interface EmscriptenFileSystemOptions {
FS: any;
}
/**
* Mounts an Emscripten file system into the BrowserFS file system.
*/
export default class EmscriptenFileSystem extends SynchronousFileSystem {
static readonly Name = "EmscriptenFileSystem";
static readonly Options: FileSystemOptions;
/**
* Create an EmscriptenFileSystem instance with the given options.
*/
static Create(opts: EmscriptenFileSystemOptions, cb: BFSCallback<EmscriptenFileSystem>): void;
static isAvailable(): boolean;
private _FS;
private constructor();
getName(): string;
isReadOnly(): boolean;
supportsLinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
renameSync(oldPath: string, newPath: string): void;
statSync(p: string, isLstat: boolean): Stats;
openSync(p: string, flag: FileFlag, mode: number): EmscriptenFile;
unlinkSync(p: string): void;
rmdirSync(p: string): void;
mkdirSync(p: string, mode: number): void;
readdirSync(p: string): string[];
truncateSync(p: string, len: number): void;
readFileSync(p: string, encoding: string, flag: FileFlag): any;
writeFileSync(p: string, data: any, encoding: string, flag: FileFlag, mode: number): void;
chmodSync(p: string, isLchmod: boolean, mode: number): void;
chownSync(p: string, isLchown: boolean, uid: number, gid: number): void;
symlinkSync(srcpath: string, dstpath: string, type: string): void;
readlinkSync(p: string): string;
utimesSync(p: string, atime: Date, mtime: Date): void;
private modeToFileType;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmscriptenFile = void 0;
var file_system_1 = require("../core/file_system");
var node_fs_stats_1 = require("../core/node_fs_stats");
var file_1 = require("../core/file");
var util_1 = require("../core/util");
var api_error_1 = require("../core/api_error");
/**
* @hidden
*/
function convertError(e, path) {
if (path === void 0) { path = ''; }
var errno = e.errno;
var parent = e.node;
var paths = [];
while (parent) {
paths.unshift(parent.name);
if (parent === parent.parent) {
break;
}
parent = parent.parent;
}
return new api_error_1.ApiError(errno, api_error_1.ErrorStrings[errno], paths.length > 0 ? '/' + paths.join('/') : path);
}
var EmscriptenFile = /** @class */ (function (_super) {
__extends(EmscriptenFile, _super);
function EmscriptenFile(_fs, _FS, _path, _stream) {
var _this = _super.call(this) || this;
_this._fs = _fs;
_this._FS = _FS;
_this._path = _path;
_this._stream = _stream;
return _this;
}
EmscriptenFile.prototype.getPos = function () {
return undefined;
};
EmscriptenFile.prototype.close = function (cb) {
var err = null;
try {
this.closeSync();
}
catch (e) {
err = e;
}
finally {
cb(err);
}
};
EmscriptenFile.prototype.closeSync = function () {
try {
this._FS.close(this._stream);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.stat = function (cb) {
try {
cb(null, this.statSync());
}
catch (e) {
cb(e);
}
};
EmscriptenFile.prototype.statSync = function () {
try {
return this._fs.statSync(this._path, false);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.truncate = function (len, cb) {
var err = null;
try {
this.truncateSync(len);
}
catch (e) {
err = e;
}
finally {
cb(err);
}
};
EmscriptenFile.prototype.truncateSync = function (len) {
try {
this._FS.ftruncate(this._stream.fd, len);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.write = function (buffer, offset, length, position, cb) {
try {
cb(null, this.writeSync(buffer, offset, length, position), buffer);
}
catch (e) {
cb(e);
}
};
EmscriptenFile.prototype.writeSync = function (buffer, offset, length, position) {
try {
var u8 = (0, util_1.buffer2Uint8array)(buffer);
// Emscripten is particular about what position is set to.
var emPosition = position === null ? undefined : position;
return this._FS.write(this._stream, u8, offset, length, emPosition);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.read = function (buffer, offset, length, position, cb) {
try {
cb(null, this.readSync(buffer, offset, length, position), buffer);
}
catch (e) {
cb(e);
}
};
EmscriptenFile.prototype.readSync = function (buffer, offset, length, position) {
try {
var u8 = (0, util_1.buffer2Uint8array)(buffer);
// Emscripten is particular about what position is set to.
var emPosition = position === null ? undefined : position;
return this._FS.read(this._stream, u8, offset, length, emPosition);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.sync = function (cb) {
// NOP.
cb();
};
EmscriptenFile.prototype.syncSync = function () {
// NOP.
};
EmscriptenFile.prototype.chown = function (uid, gid, cb) {
var err = null;
try {
this.chownSync(uid, gid);
}
catch (e) {
err = e;
}
finally {
cb(err);
}
};
EmscriptenFile.prototype.chownSync = function (uid, gid) {
try {
this._FS.fchown(this._stream.fd, uid, gid);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.chmod = function (mode, cb) {
var err = null;
try {
this.chmodSync(mode);
}
catch (e) {
err = e;
}
finally {
cb(err);
}
};
EmscriptenFile.prototype.chmodSync = function (mode) {
try {
this._FS.fchmod(this._stream.fd, mode);
}
catch (e) {
throw convertError(e, this._path);
}
};
EmscriptenFile.prototype.utimes = function (atime, mtime, cb) {
var err = null;
try {
this.utimesSync(atime, mtime);
}
catch (e) {
err = e;
}
finally {
cb(err);
}
};
EmscriptenFile.prototype.utimesSync = function (atime, mtime) {
this._fs.utimesSync(this._path, atime, mtime);
};
return EmscriptenFile;
}(file_1.BaseFile));
exports.EmscriptenFile = EmscriptenFile;
/**
* Mounts an Emscripten file system into the BrowserFS file system.
*/
var EmscriptenFileSystem = /** @class */ (function (_super) {
__extends(EmscriptenFileSystem, _super);
function EmscriptenFileSystem(_FS) {
var _this = _super.call(this) || this;
_this._FS = _FS;
return _this;
}
/**
* Create an EmscriptenFileSystem instance with the given options.
*/
EmscriptenFileSystem.Create = function (opts, cb) {
cb(null, new EmscriptenFileSystem(opts.FS));
};
EmscriptenFileSystem.isAvailable = function () { return true; };
EmscriptenFileSystem.prototype.getName = function () { return this._FS.DB_NAME(); };
EmscriptenFileSystem.prototype.isReadOnly = function () { return false; };
EmscriptenFileSystem.prototype.supportsLinks = function () { return true; };
EmscriptenFileSystem.prototype.supportsProps = function () { return true; };
EmscriptenFileSystem.prototype.supportsSynch = function () { return true; };
EmscriptenFileSystem.prototype.renameSync = function (oldPath, newPath) {
try {
this._FS.rename(oldPath, newPath);
}
catch (e) {
if (e.errno === api_error_1.ErrorCode.ENOENT) {
throw convertError(e, this.existsSync(oldPath) ? newPath : oldPath);
}
else {
throw convertError(e);
}
}
};
EmscriptenFileSystem.prototype.statSync = function (p, isLstat) {
try {
var stats = isLstat ? this._FS.lstat(p) : this._FS.stat(p);
var itemType = this.modeToFileType(stats.mode);
return new node_fs_stats_1.default(itemType, stats.size, stats.mode, stats.atime.getTime(), stats.mtime.getTime(), stats.ctime.getTime());
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.openSync = function (p, flag, mode) {
try {
var stream = this._FS.open(p, flag.getFlagString(), mode);
if (this._FS.isDir(stream.node.mode)) {
this._FS.close(stream);
throw api_error_1.ApiError.EISDIR(p);
}
return new EmscriptenFile(this, this._FS, p, stream);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.unlinkSync = function (p) {
try {
this._FS.unlink(p);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.rmdirSync = function (p) {
try {
this._FS.rmdir(p);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.mkdirSync = function (p, mode) {
try {
this._FS.mkdir(p, mode);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.readdirSync = function (p) {
try {
// Emscripten returns items for '.' and '..'. Node does not.
return this._FS.readdir(p).filter(function (p) { return p !== '.' && p !== '..'; });
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.truncateSync = function (p, len) {
try {
this._FS.truncate(p, len);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.readFileSync = function (p, encoding, flag) {
try {
var data = this._FS.readFile(p, { flags: flag.getFlagString() });
var buff = (0, util_1.uint8Array2Buffer)(data);
if (encoding) {
return buff.toString(encoding);
}
else {
return buff;
}
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.writeFileSync = function (p, data, encoding, flag, mode) {
try {
if (encoding) {
data = Buffer.from(data, encoding);
}
var u8 = (0, util_1.buffer2Uint8array)(data);
this._FS.writeFile(p, u8, { flags: flag.getFlagString(), encoding: 'binary' });
this._FS.chmod(p, mode);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.chmodSync = function (p, isLchmod, mode) {
try {
isLchmod ? this._FS.lchmod(p, mode) : this._FS.chmod(p, mode);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.chownSync = function (p, isLchown, uid, gid) {
try {
isLchown ? this._FS.lchown(p, uid, gid) : this._FS.chown(p, uid, gid);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.symlinkSync = function (srcpath, dstpath, type) {
try {
this._FS.symlink(srcpath, dstpath);
}
catch (e) {
throw convertError(e);
}
};
EmscriptenFileSystem.prototype.readlinkSync = function (p) {
try {
return this._FS.readlink(p);
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.utimesSync = function (p, atime, mtime) {
try {
this._FS.utime(p, atime.getTime(), mtime.getTime());
}
catch (e) {
throw convertError(e, p);
}
};
EmscriptenFileSystem.prototype.modeToFileType = function (mode) {
if (this._FS.isDir(mode)) {
return node_fs_stats_1.FileType.DIRECTORY;
}
else if (this._FS.isFile(mode)) {
return node_fs_stats_1.FileType.FILE;
}
else if (this._FS.isLink(mode)) {
return node_fs_stats_1.FileType.SYMLINK;
}
else {
throw api_error_1.ApiError.EPERM("Invalid mode: ".concat(mode));
}
};
EmscriptenFileSystem.Name = "EmscriptenFileSystem";
EmscriptenFileSystem.Options = {
FS: {
type: "object",
description: "The Emscripten file system to use (the `FS` variable)"
}
};
return EmscriptenFileSystem;
}(file_system_1.SynchronousFileSystem));
exports.default = EmscriptenFileSystem;
//# sourceMappingURL=Emscripten.js.map
\ No newline at end of file
import { BaseFileSystem, FileSystem, BFSCallback, FileSystemOptions } from '../core/file_system';
/**
* Configuration options for a FolderAdapter file system.
*/
export interface FolderAdapterOptions {
folder: string;
wrapped: FileSystem;
}
/**
* The FolderAdapter file system wraps a file system, and scopes all interactions to a subfolder of that file system.
*
* Example: Given a file system `foo` with folder `bar` and file `bar/baz`...
*
* ```javascript
* BrowserFS.configure({
* fs: "FolderAdapter",
* options: {
* folder: "bar",
* wrapped: foo
* }
* }, function(e) {
* var fs = BrowserFS.BFSRequire('fs');
* fs.readdirSync('/'); // ['baz']
* });
* ```
*/
export default class FolderAdapter extends BaseFileSystem implements FileSystem {
static readonly Name = "FolderAdapter";
static readonly Options: FileSystemOptions;
/**
* Creates a FolderAdapter instance with the given options.
*/
static Create(opts: FolderAdapterOptions, cb: BFSCallback<FolderAdapter>): void;
static isAvailable(): boolean;
_wrapped: FileSystem;
_folder: string;
private constructor();
getName(): string;
isReadOnly(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
supportsLinks(): boolean;
/**
* Initialize the file system. Ensures that the wrapped file system
* has the given folder.
*/
private _initialize;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var file_system_1 = require("../core/file_system");
var path = require("path");
var api_error_1 = require("../core/api_error");
/**
* The FolderAdapter file system wraps a file system, and scopes all interactions to a subfolder of that file system.
*
* Example: Given a file system `foo` with folder `bar` and file `bar/baz`...
*
* ```javascript
* BrowserFS.configure({
* fs: "FolderAdapter",
* options: {
* folder: "bar",
* wrapped: foo
* }
* }, function(e) {
* var fs = BrowserFS.BFSRequire('fs');
* fs.readdirSync('/'); // ['baz']
* });
* ```
*/
var FolderAdapter = /** @class */ (function (_super) {
__extends(FolderAdapter, _super);
function FolderAdapter(folder, wrapped) {
var _this = _super.call(this) || this;
_this._folder = folder;
_this._wrapped = wrapped;
return _this;
}
/**
* Creates a FolderAdapter instance with the given options.
*/
FolderAdapter.Create = function (opts, cb) {
var fa = new FolderAdapter(opts.folder, opts.wrapped);
fa._initialize(function (e) {
if (e) {
cb(e);
}
else {
cb(null, fa);
}
});
};
FolderAdapter.isAvailable = function () {
return true;
};
FolderAdapter.prototype.getName = function () { return this._wrapped.getName(); };
FolderAdapter.prototype.isReadOnly = function () { return this._wrapped.isReadOnly(); };
FolderAdapter.prototype.supportsProps = function () { return this._wrapped.supportsProps(); };
FolderAdapter.prototype.supportsSynch = function () { return this._wrapped.supportsSynch(); };
FolderAdapter.prototype.supportsLinks = function () { return false; };
/**
* Initialize the file system. Ensures that the wrapped file system
* has the given folder.
*/
FolderAdapter.prototype._initialize = function (cb) {
var _this = this;
this._wrapped.exists(this._folder, function (exists) {
if (exists) {
cb();
}
else if (_this._wrapped.isReadOnly()) {
cb(api_error_1.ApiError.ENOENT(_this._folder));
}
else {
_this._wrapped.mkdir(_this._folder, 0x1ff, cb);
}
});
};
FolderAdapter.Name = "FolderAdapter";
FolderAdapter.Options = {
folder: {
type: "string",
description: "The folder to use as the root directory"
},
wrapped: {
type: "object",
description: "The file system to wrap"
}
};
return FolderAdapter;
}(file_system_1.BaseFileSystem));
exports.default = FolderAdapter;
/**
* @hidden
*/
function translateError(folder, e) {
if (e !== null && typeof e === 'object') {
var err = e;
var p = err.path;
if (p) {
p = '/' + path.relative(folder, p);
err.message = err.message.replace(err.path, p);
err.path = p;
}
}
return e;
}
/**
* @hidden
*/
function wrapCallback(folder, cb) {
if (typeof cb === 'function') {
return function (err) {
if (arguments.length > 0) {
arguments[0] = translateError(folder, err);
}
cb.apply(null, arguments);
};
}
else {
return cb;
}
}
/**
* @hidden
*/
function wrapFunction(name, wrapFirst, wrapSecond) {
if (name.slice(name.length - 4) !== 'Sync') {
// Async function. Translate error in callback.
return function () {
if (arguments.length > 0) {
if (wrapFirst) {
arguments[0] = path.join(this._folder, arguments[0]);
}
if (wrapSecond) {
arguments[1] = path.join(this._folder, arguments[1]);
}
arguments[arguments.length - 1] = wrapCallback(this._folder, arguments[arguments.length - 1]);
}
return this._wrapped[name].apply(this._wrapped, arguments);
};
}
else {
// Sync function. Translate error in catch.
return function () {
try {
if (wrapFirst) {
arguments[0] = path.join(this._folder, arguments[0]);
}
if (wrapSecond) {
arguments[1] = path.join(this._folder, arguments[1]);
}
return this._wrapped[name].apply(this._wrapped, arguments);
}
catch (e) {
throw translateError(this._folder, e);
}
};
}
}
// First argument is a path.
['diskSpace', 'stat', 'statSync', 'open', 'openSync', 'unlink', 'unlinkSync',
'rmdir', 'rmdirSync', 'mkdir', 'mkdirSync', 'readdir', 'readdirSync', 'exists',
'existsSync', 'realpath', 'realpathSync', 'truncate', 'truncateSync', 'readFile',
'readFileSync', 'writeFile', 'writeFileSync', 'appendFile', 'appendFileSync',
'chmod', 'chmodSync', 'chown', 'chownSync', 'utimes', 'utimesSync', 'readlink',
'readlinkSync'].forEach(function (name) {
FolderAdapter.prototype[name] = wrapFunction(name, true, false);
});
// First and second arguments are paths.
['rename', 'renameSync', 'link', 'linkSync', 'symlink', 'symlinkSync'].forEach(function (name) {
FolderAdapter.prototype[name] = wrapFunction(name, true, true);
});
//# sourceMappingURL=FolderAdapter.js.map
\ No newline at end of file
/// <reference types="filesystem" />
/// <reference types="node" />
import PreloadFile from '../generic/preload_file';
import { BaseFileSystem, FileSystem as IFileSystem, BFSOneArgCallback, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { default as Stats } from '../core/node_fs_stats';
import { File as IFile } from '../core/file';
export declare class HTML5FSFile extends PreloadFile<HTML5FS> implements IFile {
private _entry;
constructor(fs: HTML5FS, entry: FileEntry, path: string, flag: FileFlag, stat: Stats, contents?: Buffer);
sync(cb: BFSOneArgCallback): void;
close(cb: BFSOneArgCallback): void;
}
export interface HTML5FSOptions {
size?: number;
type?: number;
}
/**
* A read-write filesystem backed by the HTML5 FileSystem API.
*
* As the HTML5 FileSystem is only implemented in Blink, this interface is
* only available in Chrome.
*/
export default class HTML5FS extends BaseFileSystem implements IFileSystem {
static readonly Name = "HTML5FS";
static readonly Options: FileSystemOptions;
/**
* Creates an HTML5FS instance with the given options.
*/
static Create(opts: HTML5FSOptions, cb: BFSCallback<HTML5FS>): void;
static isAvailable(): boolean;
fs: FileSystem;
private size;
private type;
/**
* @param size storage quota to request, in megabytes. Allocated value may be less.
* @param type window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT.
*/
private constructor();
getName(): string;
isReadOnly(): boolean;
supportsSymlinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
/**
* Deletes everything in the FS. Used for testing.
* Karma clears the storage after you quit it but not between runs of the test
* suite, and the tests expect an empty FS every time.
*/
empty(mainCb: BFSOneArgCallback): void;
rename(oldPath: string, newPath: string, cb: BFSOneArgCallback): void;
stat(path: string, isLstat: boolean, cb: BFSCallback<Stats>): void;
open(p: string, flags: FileFlag, mode: number, cb: BFSCallback<IFile>): void;
unlink(path: string, cb: BFSOneArgCallback): void;
rmdir(path: string, cb: BFSOneArgCallback): void;
mkdir(path: string, mode: number, cb: BFSOneArgCallback): void;
/**
* Map _readdir's list of `FileEntry`s to their names and return that.
*/
readdir(path: string, cb: BFSCallback<string[]>): void;
/**
* Returns a BrowserFS object representing a File.
*/
private _makeFile;
/**
* Returns an array of `FileEntry`s. Used internally by empty and readdir.
*/
private _readdir;
/**
* Requests a storage quota from the browser to back this FS.
*/
private _allocate;
/**
* Delete a file or directory from the file system
* isFile should reflect which call was made to remove the it (`unlink` or
* `rmdir`). If this doesn't match what's actually at `path`, an error will be
* returned
*/
private _remove;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.HTML5FSFile = void 0;
var preload_file_1 = require("../generic/preload_file");
var file_system_1 = require("../core/file_system");
var api_error_1 = require("../core/api_error");
var file_flag_1 = require("../core/file_flag");
var node_fs_stats_1 = require("../core/node_fs_stats");
var path = require("path");
var global_1 = require("../core/global");
var async_1 = require("async");
var util_1 = require("../core/util");
/**
* @hidden
*/
function isDirectoryEntry(entry) {
return entry.isDirectory;
}
/**
* @hidden
*/
var _getFS = global_1.default.webkitRequestFileSystem || global_1.default.requestFileSystem || null;
/**
* @hidden
*/
function _requestQuota(type, size, success, errorCallback) {
// We cast navigator and window to '<any>' because everything here is
// nonstandard functionality, despite the fact that Chrome has the only
// implementation of the HTML5FS and is likely driving the standardization
// process. Thus, these objects defined off of navigator and window are not
// present in the DefinitelyTyped TypeScript typings for FileSystem.
if (typeof navigator['webkitPersistentStorage'] !== 'undefined') {
switch (type) {
case global_1.default.PERSISTENT:
navigator.webkitPersistentStorage.requestQuota(size, success, errorCallback);
break;
case global_1.default.TEMPORARY:
navigator.webkitTemporaryStorage.requestQuota(size, success, errorCallback);
break;
default:
errorCallback(new TypeError("Invalid storage type: ".concat(type)));
break;
}
}
else {
global_1.default.webkitStorageInfo.requestQuota(type, size, success, errorCallback);
}
}
/**
* @hidden
*/
function _toArray(list) {
return Array.prototype.slice.call(list || [], 0);
}
/**
* Converts the given DOMError into an appropriate ApiError.
* @url https://developer.mozilla.org/en-US/docs/Web/API/DOMError
* @hidden
*/
// @ts-ignore
function convertError(err, p, expectedDir) {
switch (err.name) {
/* The user agent failed to create a file or directory due to the existence of a file or
directory with the same path. */
case "PathExistsError":
return api_error_1.ApiError.EEXIST(p);
/* The operation failed because it would cause the application to exceed its storage quota. */
case 'QuotaExceededError':
return api_error_1.ApiError.FileError(api_error_1.ErrorCode.ENOSPC, p);
/* A required file or directory could not be found at the time an operation was processed. */
case 'NotFoundError':
return api_error_1.ApiError.ENOENT(p);
/* This is a security error code to be used in situations not covered by any other error codes.
- A required file was unsafe for access within a Web application
- Too many calls are being made on filesystem resources */
case 'SecurityError':
return api_error_1.ApiError.FileError(api_error_1.ErrorCode.EACCES, p);
/* The modification requested was illegal. Examples of invalid modifications include moving a
directory into its own child, moving a file into its parent directory without changing its name,
or copying a directory to a path occupied by a file. */
case 'InvalidModificationError':
return api_error_1.ApiError.FileError(api_error_1.ErrorCode.EPERM, p);
/* The user has attempted to look up a file or directory, but the Entry found is of the wrong type
[e.g. is a DirectoryEntry when the user requested a FileEntry]. */
case 'TypeMismatchError':
return api_error_1.ApiError.FileError(expectedDir ? api_error_1.ErrorCode.ENOTDIR : api_error_1.ErrorCode.EISDIR, p);
/* A path or URL supplied to the API was malformed. */
case "EncodingError":
/* An operation depended on state cached in an interface object, but that state that has changed
since it was read from disk. */
case "InvalidStateError":
/* The user attempted to write to a file or directory which could not be modified due to the state
of the underlying filesystem. */
case "NoModificationAllowedError":
default:
return api_error_1.ApiError.FileError(api_error_1.ErrorCode.EINVAL, p);
}
}
// A note about getFile and getDirectory options:
// These methods are called at numerous places in this file, and are passed
// some combination of these two options:
// - create: If true, the entry will be created if it doesn't exist.
// If false, an error will be thrown if it doesn't exist.
// - exclusive: If true, only create the entry if it doesn't already exist,
// and throw an error if it does.
var HTML5FSFile = /** @class */ (function (_super) {
__extends(HTML5FSFile, _super);
function HTML5FSFile(fs, entry, path, flag, stat, contents) {
var _this = _super.call(this, fs, path, flag, stat, contents) || this;
_this._entry = entry;
return _this;
}
HTML5FSFile.prototype.sync = function (cb) {
var _this = this;
if (!this.isDirty()) {
return cb();
}
this._entry.createWriter(function (writer) {
var buffer = _this.getBuffer();
var blob = new Blob([(0, util_1.buffer2ArrayBuffer)(buffer)]);
var length = blob.size;
writer.onwriteend = function (err) {
writer.onwriteend = null;
writer.onerror = null;
writer.truncate(length);
_this.resetDirty();
cb();
};
writer.onerror = function (err) {
cb(convertError(err, _this.getPath(), false));
};
writer.write(blob);
});
};
HTML5FSFile.prototype.close = function (cb) {
this.sync(cb);
};
return HTML5FSFile;
}(preload_file_1.default));
exports.HTML5FSFile = HTML5FSFile;
/**
* A read-write filesystem backed by the HTML5 FileSystem API.
*
* As the HTML5 FileSystem is only implemented in Blink, this interface is
* only available in Chrome.
*/
var HTML5FS = /** @class */ (function (_super) {
__extends(HTML5FS, _super);
/**
* @param size storage quota to request, in megabytes. Allocated value may be less.
* @param type window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT.
*/
function HTML5FS(size, type) {
if (size === void 0) { size = 5; }
if (type === void 0) { type = global_1.default.PERSISTENT; }
var _this = _super.call(this) || this;
// Convert MB to bytes.
_this.size = 1024 * 1024 * size;
_this.type = type;
return _this;
}
/**
* Creates an HTML5FS instance with the given options.
*/
HTML5FS.Create = function (opts, cb) {
var fs = new HTML5FS(opts.size, opts.type);
fs._allocate(function (e) { return e ? cb(e) : cb(null, fs); });
};
HTML5FS.isAvailable = function () {
return Boolean(_getFS);
};
HTML5FS.prototype.getName = function () {
return HTML5FS.Name;
};
HTML5FS.prototype.isReadOnly = function () {
return false;
};
HTML5FS.prototype.supportsSymlinks = function () {
return false;
};
HTML5FS.prototype.supportsProps = function () {
return false;
};
HTML5FS.prototype.supportsSynch = function () {
return false;
};
/**
* Deletes everything in the FS. Used for testing.
* Karma clears the storage after you quit it but not between runs of the test
* suite, and the tests expect an empty FS every time.
*/
HTML5FS.prototype.empty = function (mainCb) {
// Get a list of all entries in the root directory to delete them
this._readdir('/', function (err, entries) {
if (err) {
mainCb(err);
}
else {
// Called when every entry has been operated on
var finished = function (er) {
if (err) {
mainCb(err);
}
else {
mainCb();
}
};
// Removes files and recursively removes directories
var deleteEntry = function (entry, cb) {
var succ = function () {
cb();
};
var error = function (err) {
cb(convertError(err, entry.fullPath, !entry.isDirectory));
};
if (isDirectoryEntry(entry)) {
entry.removeRecursively(succ, error);
}
else {
entry.remove(succ, error);
}
};
// Loop through the entries and remove them, then call the callback
// when they're all finished.
// @ts-ignore
(0, async_1.each)(entries, deleteEntry, finished);
}
});
};
HTML5FS.prototype.rename = function (oldPath, newPath, cb) {
var _this = this;
var semaphore = 2;
var successCount = 0;
var root = this.fs.root;
var currentPath = oldPath;
var error = function (err) {
if (--semaphore <= 0) {
cb(convertError(err, currentPath, false));
}
};
var success = function (file) {
if (++successCount === 2) {
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, "Something was identified as both a file and a directory. This should never happen."));
}
// SPECIAL CASE: If newPath === oldPath, and the path exists, then
// this operation trivially succeeds.
if (oldPath === newPath) {
return cb();
}
// Get the new parent directory.
currentPath = path.dirname(newPath);
root.getDirectory(currentPath, {}, function (parentDir) {
currentPath = path.basename(newPath);
file.moveTo(parentDir, currentPath, function (entry) { cb(); }, function (err) {
// SPECIAL CASE: If oldPath is a directory, and newPath is a
// file, rename should delete the file and perform the move.
if (file.isDirectory) {
currentPath = newPath;
// Unlink only works on files. Try to delete newPath.
_this.unlink(newPath, function (e) {
if (e) {
// newPath is probably a directory.
error(err);
}
else {
// Recur, now that newPath doesn't exist.
_this.rename(oldPath, newPath, cb);
}
});
}
else {
error(err);
}
});
}, error);
};
// We don't know if oldPath is a *file* or a *directory*, and there's no
// way to stat items. So launch both requests, see which one succeeds.
root.getFile(oldPath, {}, success, error);
root.getDirectory(oldPath, {}, success, error);
};
HTML5FS.prototype.stat = function (path, isLstat, cb) {
var _this = this;
// Throw an error if the entry doesn't exist, because then there's nothing
// to stat.
var opts = {
create: false
};
// Called when the path has been successfully loaded as a file.
var loadAsFile = function (entry) {
var fileFromEntry = function (file) {
var stat = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, file.size);
cb(null, stat);
};
entry.file(fileFromEntry, failedToLoad);
};
// Called when the path has been successfully loaded as a directory.
var loadAsDir = function (dir) {
// Directory entry size can't be determined from the HTML5 FS API, and is
// implementation-dependant anyway, so a dummy value is used.
var size = 4096;
var stat = new node_fs_stats_1.default(node_fs_stats_1.FileType.DIRECTORY, size);
cb(null, stat);
};
// Called when the path couldn't be opened as a directory or a file.
var failedToLoad = function (err) {
cb(convertError(err, path, false /* Unknown / irrelevant */));
};
// Called when the path couldn't be opened as a file, but might still be a
// directory.
var failedToLoadAsFile = function () {
_this.fs.root.getDirectory(path, opts, loadAsDir, failedToLoad);
};
// No method currently exists to determine whether a path refers to a
// directory or a file, so this implementation tries both and uses the first
// one that succeeds.
this.fs.root.getFile(path, opts, loadAsFile, failedToLoadAsFile);
};
HTML5FS.prototype.open = function (p, flags, mode, cb) {
var _this = this;
// XXX: err is a DOMError
var error = function (err) {
if (err.name === 'InvalidModificationError' && flags.isExclusive()) {
cb(api_error_1.ApiError.EEXIST(p));
}
else {
cb(convertError(err, p, false));
}
};
this.fs.root.getFile(p, {
create: flags.pathNotExistsAction() === file_flag_1.ActionType.CREATE_FILE,
exclusive: flags.isExclusive()
}, function (entry) {
// Try to fetch corresponding file.
entry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function (event) {
var bfsFile = _this._makeFile(p, entry, flags, file, reader.result);
cb(null, bfsFile);
};
reader.onerror = function (ev) {
error(reader.error);
};
reader.readAsArrayBuffer(file);
}, error);
}, error);
};
HTML5FS.prototype.unlink = function (path, cb) {
this._remove(path, cb, true);
};
HTML5FS.prototype.rmdir = function (path, cb) {
var _this = this;
// Check if directory is non-empty, first.
this.readdir(path, function (e, files) {
if (e) {
cb(e);
}
else if (files.length > 0) {
cb(api_error_1.ApiError.ENOTEMPTY(path));
}
else {
_this._remove(path, cb, false);
}
});
};
HTML5FS.prototype.mkdir = function (path, mode, cb) {
// Create the directory, but throw an error if it already exists, as per
// mkdir(1)
var opts = {
create: true,
exclusive: true
};
var success = function (dir) {
cb();
};
var error = function (err) {
cb(convertError(err, path, true));
};
this.fs.root.getDirectory(path, opts, success, error);
};
/**
* Map _readdir's list of `FileEntry`s to their names and return that.
*/
HTML5FS.prototype.readdir = function (path, cb) {
this._readdir(path, function (e, entries) {
if (entries) {
var rv = [];
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
var entry = entries_1[_i];
rv.push(entry.name);
}
cb(null, rv);
}
else {
return cb(e);
}
});
};
/**
* Returns a BrowserFS object representing a File.
*/
HTML5FS.prototype._makeFile = function (path, entry, flag, stat, data) {
if (data === void 0) { data = new ArrayBuffer(0); }
var stats = new node_fs_stats_1.default(node_fs_stats_1.FileType.FILE, stat.size);
var buffer = (0, util_1.arrayBuffer2Buffer)(data);
return new HTML5FSFile(this, entry, path, flag, stats, buffer);
};
/**
* Returns an array of `FileEntry`s. Used internally by empty and readdir.
*/
HTML5FS.prototype._readdir = function (path, cb) {
var error = function (err) {
cb(convertError(err, path, true));
};
// Grab the requested directory.
this.fs.root.getDirectory(path, { create: false }, function (dirEntry) {
var reader = dirEntry.createReader();
var entries = [];
// Call the reader.readEntries() until no more results are returned.
var readEntries = function () {
reader.readEntries((function (results) {
if (results.length) {
entries = entries.concat(_toArray(results));
readEntries();
}
else {
cb(null, entries);
}
}), error);
};
readEntries();
}, error);
};
/**
* Requests a storage quota from the browser to back this FS.
*/
HTML5FS.prototype._allocate = function (cb) {
var _this = this;
var success = function (fs) {
_this.fs = fs;
cb();
};
var error = function (err) {
cb(convertError(err, "/", true));
};
if (this.type === global_1.default.PERSISTENT) {
_requestQuota(this.type, this.size, function (granted) {
_getFS(_this.type, granted, success, error);
}, error);
}
else {
_getFS(this.type, this.size, success, error);
}
};
/**
* Delete a file or directory from the file system
* isFile should reflect which call was made to remove the it (`unlink` or
* `rmdir`). If this doesn't match what's actually at `path`, an error will be
* returned
*/
HTML5FS.prototype._remove = function (path, cb, isFile) {
var success = function (entry) {
var succ = function () {
cb();
};
var err = function (err) {
cb(convertError(err, path, !isFile));
};
entry.remove(succ, err);
};
var error = function (err) {
cb(convertError(err, path, !isFile));
};
// Deleting the entry, so don't create it
var opts = {
create: false
};
if (isFile) {
this.fs.root.getFile(path, opts, success, error);
}
else {
this.fs.root.getDirectory(path, opts, success, error);
}
};
HTML5FS.Name = "HTML5FS";
HTML5FS.Options = {
size: {
type: "number",
optional: true,
description: "Storage quota to request, in megabytes. Allocated value may be less. Defaults to 5."
},
type: {
type: "number",
optional: true,
description: "window.PERSISTENT or window.TEMPORARY. Defaults to PERSISTENT."
}
};
return HTML5FS;
}(file_system_1.BaseFileSystem));
exports.default = HTML5FS;
//# sourceMappingURL=HTML5FS.js.map
\ No newline at end of file
/// <reference types="node" />
import { BaseFileSystem, FileSystem, BFSCallback, FileSystemOptions } from '../core/file_system';
import { FileFlag } from '../core/file_flag';
import { File } from '../core/file';
import Stats from '../core/node_fs_stats';
/**
* Configuration options for a HTTPRequest file system.
*/
export interface HTTPRequestOptions {
index?: string | object;
baseUrl?: string;
preferXHR?: boolean;
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
export default class HTTPRequest extends BaseFileSystem implements FileSystem {
static readonly Name = "HTTPRequest";
static readonly Options: FileSystemOptions;
/**
* Construct an HTTPRequest file system backend with the given options.
*/
static Create(opts: HTTPRequestOptions, cb: BFSCallback<HTTPRequest>): void;
static isAvailable(): boolean;
readonly prefixUrl: string;
private _index;
private _requestFileAsyncInternal;
private _requestFileSizeAsyncInternal;
private _requestFileSyncInternal;
private _requestFileSizeSyncInternal;
private constructor();
empty(): void;
getName(): string;
diskSpace(path: string, cb: (total: number, free: number) => void): void;
isReadOnly(): boolean;
supportsLinks(): boolean;
supportsProps(): boolean;
supportsSynch(): boolean;
/**
* Special HTTPFS function: Preload the given file into the index.
* @param [String] path
* @param [BrowserFS.Buffer] buffer
*/
preloadFile(path: string, buffer: Buffer): void;
stat(path: string, isLstat: boolean, cb: BFSCallback<Stats>): void;
statSync(path: string, isLstat: boolean): Stats;
open(path: string, flags: FileFlag, mode: number, cb: BFSCallback<File>): void;
openSync(path: string, flags: FileFlag, mode: number): File;
readdir(path: string, cb: BFSCallback<string[]>): void;
readdirSync(path: string): string[];
/**
* We have the entire file as a buffer; optimize readFile.
*/
readFile(fname: string, encoding: string, flag: FileFlag, cb: BFSCallback<string | Buffer>): void;
/**
* Specially-optimized readfile.
*/
readFileSync(fname: string, encoding: string, flag: FileFlag): any;
private _getHTTPPath;
/**
* Asynchronously download the given file.
*/
private _requestFileAsync;
/**
* Synchronously download the given file.
*/
private _requestFileSync;
/**
* Only requests the HEAD content, for the file size.
*/
private _requestFileSizeAsync;
private _requestFileSizeSync;
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var file_system_1 = require("../core/file_system");
var api_error_1 = require("../core/api_error");
var file_flag_1 = require("../core/file_flag");
var util_1 = require("../core/util");
var node_fs_stats_1 = require("../core/node_fs_stats");
var preload_file_1 = require("../generic/preload_file");
var xhr_1 = require("../generic/xhr");
var fetch_1 = require("../generic/fetch");
var file_index_1 = require("../generic/file_index");
/**
* Try to convert the given buffer into a string, and pass it to the callback.
* Optimization that removes the needed try/catch into a helper function, as
* this is an uncommon case.
* @hidden
*/
function tryToString(buff, encoding, cb) {
try {
cb(null, buff.toString(encoding));
}
catch (e) {
cb(e);
}
}
function syncNotAvailableError() {
throw new api_error_1.ApiError(api_error_1.ErrorCode.ENOTSUP, "Synchronous HTTP download methods are not available in this environment.");
}
/**
* A simple filesystem backed by HTTP downloads. You must create a directory listing using the
* `make_http_index` tool provided by BrowserFS.
*
* If you install BrowserFS globally with `npm i -g browserfs`, you can generate a listing by
* running `make_http_index` in your terminal in the directory you would like to index:
*
* ```
* make_http_index > index.json
* ```
*
* Listings objects look like the following:
*
* ```json
* {
* "home": {
* "jvilk": {
* "someFile.txt": null,
* "someDir": {
* // Empty directory
* }
* }
* }
* }
* ```
*
* *This example has the folder `/home/jvilk` with subfile `someFile.txt` and subfolder `someDir`.*
*/
var HTTPRequest = /** @class */ (function (_super) {
__extends(HTTPRequest, _super);
function HTTPRequest(index, prefixUrl, preferXHR) {
if (prefixUrl === void 0) { prefixUrl = ''; }
if (preferXHR === void 0) { preferXHR = false; }
var _this = _super.call(this) || this;
// prefix_url must end in a directory separator.
if (prefixUrl.length > 0 && prefixUrl.charAt(prefixUrl.length - 1) !== '/') {
prefixUrl = prefixUrl + '/';
}
_this.prefixUrl = prefixUrl;
_this._index = file_index_1.FileIndex.fromListing(index);
if (fetch_1.fetchIsAvailable && (!preferXHR || !xhr_1.xhrIsAvailable)) {
_this._requestFileAsyncInternal = fetch_1.fetchFileAsync;
_this._requestFileSizeAsyncInternal = fetch_1.fetchFileSizeAsync;
}
else {
_this._requestFileAsyncInternal = xhr_1.asyncDownloadFile;
_this._requestFileSizeAsyncInternal = xhr_1.getFileSizeAsync;
}
if (xhr_1.xhrIsAvailable) {
_this._requestFileSyncInternal = xhr_1.syncDownloadFile;
_this._requestFileSizeSyncInternal = xhr_1.getFileSizeSync;
}
else {
_this._requestFileSyncInternal = syncNotAvailableError;
_this._requestFileSizeSyncInternal = syncNotAvailableError;
}
return _this;
}
/**
* Construct an HTTPRequest file system backend with the given options.
*/
HTTPRequest.Create = function (opts, cb) {
if (opts.index === undefined) {
opts.index = "index.json";
}
if (typeof (opts.index) === "string") {
(0, xhr_1.asyncDownloadFile)(opts.index, "json", function (e, data) {
if (e) {
cb(e);
}
else {
cb(null, new HTTPRequest(data, opts.baseUrl));
}
});
}
else {
cb(null, new HTTPRequest(opts.index, opts.baseUrl));
}
};
HTTPRequest.isAvailable = function () {
return xhr_1.xhrIsAvailable || fetch_1.fetchIsAvailable;
};
HTTPRequest.prototype.empty = function () {
this._index.fileIterator(function (file) {
file.fileData = null;
});
};
HTTPRequest.prototype.getName = function () {
return HTTPRequest.Name;
};
HTTPRequest.prototype.diskSpace = function (path, cb) {
// Read-only file system. We could calculate the total space, but that's not
// important right now.
cb(0, 0);
};
HTTPRequest.prototype.isReadOnly = function () {
return true;
};
HTTPRequest.prototype.supportsLinks = function () {
return false;
};
HTTPRequest.prototype.supportsProps = function () {
return false;
};
HTTPRequest.prototype.supportsSynch = function () {
// Synchronous operations are only available via the XHR interface for now.
return xhr_1.xhrIsAvailable;
};
/**
* Special HTTPFS function: Preload the given file into the index.
* @param [String] path
* @param [BrowserFS.Buffer] buffer
*/
HTTPRequest.prototype.preloadFile = function (path, buffer) {
var inode = this._index.getInode(path);
if ((0, file_index_1.isFileInode)(inode)) {
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
var stats = inode.getData();
stats.size = buffer.length;
stats.fileData = buffer;
}
else {
throw api_error_1.ApiError.EISDIR(path);
}
};
HTTPRequest.prototype.stat = function (path, isLstat, cb) {
var inode = this._index.getInode(path);
if (inode === null) {
return cb(api_error_1.ApiError.ENOENT(path));
}
var stats;
if ((0, file_index_1.isFileInode)(inode)) {
stats = inode.getData();
// At this point, a non-opened file will still have default stats from the listing.
if (stats.size < 0) {
this._requestFileSizeAsync(path, function (e, size) {
if (e) {
return cb(e);
}
stats.size = size;
cb(null, node_fs_stats_1.default.clone(stats));
});
}
else {
cb(null, node_fs_stats_1.default.clone(stats));
}
}
else if ((0, file_index_1.isDirInode)(inode)) {
stats = inode.getStats();
cb(null, stats);
}
else {
cb(api_error_1.ApiError.FileError(api_error_1.ErrorCode.EINVAL, path));
}
};
HTTPRequest.prototype.statSync = function (path, isLstat) {
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
var stats;
if ((0, file_index_1.isFileInode)(inode)) {
stats = inode.getData();
// At this point, a non-opened file will still have default stats from the listing.
if (stats.size < 0) {
stats.size = this._requestFileSizeSync(path);
}
}
else if ((0, file_index_1.isDirInode)(inode)) {
stats = inode.getStats();
}
else {
throw api_error_1.ApiError.FileError(api_error_1.ErrorCode.EINVAL, path);
}
return stats;
};
HTTPRequest.prototype.open = function (path, flags, mode, cb) {
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path));
}
var self = this;
// Check if the path exists, and is a file.
var inode = this._index.getInode(path);
if (inode === null) {
return cb(api_error_1.ApiError.ENOENT(path));
}
if ((0, file_index_1.isFileInode)(inode)) {
var stats_1 = inode.getData();
switch (flags.pathExistsAction()) {
case file_flag_1.ActionType.THROW_EXCEPTION:
case file_flag_1.ActionType.TRUNCATE_FILE:
return cb(api_error_1.ApiError.EEXIST(path));
case file_flag_1.ActionType.NOP:
// Use existing file contents.
// XXX: Uh, this maintains the previously-used flag.
if (stats_1.fileData) {
return cb(null, new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.clone(stats_1), stats_1.fileData));
}
// @todo be lazier about actually requesting the file
this._requestFileAsync(path, 'buffer', function (err, buffer) {
if (err) {
return cb(err);
}
// we don't initially have file sizes
stats_1.size = buffer.length;
stats_1.fileData = buffer;
return cb(null, new preload_file_1.NoSyncFile(self, path, flags, node_fs_stats_1.default.clone(stats_1), buffer));
});
break;
default:
return cb(new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, 'Invalid FileMode object.'));
}
}
else {
return cb(api_error_1.ApiError.EISDIR(path));
}
};
HTTPRequest.prototype.openSync = function (path, flags, mode) {
// INVARIANT: You can't write to files on this file system.
if (flags.isWriteable()) {
throw new api_error_1.ApiError(api_error_1.ErrorCode.EPERM, path);
}
// Check if the path exists, and is a file.
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
if ((0, file_index_1.isFileInode)(inode)) {
var stats = inode.getData();
switch (flags.pathExistsAction()) {
case file_flag_1.ActionType.THROW_EXCEPTION:
case file_flag_1.ActionType.TRUNCATE_FILE:
throw api_error_1.ApiError.EEXIST(path);
case file_flag_1.ActionType.NOP:
// Use existing file contents.
// XXX: Uh, this maintains the previously-used flag.
if (stats.fileData) {
return new preload_file_1.NoSyncFile(this, path, flags, node_fs_stats_1.default.clone(stats), stats.fileData);
}
// @todo be lazier about actually requesting the file
var buffer = this._requestFileSync(path, 'buffer');
// we don't initially have file sizes
stats.size = buffer.length;
stats.fileData = buffer;
return new preload_file_1.NoSyncFile(this, path, flags, node_fs_stats_1.default.clone(stats), buffer);
default:
throw new api_error_1.ApiError(api_error_1.ErrorCode.EINVAL, 'Invalid FileMode object.');
}
}
else {
throw api_error_1.ApiError.EISDIR(path);
}
};
HTTPRequest.prototype.readdir = function (path, cb) {
try {
cb(null, this.readdirSync(path));
}
catch (e) {
cb(e);
}
};
HTTPRequest.prototype.readdirSync = function (path) {
// Check if it exists.
var inode = this._index.getInode(path);
if (inode === null) {
throw api_error_1.ApiError.ENOENT(path);
}
else if ((0, file_index_1.isDirInode)(inode)) {
return inode.getListing();
}
else {
throw api_error_1.ApiError.ENOTDIR(path);
}
};
/**
* We have the entire file as a buffer; optimize readFile.
*/
HTTPRequest.prototype.readFile = function (fname, encoding, flag, cb) {
// Wrap cb in file closing code.
var oldCb = cb;
// Get file.
this.open(fname, flag, 0x1a4, function (err, fd) {
if (err) {
return cb(err);
}
cb = function (err, arg) {
fd.close(function (err2) {
if (!err) {
err = err2;
}
return oldCb(err, arg);
});
};
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (encoding === null) {
cb(err, (0, util_1.copyingSlice)(fdBuff));
}
else {
tryToString(fdBuff, encoding, cb);
}
});
};
/**
* Specially-optimized readfile.
*/
HTTPRequest.prototype.readFileSync = function (fname, encoding, flag) {
// Get file.
var fd = this.openSync(fname, flag, 0x1a4);
try {
var fdCast = fd;
var fdBuff = fdCast.getBuffer();
if (encoding === null) {
return (0, util_1.copyingSlice)(fdBuff);
}
return fdBuff.toString(encoding);
}
finally {
fd.closeSync();
}
};
HTTPRequest.prototype._getHTTPPath = function (filePath) {
if (filePath.charAt(0) === '/') {
filePath = filePath.slice(1);
}
return this.prefixUrl + filePath;
};
HTTPRequest.prototype._requestFileAsync = function (p, type, cb) {
this._requestFileAsyncInternal(this._getHTTPPath(p), type, cb);
};
HTTPRequest.prototype._requestFileSync = function (p, type) {
return this._requestFileSyncInternal(this._getHTTPPath(p), type);
};
/**
* Only requests the HEAD content, for the file size.
*/
HTTPRequest.prototype._requestFileSizeAsync = function (path, cb) {
this._requestFileSizeAsyncInternal(this._getHTTPPath(path), cb);
};
HTTPRequest.prototype._requestFileSizeSync = function (path) {
return this._requestFileSizeSyncInternal(this._getHTTPPath(path));
};
HTTPRequest.Name = "HTTPRequest";
HTTPRequest.Options = {
index: {
type: ["string", "object"],
optional: true,
description: "URL to a file index as a JSON file or the file index object itself, generated with the make_http_index script. Defaults to `index.json`."
},
baseUrl: {
type: "string",
optional: true,
description: "Used as the URL prefix for fetched files. Default: Fetch files relative to the index."
},
preferXHR: {
type: "boolean",
optional: true,
description: "Whether to prefer XmlHttpRequest or fetch for async operations if both are available. Default: false"
}
};
return HTTPRequest;
}(file_system_1.BaseFileSystem));
exports.default = HTTPRequest;
//# sourceMappingURL=HTTPRequest.js.map
\ No newline at end of file
/// <reference types="node" />
import { BFSCallback, FileSystemOptions } from '../core/file_system';
import { SyncKeyValueStore, SimpleSyncStore, SyncKeyValueRWTransaction, SyncKeyValueFileSystem } from '../generic/key_value_filesystem';
/**
* A simple in-memory key-value store backed by a JavaScript object.
*/
export declare class InMemoryStore implements SyncKeyValueStore, SimpleSyncStore {
private store;
name(): string;
clear(): void;
beginTransaction(type: string): SyncKeyValueRWTransaction;
get(key: string): Buffer;
put(key: string, data: Buffer, overwrite: boolean): boolean;
del(key: string): void;
}
/**
* A simple in-memory file system backed by an InMemoryStore.
* Files are not persisted across page loads.
*/
export default class InMemoryFileSystem extends SyncKeyValueFileSystem {
static readonly Name = "InMemory";
static readonly Options: FileSystemOptions;
/**
* Creates an InMemoryFileSystem instance.
*/
static Create(options: any, cb: BFSCallback<InMemoryFileSystem>): void;
private constructor();
}
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.InMemoryStore = void 0;
var key_value_filesystem_1 = require("../generic/key_value_filesystem");
/**
* A simple in-memory key-value store backed by a JavaScript object.
*/
var InMemoryStore = /** @class */ (function () {
function InMemoryStore() {
this.store = {};
}
InMemoryStore.prototype.name = function () { return InMemoryFileSystem.Name; };
InMemoryStore.prototype.clear = function () { this.store = {}; };
InMemoryStore.prototype.beginTransaction = function (type) {
return new key_value_filesystem_1.SimpleSyncRWTransaction(this);
};
InMemoryStore.prototype.get = function (key) {
return this.store[key];
};
InMemoryStore.prototype.put = function (key, data, overwrite) {
if (!overwrite && this.store.hasOwnProperty(key)) {
return false;
}
this.store[key] = data;
return true;
};
InMemoryStore.prototype.del = function (key) {
delete this.store[key];
};
return InMemoryStore;
}());
exports.InMemoryStore = InMemoryStore;
/**
* A simple in-memory file system backed by an InMemoryStore.
* Files are not persisted across page loads.
*/
var InMemoryFileSystem = /** @class */ (function (_super) {
__extends(InMemoryFileSystem, _super);
function InMemoryFileSystem() {
return _super.call(this, { store: new InMemoryStore() }) || this;
}
/**
* Creates an InMemoryFileSystem instance.
*/
InMemoryFileSystem.Create = function (options, cb) {
cb(null, new InMemoryFileSystem());
};
InMemoryFileSystem.Name = "InMemory";
InMemoryFileSystem.Options = {};
return InMemoryFileSystem;
}(key_value_filesystem_1.SyncKeyValueFileSystem));
exports.default = InMemoryFileSystem;
//# sourceMappingURL=InMemory.js.map
\ No newline at end of file
/// <reference types="node" />
import { BFSOneArgCallback, BFSCallback, FileSystemOptions } from '../core/file_system';
import { AsyncKeyValueROTransaction, AsyncKeyValueRWTransaction, AsyncKeyValueStore, AsyncKeyValueFileSystem } from '../generic/key_value_filesystem';
/**
* @hidden
*/
export declare class IndexedDBROTransaction implements AsyncKeyValueROTransaction {
tx: IDBTransaction;
store: IDBObjectStore;
constructor(tx: IDBTransaction, store: IDBObjectStore);
get(key: string, cb: BFSCallback<Buffer>): void;
}
/**
* @hidden
*/
export declare class IndexedDBRWTransaction extends IndexedDBROTransaction implements AsyncKeyValueRWTransaction, AsyncKeyValueROTransaction {
constructor(tx: IDBTransaction, store: IDBObjectStore);
put(key: string, data: Buffer, overwrite: boolean, cb: BFSCallback<boolean>): void;
del(key: string, cb: BFSOneArgCallback): void;
commit(cb: BFSOneArgCallback): void;
abort(cb: BFSOneArgCallback): void;
}
export declare class IndexedDBStore implements AsyncKeyValueStore {
private db;
private storeName;
static Create(storeName: string, cb: BFSCallback<IndexedDBStore>): void;
constructor(db: IDBDatabase, storeName: string);
name(): string;
clear(cb: BFSOneArgCallback): void;
beginTransaction(type: 'readonly'): AsyncKeyValueROTransaction;
beginTransaction(type: 'readwrite'): AsyncKeyValueRWTransaction;
}
/**
* Configuration options for the IndexedDB file system.
*/
export interface IndexedDBFileSystemOptions {
storeName?: string;
cacheSize?: number;
}
/**
* A file system that uses the IndexedDB key value file system.
*/
export default class IndexedDBFileSystem extends AsyncKeyValueFileSystem {
static readonly Name = "IndexedDB";
static readonly Options: FileSystemOptions;
/**
* Constructs an IndexedDB file system with the given options.
*/
static Create(opts: IndexedDBFileSystemOptions, cb: BFSCallback<IndexedDBFileSystem>): void;
static isAvailable(): boolean;
private constructor();
}
No preview for this file type
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论