├── .gitignore
├── .vscode
└── launch.json
├── README.md
├── demo.gif
├── lib
├── interpreter.js
├── interpreter.js.map
├── test.js
└── test.js.map
├── package.json
├── src
├── eval.ts
├── main.ts
├── scope.ts
├── test.ts
├── type.ts
└── vm.ts
├── tsconfig.json
├── webpack.config.js
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/**
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // 使用 IntelliSense 了解相关属性。
3 | // 悬停以查看现有属性的描述。
4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "type": "node",
9 | "request": "launch",
10 | "name": "Launch Program",
11 | "program": "${workspaceFolder}/lib/test.js",
12 | "sourceMaps": true
13 | }
14 | ]
15 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # jsjs
2 |
3 | [https://zhuanlan.zhihu.com/p/34191831](https://zhuanlan.zhihu.com/p/34191831)
4 |
5 | 醉了,一个玩具项目那么多 star.好吧,近期我把这东西代码和注释完善一下,不追求一定能工业应用,但至少能做出一个教学级别项目给大家展示设计思路,保证不辜负这么多 star.
6 |
7 | 
8 |
--------------------------------------------------------------------------------
/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bramblex/jsjs/ab7133f7435acdf16a86473cbd36ab68d6195fba/demo.gif
--------------------------------------------------------------------------------
/lib/interpreter.js:
--------------------------------------------------------------------------------
1 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.interpreter=e():t.interpreter=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function i(s){if(e[s])return e[s].exports;var n=e[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,s){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:s})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){this.value=e,this.kind=t}return t.prototype.$set=function(t){return"const"!==this.value&&(this.value=t,!0)},t.prototype.$get=function(){return this.value},t}();e.ScopeVar=s;var n=function(){function t(t,e){this.object=t,this.property=e}return t.prototype.$set=function(t){return this.object[this.property]=t,!0},t.prototype.$get=function(){return this.object[this.property]},t.prototype.$delete=function(){delete this.object[this.property]},t}();e.PropVar=n;var r=function(){function t(t,e,i){this.prefix="@",this.type=t,this.parent=e||null,this.content={},this.invasived=!1}return t.prototype.$find=function(t){var e=this.prefix+t;return this.content.hasOwnProperty(e)?this.content[e]:this.parent?this.parent.$find(t):null},t.prototype.$let=function(t,e){var i=this.prefix+t;return!this.content[i]&&(this.content[i]=new s("let",e),!0)},t.prototype.$const=function(t,e){var i=this.prefix+t;return!this.content[i]&&(this.content[i]=new s("const",e),!0)},t.prototype.$var=function(t,e){for(var i=this.prefix+t,n=this;null!==n.parent&&"function"!==n.type;)n=n.parent;return!n.content[i]&&(this.content[i]=new s("var",e),!0)},t.prototype.$declar=function(t,e,i){var s=this;return{var:function(){return s.$var(e,i)},let:function(){return s.$let(e,i)},const:function(){return s.$const(e,i)}}[t]()},t}();e.Scope=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=i(2),n=i(0),r=i(3),a={ecmaVersion:5,sourceType:"script",locations:!0},o={console:console,setTimeout:setTimeout,setInterval:setInterval,clearTimeout:clearTimeout,clearInterval:clearInterval,encodeURI:encodeURI,encodeURIComponent:encodeURIComponent,decodeURI:decodeURI,decodeURIComponent:decodeURIComponent,escape:escape,unescape:unescape,Infinity:1/0,NaN:NaN,isFinite:isFinite,isNaN:isNaN,parseFloat:parseFloat,parseInt:parseInt,Object:Object,Boolean:Boolean,Error:Error,EvalError:EvalError,RangeError:RangeError,ReferenceError:ReferenceError,SyntaxError:SyntaxError,TypeError:TypeError,URIError:URIError,Number:Number,Math:Math,Date:Date,String:String,RegExp:RegExp,Array:Array,JSON:JSON,Promise:Promise};e.run=function(t,e){void 0===e&&(e={});var i=new n.Scope("block");i.$const("this",this);for(var h=0,p=Object.getOwnPropertyNames(o);h
t)return!1;if((i+=e[s+1])>=t)return!0}}function l(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&o.test(String.fromCharCode(t)):!1!==e&&u(t,p)))}function d(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&h.test(String.fromCharCode(t)):!1!==e&&(u(t,p)||u(t,c)))))}var f=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function m(t,e){return new f(t,{beforeExpr:!0,binop:e})}var x={beforeExpr:!0},y={startsExpr:!0},v={};function g(t,e){return void 0===e&&(e={}),e.keyword=t,v[t]=new f(t,e)}var b={num:new f("num",y),regexp:new f("regexp",y),string:new f("string",y),name:new f("name",y),eof:new f("eof"),bracketL:new f("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new f("]"),braceL:new f("{",{beforeExpr:!0,startsExpr:!0}),braceR:new f("}"),parenL:new f("(",{beforeExpr:!0,startsExpr:!0}),parenR:new f(")"),comma:new f(",",x),semi:new f(";",x),colon:new f(":",x),dot:new f("."),question:new f("?",x),arrow:new f("=>",x),template:new f("template"),invalidTemplate:new f("invalidTemplate"),ellipsis:new f("...",x),backQuote:new f("`",y),dollarBraceL:new f("${",{beforeExpr:!0,startsExpr:!0}),eq:new f("=",{beforeExpr:!0,isAssign:!0}),assign:new f("_=",{beforeExpr:!0,isAssign:!0}),incDec:new f("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new f("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:m("||",1),logicalAND:m("&&",2),bitwiseOR:m("|",3),bitwiseXOR:m("^",4),bitwiseAND:m("&",5),equality:m("==/!=/===/!==",6),relational:m(">/<=/>=",7),bitShift:m("<>>/>>>",8),plusMin:new f("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:m("%",10),star:m("*",10),slash:m("/",10),starstar:new f("**",{beforeExpr:!0}),_break:g("break"),_case:g("case",x),_catch:g("catch"),_continue:g("continue"),_debugger:g("debugger"),_default:g("default",x),_do:g("do",{isLoop:!0,beforeExpr:!0}),_else:g("else",x),_finally:g("finally"),_for:g("for",{isLoop:!0}),_function:g("function",y),_if:g("if"),_return:g("return",x),_switch:g("switch"),_throw:g("throw",x),_try:g("try"),_var:g("var"),_const:g("const"),_while:g("while",{isLoop:!0}),_with:g("with"),_new:g("new",{beforeExpr:!0,startsExpr:!0}),_this:g("this",y),_super:g("super",y),_class:g("class",y),_extends:g("extends",x),_export:g("export"),_import:g("import"),_null:g("null",y),_true:g("true",y),_false:g("false",y),_in:g("in",{beforeExpr:!0,binop:7}),_instanceof:g("instanceof",{beforeExpr:!0,binop:7}),_typeof:g("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:g("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:g("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},k=/\r\n?|\n|\u2028|\u2029/,w=new RegExp(k.source,"g");function E(t){return 10===t||13===t||8232===t||8233===t}var S=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,A=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,C=Object.prototype,P=C.hasOwnProperty,_=C.toString;function T(t,e){return P.call(t,e)}var L=Array.isArray||function(t){return"[object Array]"===_.call(t)},N=function(t,e){this.line=t,this.column=e};N.prototype.offset=function(t){return new N(this.line,this.column+t)};var I=function(t,e,i){this.start=e,this.end=i,null!==t.sourceFile&&(this.source=t.sourceFile)};function R(t,e){for(var i=1,s=0;;){w.lastIndex=s;var n=w.exec(t);if(!(n&&n.index=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),L(e.onToken)){var s=e.onToken;e.onToken=function(t){return s.push(t)}}return L(e.onComment)&&(e.onComment=function(t,e){return function(i,s,n,r,a,o){var h={type:i?"Block":"Line",value:s,start:n,end:r};t.locations&&(h.loc=new I(this,a,o)),t.ranges&&(h.range=[n,r]),e.push(h)}}(e,e.onComment)),e}var $={};function D(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}var O=function(t,i,n){this.options=t=F(t),this.sourceFile=t.sourceFile,this.keywords=D(s[t.ecmaVersion>=6?6:5]);var r="";if(!t.allowReserved){for(var a=t.ecmaVersion;!(r=e[a]);a--);"module"==t.sourceType&&(r+=" await")}this.reservedWords=D(r);var o=(r?r+" ":"")+e.strict;this.reservedWordsStrict=D(o),this.reservedWordsStrictBind=D(o+" "+e.strictBind),this.input=String(i),this.containsEsc=!1,this.loadPlugins(t.plugins),n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(k).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=b.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope()};O.prototype.isKeyword=function(t){return this.keywords.test(t)},O.prototype.isReservedWord=function(t){return this.reservedWords.test(t)},O.prototype.extend=function(t,e){this[t]=e(this[t])},O.prototype.loadPlugins=function(t){for(var e in t){var i=$[e];if(!i)throw new Error("Plugin '"+e+"' not found");i(this,t[e])}},O.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)};var B=O.prototype,M=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;function j(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}B.strictDirective=function(t){for(;;){A.lastIndex=t,t+=A.exec(this.input)[0].length;var e=M.exec(this.input.slice(t));if(!e)return!1;if("use strict"==(e[1]||e[2]))return!0;t+=e[0].length}},B.eat=function(t){return this.type===t&&(this.next(),!0)},B.isContextual=function(t){return this.type===b.name&&this.value===t&&!this.containsEsc},B.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},B.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},B.canInsertSemicolon=function(){return this.type===b.eof||this.type===b.braceR||k.test(this.input.slice(this.lastTokEnd,this.start))},B.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},B.semicolon=function(){this.eat(b.semi)||this.insertSemicolon()||this.unexpected()},B.afterTrailingComma=function(t,e){if(this.type==t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},B.expect=function(t){this.eat(t)||this.unexpected()},B.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")},B.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var i=e?t.parenthesizedAssign:t.parenthesizedBind;i>-1&&this.raiseRecoverable(i,"Parenthesized pattern")}},B.checkExpressionErrors=function(t,e){if(!t)return!1;var i=t.shorthandAssign,s=t.doubleProto;if(!e)return i>=0||s>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),s>=0&&this.raiseRecoverable(s,"Redefinition of __proto__ property")},B.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(t.sourceType=this.options.sourceType),this.finishNode(t,"Program")};var q={kind:"loop"},z={kind:"switch"};U.isLet=function(){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;A.lastIndex=this.pos;var t=A.exec(this.input),e=this.pos+t[0].length,i=this.input.charCodeAt(e);if(91===i||123==i)return!0;if(l(i,!0)){for(var s=e+1;d(this.input.charCodeAt(s),!0);)++s;var r=this.input.slice(e,s);if(!n.test(r))return!0}return!1},U.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;A.lastIndex=this.pos;var t=A.exec(this.input),e=this.pos+t[0].length;return!(k.test(this.input.slice(this.pos,e))||"function"!==this.input.slice(e,e+8)||e+8!=this.input.length&&d(this.input.charAt(e+8)))},U.parseStatement=function(t,e,i){var s,n=this.type,r=this.startNode();switch(this.isLet()&&(n=b._var,s="let"),n){case b._break:case b._continue:return this.parseBreakContinueStatement(r,n.keyword);case b._debugger:return this.parseDebuggerStatement(r);case b._do:return this.parseDoStatement(r);case b._for:return this.parseForStatement(r);case b._function:return!t&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1);case b._class:return t||this.unexpected(),this.parseClass(r,!0);case b._if:return this.parseIfStatement(r);case b._return:return this.parseReturnStatement(r);case b._switch:return this.parseSwitchStatement(r);case b._throw:return this.parseThrowStatement(r);case b._try:return this.parseTryStatement(r);case b._const:case b._var:return s=s||this.value,t||"var"==s||this.unexpected(),this.parseVarStatement(r,s);case b._while:return this.parseWhileStatement(r);case b._with:return this.parseWithStatement(r);case b.braceL:return this.parseBlock();case b.semi:return this.parseEmptyStatement(r);case b._export:case b._import:return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),n===b._import?this.parseImport(r):this.parseExport(r,i);default:if(this.isAsyncFunction())return t||this.unexpected(),this.next(),this.parseFunctionStatement(r,!0);var a=this.value,o=this.parseExpression();return n===b.name&&"Identifier"===o.type&&this.eat(b.colon)?this.parseLabeledStatement(r,a,o):this.parseExpressionStatement(r,o)}},U.parseBreakContinueStatement=function(t,e){var i="break"==e;this.next(),this.eat(b.semi)||this.insertSemicolon()?t.label=null:this.type!==b.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var s=0;s=6?this.eat(b.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},U.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.inAsync&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(q),this.enterLexicalScope(),this.expect(b.parenL),this.type===b.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var i=this.isLet();if(this.type===b._var||this.type===b._const||i){var s=this.startNode(),n=i?"let":this.value;return this.next(),this.parseVar(s,!0,n),this.finishNode(s,"VariableDeclaration"),!(this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==s.declarations.length||"var"!==n&&s.declarations[0].init?(e>-1&&this.unexpected(e),this.parseFor(t,s)):(this.options.ecmaVersion>=9&&(this.type===b._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,s))}var r=new j,a=this.parseExpression(!0,r);return this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===b._in?e>-1&&this.unexpected(e):t.await=e>-1),this.toAssignable(a,!1,r),this.checkLVal(a),this.parseForIn(t,a)):(this.checkExpressionErrors(r,!0),e>-1&&this.unexpected(e),this.parseFor(t,a))},U.parseFunctionStatement=function(t,e){return this.next(),this.parseFunction(t,!0,!1,e)},U.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement(!this.strict&&this.type==b._function),t.alternate=this.eat(b._else)?this.parseStatement(!this.strict&&this.type==b._function):null,this.finishNode(t,"IfStatement")},U.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(b.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},U.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(b.braceL),this.labels.push(z),this.enterLexicalScope();for(var i=!1;this.type!=b.braceR;)if(this.type===b._case||this.type===b._default){var s=this.type===b._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),s?e.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),this.expect(b.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(!0));return this.exitLexicalScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},U.parseThrowStatement=function(t){return this.next(),k.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var W=[];U.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===b._catch){var e=this.startNode();this.next(),this.expect(b.parenL),e.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(e.param,"let"),this.expect(b.parenR),e.body=this.parseBlock(!1),this.exitLexicalScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(b._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},U.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},U.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(q),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"WhileStatement")},U.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement(!1),this.finishNode(t,"WithStatement")},U.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},U.parseLabeledStatement=function(t,e,i){for(var s=0,n=this.labels;s=0;a--){var o=this.labels[a];if(o.statementStart!=t.start)break;o.statementStart=this.start,o.kind=r}return this.labels.push({name:e,kind:r,statementStart:this.start}),t.body=this.parseStatement(!0),("ClassDeclaration"==t.body.type||"VariableDeclaration"==t.body.type&&"var"!=t.body.kind||"FunctionDeclaration"==t.body.type&&(this.strict||t.body.generator))&&this.raiseRecoverable(t.body.start,"Invalid labeled declaration"),this.labels.pop(),t.label=i,this.finishNode(t,"LabeledStatement")},U.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},U.parseBlock=function(t){void 0===t&&(t=!0);var e=this.startNode();for(e.body=[],this.expect(b.braceL),t&&this.enterLexicalScope();!this.eat(b.braceR);){var i=this.parseStatement(!0);e.body.push(i)}return t&&this.exitLexicalScope(),this.finishNode(e,"BlockStatement")},U.parseFor=function(t,e){return t.init=e,this.expect(b.semi),t.test=this.type===b.semi?null:this.parseExpression(),this.expect(b.semi),t.update=this.type===b.parenR?null:this.parseExpression(),this.expect(b.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"ForStatement")},U.parseForIn=function(t,e){var i=this.type===b._in?"ForInStatement":"ForOfStatement";return this.next(),"ForInStatement"==i&&("AssignmentPattern"===e.type||"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(this.strict||"Identifier"!==e.declarations[0].id.type))&&this.raise(e.start,"Invalid assignment in for-in loop head"),t.left=e,t.right="ForInStatement"==i?this.parseExpression():this.parseMaybeAssign(),this.expect(b.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,i)},U.parseVar=function(t,e,i){for(t.declarations=[],t.kind=i;;){var s=this.startNode();if(this.parseVarId(s,i),this.eat(b.eq)?s.init=this.parseMaybeAssign(e):"const"!==i||this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"==s.id.type||e&&(this.type===b._in||this.isContextual("of"))?s.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(s,"VariableDeclarator")),!this.eat(b.comma))break}return t},U.parseVarId=function(t,e){t.id=this.parseBindingAtom(e),this.checkLVal(t.id,e,!1)},U.parseFunction=function(t,e,i,s){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!s)&&(t.generator=this.eat(b.star)),this.options.ecmaVersion>=8&&(t.async=!!s),e&&(t.id="nullableID"===e&&this.type!=b.name?null:this.parseIdent(),t.id&&this.checkLVal(t.id,"var"));var n=this.inGenerator,r=this.inAsync,a=this.yieldPos,o=this.awaitPos,h=this.inFunction;return this.inGenerator=t.generator,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),e||(t.id=this.type==b.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,i),this.inGenerator=n,this.inAsync=r,this.yieldPos=a,this.awaitPos=o,this.inFunction=h,this.finishNode(t,e?"FunctionDeclaration":"FunctionExpression")},U.parseFunctionParams=function(t){this.expect(b.parenL),t.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},U.parseClass=function(t,e){this.next(),this.parseClassId(t,e),this.parseClassSuper(t);var i=this.startNode(),s=!1;for(i.body=[],this.expect(b.braceL);!this.eat(b.braceR);){var n=this.parseClassMember(i);n&&"MethodDefinition"===n.type&&"constructor"===n.kind&&(s&&this.raise(n.start,"Duplicate constructor in the same class"),s=!0)}return t.body=this.finishNode(i,"ClassBody"),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},U.parseClassMember=function(t){var e=this;if(this.eat(b.semi))return null;var i=this.startNode(),s=function(t,s){void 0===s&&(s=!1);var n=e.start,r=e.startLoc;return!!e.eatContextual(t)&&(!(e.type===b.parenL||s&&e.canInsertSemicolon())||(i.key&&e.unexpected(),i.computed=!1,i.key=e.startNodeAt(n,r),i.key.name=t,e.finishNode(i.key,"Identifier"),!1))};i.kind="method",i.static=s("static");var n=this.eat(b.star),r=!1;n||(this.options.ecmaVersion>=8&&s("async",!0)?(r=!0,n=this.options.ecmaVersion>=9&&this.eat(b.star)):s("get")?i.kind="get":s("set")&&(i.kind="set")),i.key||this.parsePropertyName(i);var a=i.key;return i.computed||i.static||!("Identifier"===a.type&&"constructor"===a.name||"Literal"===a.type&&"constructor"===a.value)?i.static&&"Identifier"===a.type&&"prototype"===a.name&&this.raise(a.start,"Classes may not have a static property named prototype"):("method"!==i.kind&&this.raise(a.start,"Constructor can't have get/set modifier"),n&&this.raise(a.start,"Constructor can't be a generator"),r&&this.raise(a.start,"Constructor can't be an async method"),i.kind="constructor"),this.parseClassMethod(t,i,n,r),"get"===i.kind&&0!==i.value.params.length&&this.raiseRecoverable(i.value.start,"getter should have no params"),"set"===i.kind&&1!==i.value.params.length&&this.raiseRecoverable(i.value.start,"setter should have exactly one param"),"set"===i.kind&&"RestElement"===i.value.params[0].type&&this.raiseRecoverable(i.value.params[0].start,"Setter cannot use rest params"),i},U.parseClassMethod=function(t,e,i,s){e.value=this.parseMethod(i,s),t.body.push(this.finishNode(e,"MethodDefinition"))},U.parseClassId=function(t,e){t.id=this.type===b.name?this.parseIdent():!0===e?this.unexpected():null},U.parseClassSuper=function(t){t.superClass=this.eat(b._extends)?this.parseExprSubscripts():null},U.parseExport=function(t,e){if(this.next(),this.eat(b.star))return this.expectContextual("from"),this.type!==b.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration");if(this.eat(b._default)){var i;if(this.checkExport(e,"default",this.lastTokStart),this.type===b._function||(i=this.isAsyncFunction())){var s=this.startNode();this.next(),i&&this.next(),t.declaration=this.parseFunction(s,"nullableID",!1,i)}else if(this.type===b._class){var n=this.startNode();t.declaration=this.parseClass(n,"nullableID")}else t.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(t,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())t.declaration=this.parseStatement(!0),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id.name,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==b.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var r=0,a=t.specifiers;r=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",i&&this.checkPatternErrors(i,!0);for(var s=0,n=t.properties;s=6)switch(this.type){case b.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(b.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case b.braceL:return this.parseObj(!0)}return this.parseIdent()},G.parseBindingList=function(t,e,i){for(var s=[],n=!0;!this.eat(t);)if(n?n=!1:this.expect(b.comma),e&&this.type===b.comma)s.push(null);else{if(i&&this.afterTrailingComma(t))break;if(this.type===b.ellipsis){var r=this.parseRestBinding();this.parseBindingListItem(r),s.push(r),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}var a=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(a),s.push(a)}return s},G.parseBindingListItem=function(t){return t},G.parseMaybeDefault=function(t,e,i){if(i=i||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(b.eq))return i;var s=this.startNodeAt(t,e);return s.left=i,s.right=this.parseMaybeAssign(),this.finishNode(s,"AssignmentPattern")},G.checkLVal=function(t,e,i){switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(e?"Binding ":"Assigning to ")+t.name+" in strict mode"),i&&(T(i,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),i[t.name]=!0),e&&"none"!==e&&(("var"===e&&!this.canDeclareVarName(t.name)||"var"!==e&&!this.canDeclareLexicalName(t.name))&&this.raiseRecoverable(t.start,"Identifier '"+t.name+"' has already been declared"),"var"===e?this.declareVarName(t.name):this.declareLexicalName(t.name));break;case"MemberExpression":e&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ObjectPattern":for(var s=0,n=t.properties;s=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var s,n=t.key;switch(n.type){case"Identifier":s=n.name;break;case"Literal":s=String(n.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===s&&"init"===r&&(e.proto&&(i&&i.doubleProto<0?i.doubleProto=n.start:this.raiseRecoverable(n.start,"Redefinition of __proto__ property")),e.proto=!0);else{var a=e[s="$"+s];if(a)("init"===r?this.strict&&a.init||a.get||a.set:a.init||a[r])&&this.raiseRecoverable(n.start,"Redefinition of property");else a=e[s]={init:!1,get:!1,set:!1};a[r]=!0}}},Y.parseExpression=function(t,e){var i=this.start,s=this.startLoc,n=this.parseMaybeAssign(t,e);if(this.type===b.comma){var r=this.startNodeAt(i,s);for(r.expressions=[n];this.eat(b.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return n},Y.parseMaybeAssign=function(t,e,i){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var s=!1,n=-1,r=-1;e?(n=e.parenthesizedAssign,r=e.trailingComma,e.parenthesizedAssign=e.trailingComma=-1):(e=new j,s=!0);var a=this.start,o=this.startLoc;this.type!=b.parenL&&this.type!=b.name||(this.potentialArrowAt=this.start);var h=this.parseMaybeConditional(t,e);if(i&&(h=i.call(this,h,a,o)),this.type.isAssign){var p=this.startNodeAt(a,o);return p.operator=this.value,p.left=this.type===b.eq?this.toAssignable(h,!1,e):h,s||j.call(e),e.shorthandAssign=-1,this.checkLVal(h),this.next(),p.right=this.parseMaybeAssign(t),this.finishNode(p,"AssignmentExpression")}return s&&this.checkExpressionErrors(e,!0),n>-1&&(e.parenthesizedAssign=n),r>-1&&(e.trailingComma=r),h},Y.parseMaybeConditional=function(t,e){var i=this.start,s=this.startLoc,n=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return n;if(this.eat(b.question)){var r=this.startNodeAt(i,s);return r.test=n,r.consequent=this.parseMaybeAssign(),this.expect(b.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return n},Y.parseExprOps=function(t,e){var i=this.start,s=this.startLoc,n=this.parseMaybeUnary(e,!1);return this.checkExpressionErrors(e)?n:n.start==i&&"ArrowFunctionExpression"===n.type?n:this.parseExprOp(n,i,s,-1,t)},Y.parseExprOp=function(t,e,i,s,n){var r=this.type.binop;if(null!=r&&(!n||this.type!==b._in)&&r>s){var a=this.type===b.logicalOR||this.type===b.logicalAND,o=this.value;this.next();var h=this.start,p=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),h,p,r,n),u=this.buildBinary(e,i,t,c,o,a);return this.parseExprOp(u,e,i,s,n)}return t},Y.buildBinary=function(t,e,i,s,n,r){var a=this.startNodeAt(t,e);return a.left=i,a.operator=n,a.right=s,this.finishNode(a,r?"LogicalExpression":"BinaryExpression")},Y.parseMaybeUnary=function(t,e){var i,s=this.start,n=this.startLoc;if(this.inAsync&&this.isContextual("await"))i=this.parseAwait(),e=!0;else if(this.type.prefix){var r=this.startNode(),a=this.type===b.incDec;r.operator=this.value,r.prefix=!0,this.next(),r.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),a?this.checkLVal(r.argument):this.strict&&"delete"===r.operator&&"Identifier"===r.argument.type?this.raiseRecoverable(r.start,"Deleting local variable in strict mode"):e=!0,i=this.finishNode(r,a?"UpdateExpression":"UnaryExpression")}else{if(i=this.parseExprSubscripts(t),this.checkExpressionErrors(t))return i;for(;this.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(s,n);o.operator=this.value,o.prefix=!1,o.argument=i,this.checkLVal(i),this.next(),i=this.finishNode(o,"UpdateExpression")}}return!e&&this.eat(b.starstar)?this.buildBinary(s,n,i,this.parseMaybeUnary(null,!1),"**",!1):i},Y.parseExprSubscripts=function(t){var e=this.start,i=this.startLoc,s=this.parseExprAtom(t),n="ArrowFunctionExpression"===s.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(t)||n)return s;var r=this.parseSubscripts(s,e,i);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1)),r},Y.parseSubscripts=function(t,e,i,s){for(var n=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd==t.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(t.start,t.end),r=void 0;;)if((r=this.eat(b.bracketL))||this.eat(b.dot)){var a=this.startNodeAt(e,i);a.object=t,a.property=r?this.parseExpression():this.parseIdent(!0),a.computed=!!r,r&&this.expect(b.bracketR),t=this.finishNode(a,"MemberExpression")}else if(!s&&this.eat(b.parenL)){var o=new j,h=this.yieldPos,p=this.awaitPos;this.yieldPos=0,this.awaitPos=0;var c=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1,o);if(n&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(o,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=h,this.awaitPos=p,this.parseArrowExpression(this.startNodeAt(e,i),c,!0);this.checkExpressionErrors(o,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=p||this.awaitPos;var u=this.startNodeAt(e,i);u.callee=t,u.arguments=c,t=this.finishNode(u,"CallExpression")}else{if(this.type!==b.backQuote)return t;var l=this.startNodeAt(e,i);l.tag=t,l.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(l,"TaggedTemplateExpression")}},Y.parseExprAtom=function(t){var e,i=this.potentialArrowAt==this.start;switch(this.type){case b._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),e=this.startNode(),this.next(),this.type!==b.dot&&this.type!==b.bracketL&&this.type!==b.parenL&&this.unexpected(),this.finishNode(e,"Super");case b._this:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression");case b.name:var s=this.start,n=this.startLoc,r=this.containsEsc,a=this.parseIdent(this.type!==b.name);if(this.options.ecmaVersion>=8&&!r&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(b._function))return this.parseFunction(this.startNodeAt(s,n),!1,!1,!0);if(i&&!this.canInsertSemicolon()){if(this.eat(b.arrow))return this.parseArrowExpression(this.startNodeAt(s,n),[a],!1);if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===b.name&&!r)return a=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(b.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(s,n),[a],!0)}return a;case b.regexp:var o=this.value;return(e=this.parseLiteral(o.value)).regex={pattern:o.pattern,flags:o.flags},e;case b.num:case b.string:return this.parseLiteral(this.value);case b._null:case b._true:case b._false:return(e=this.startNode()).value=this.type===b._null?null:this.type===b._true,e.raw=this.type.keyword,this.next(),this.finishNode(e,"Literal");case b.parenL:var h=this.start,p=this.parseParenAndDistinguishExpression(i);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(p)&&(t.parenthesizedAssign=h),t.parenthesizedBind<0&&(t.parenthesizedBind=h)),p;case b.bracketL:return e=this.startNode(),this.next(),e.elements=this.parseExprList(b.bracketR,!0,!0,t),this.finishNode(e,"ArrayExpression");case b.braceL:return this.parseObj(!1,t);case b._function:return e=this.startNode(),this.next(),this.parseFunction(e,!1);case b._class:return this.parseClass(this.startNode(),!1);case b._new:return this.parseNew();case b.backQuote:return this.parseTemplate();default:this.unexpected()}},Y.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(e,"Literal")},Y.parseParenExpression=function(){this.expect(b.parenL);var t=this.parseExpression();return this.expect(b.parenR),t},Y.parseParenAndDistinguishExpression=function(t){var e,i=this.start,s=this.startLoc,n=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var r,a=this.start,o=this.startLoc,h=[],p=!0,c=!1,u=new j,l=this.yieldPos,d=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==b.parenR;){if(p?p=!1:this.expect(b.comma),n&&this.afterTrailingComma(b.parenR,!0)){c=!0;break}if(this.type===b.ellipsis){r=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}h.push(this.parseMaybeAssign(!1,u,this.parseParenItem))}var f=this.start,m=this.startLoc;if(this.expect(b.parenR),t&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=l,this.awaitPos=d,this.parseParenArrowList(i,s,h);h.length&&!c||this.unexpected(this.lastTokStart),r&&this.unexpected(r),this.checkExpressionErrors(u,!0),this.yieldPos=l||this.yieldPos,this.awaitPos=d||this.awaitPos,h.length>1?((e=this.startNodeAt(a,o)).expressions=h,this.finishNodeAt(e,"SequenceExpression",f,m)):e=h[0]}else e=this.parseParenExpression();if(this.options.preserveParens){var x=this.startNodeAt(i,s);return x.expression=e,this.finishNode(x,"ParenthesizedExpression")}return e},Y.parseParenItem=function(t){return t},Y.parseParenArrowList=function(t,e,i){return this.parseArrowExpression(this.startNodeAt(t,e),i)};var Q=[];Y.parseNew=function(){var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(b.dot)){t.meta=e;var i=this.containsEsc;return t.property=this.parseIdent(!0),("target"!==t.property.name||i)&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(t.start,"new.target can only be used in functions"),this.finishNode(t,"MetaProperty")}var s=this.start,n=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(),s,n,!0),this.eat(b.parenL)?t.arguments=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Q,this.finishNode(t,"NewExpression")},Y.parseTemplateElement=function(t){var e=t.isTagged,i=this.startNode();return this.type===b.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value,cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),i.tail=this.type===b.backQuote,this.finishNode(i,"TemplateElement")},Y.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var i=this.startNode();this.next(),i.expressions=[];var s=this.parseTemplateElement({isTagged:e});for(i.quasis=[s];!s.tail;)this.expect(b.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(b.braceR),i.quasis.push(s=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(i,"TemplateLiteral")},Y.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===b.name||this.type===b.num||this.type===b.string||this.type===b.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===b.star)&&!k.test(this.input.slice(this.lastTokEnd,this.start))},Y.parseObj=function(t,e){var i=this.startNode(),s=!0,n={};for(i.properties=[],this.next();!this.eat(b.braceR);){if(s)s=!1;else if(this.expect(b.comma),this.afterTrailingComma(b.braceR))break;var r=this.parseProperty(t,e);t||this.checkPropClash(r,n,e),i.properties.push(r)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},Y.parseProperty=function(t,e){var i,s,n,r,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(b.ellipsis))return t?(a.argument=this.parseIdent(!1),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(this.type===b.parenL&&e&&(e.parenthesizedAssign<0&&(e.parenthesizedAssign=this.start),e.parenthesizedBind<0&&(e.parenthesizedBind=this.start)),a.argument=this.parseMaybeAssign(!1,e),this.type===b.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(t||e)&&(n=this.start,r=this.startLoc),t||(i=this.eat(b.star)));var o=this.containsEsc;return this.parsePropertyName(a),!t&&!o&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(a)?(s=!0,i=this.options.ecmaVersion>=9&&this.eat(b.star),this.parsePropertyName(a,e)):s=!1,this.parsePropertyValue(a,t,i,s,n,r,e,o),this.finishNode(a,"Property")},Y.parsePropertyValue=function(t,e,i,s,n,r,a,o){if((i||s)&&this.type===b.colon&&this.unexpected(),this.eat(b.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),t.kind="init";else if(this.options.ecmaVersion>=6&&this.type===b.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(i,s);else if(e||o||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type==b.comma||this.type==b.braceR)this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?(this.checkUnreserved(t.key),t.kind="init",e?t.value=this.parseMaybeDefault(n,r,t.key):this.type===b.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),t.value=this.parseMaybeDefault(n,r,t.key)):t.value=t.key,t.shorthand=!0):this.unexpected();else{(i||s)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var h="get"===t.kind?0:1;if(t.value.params.length!==h){var p=t.value.start;"get"===t.kind?this.raiseRecoverable(p,"getter should have no params"):this.raiseRecoverable(p,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}},Y.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(b.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(b.bracketR),t.key;t.computed=!1}return t.key=this.type===b.num||this.type===b.string?this.parseExprAtom():this.parseIdent(!0)},Y.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=!1,t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},Y.parseMethod=function(t,e){var i=this.startNode(),s=this.inGenerator,n=this.inAsync,r=this.yieldPos,a=this.awaitPos,o=this.inFunction;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=t),this.options.ecmaVersion>=8&&(i.async=!!e),this.inGenerator=i.generator,this.inAsync=i.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(b.parenL),i.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1),this.inGenerator=s,this.inAsync=n,this.yieldPos=r,this.awaitPos=a,this.inFunction=o,this.finishNode(i,"FunctionExpression")},Y.parseArrowExpression=function(t,e,i){var s=this.inGenerator,n=this.inAsync,r=this.yieldPos,a=this.awaitPos,o=this.inFunction;return this.enterFunctionScope(),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!i),this.inGenerator=!1,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0),this.inGenerator=s,this.inAsync=n,this.yieldPos=r,this.awaitPos=a,this.inFunction=o,this.finishNode(t,"ArrowFunctionExpression")},Y.parseFunctionBody=function(t,e){var i=e&&this.type!==b.braceL,s=this.strict,n=!1;if(i)t.body=this.parseMaybeAssign(),t.expression=!0,this.checkParams(t,!1);else{var r=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);s&&!r||(n=this.strictDirective(this.end))&&r&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var a=this.labels;this.labels=[],n&&(this.strict=!0),this.checkParams(t,!s&&!n&&!e&&this.isSimpleParamList(t.params)),t.body=this.parseBlock(!1),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=a}this.exitFunctionScope(),this.strict&&t.id&&this.checkLVal(t.id,"none"),this.strict=s},Y.isSimpleParamList=function(t){for(var e=0,i=t;e0;)e[i]=arguments[i+1];for(var s=0,n=e;s=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},st.updateContext=function(t){var e,i=this.type;i.keyword&&t==b.dot?this.exprAllowed=!1:(e=i.updateContext)?e.call(this,t):this.exprAllowed=i.beforeExpr},b.parenR.updateContext=b.braceR.updateContext=function(){if(1!=this.context.length){var t=this.context.pop();t===it.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},b.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?it.b_stat:it.b_expr),this.exprAllowed=!0},b.dollarBraceL.updateContext=function(){this.context.push(it.b_tmpl),this.exprAllowed=!0},b.parenL.updateContext=function(t){var e=t===b._if||t===b._for||t===b._with||t===b._while;this.context.push(e?it.p_stat:it.p_expr),this.exprAllowed=!0},b.incDec.updateContext=function(){},b._function.updateContext=b._class.updateContext=function(t){t.beforeExpr&&t!==b.semi&&t!==b._else&&(t!==b.colon&&t!==b.braceL||this.curContext()!==it.b_stat)?this.context.push(it.f_expr):this.context.push(it.f_stat),this.exprAllowed=!1},b.backQuote.updateContext=function(){this.curContext()===it.q_tmpl?this.context.pop():this.context.push(it.q_tmpl),this.exprAllowed=!1},b.star.updateContext=function(t){if(t==b._function){var e=this.context.length-1;this.context[e]===it.f_expr?this.context[e]=it.f_expr_gen:this.context[e]=it.f_gen}this.exprAllowed=!0},b.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&("of"==this.value&&!this.exprAllowed||"yield"==this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var nt=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new I(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},rt=O.prototype,at="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);function ot(t,e,i,s){try{return new RegExp(t,e)}catch(t){if(void 0!==i)throw t instanceof SyntaxError&&s.raise(i,"Error parsing regular expression: "+t.message),t}}rt.next=function(){this.options.onToken&&this.options.onToken(new nt(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},rt.getToken=function(){return this.next(),new nt(this)},"undefined"!=typeof Symbol&&(rt[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===b.eof,value:e}}}}),rt.curContext=function(){return this.context[this.context.length-1]},rt.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(b.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},rt.readToken=function(t){return l(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},rt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);return t<=55295||t>=57344?t:(t<<10)+this.input.charCodeAt(this.pos+1)-56613888},rt.skipBlockComment=function(){var t,e=this.options.onComment&&this.curPosition(),i=this.pos,s=this.input.indexOf("*/",this.pos+=2);if(-1===s&&this.raise(this.pos-2,"Unterminated comment"),this.pos=s+2,this.options.locations)for(w.lastIndex=i;(t=w.exec(this.input))&&t.index8&&t<14||t>=5760&&S.test(String.fromCharCode(t))))break t;++this.pos}}},rt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=t,this.value=e,this.updateContext(i)},rt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(b.ellipsis)):(++this.pos,this.finishToken(b.dot))},rt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(b.assign,2):this.finishOp(b.slash,1)},rt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),i=1,s=42===t?b.star:b.modulo;return this.options.ecmaVersion>=7&&42==t&&42===e&&(++i,s=b.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(b.assign,i+1):this.finishOp(s,i)},rt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?this.finishOp(124===t?b.logicalOR:b.logicalAND,2):61===e?this.finishOp(b.assign,2):this.finishOp(124===t?b.bitwiseOR:b.bitwiseAND,1)},rt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(b.assign,2):this.finishOp(b.bitwiseXOR,1)},rt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!=e||this.inModule||62!=this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!k.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(b.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(b.assign,2):this.finishOp(b.plusMin,1)},rt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),i=1;return e===t?(i=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+i)?this.finishOp(b.assign,i+1):this.finishOp(b.bitShift,i)):33!=e||60!=t||this.inModule||45!=this.input.charCodeAt(this.pos+2)||45!=this.input.charCodeAt(this.pos+3)?(61===e&&(i=2),this.finishOp(b.relational,i)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},rt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(b.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(b.arrow)):this.finishOp(61===t?b.eq:b.prefix,1)},rt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(b.parenL);case 41:return++this.pos,this.finishToken(b.parenR);case 59:return++this.pos,this.finishToken(b.semi);case 44:return++this.pos,this.finishToken(b.comma);case 91:return++this.pos,this.finishToken(b.bracketL);case 93:return++this.pos,this.finishToken(b.bracketR);case 123:return++this.pos,this.finishToken(b.braceL);case 125:return++this.pos,this.finishToken(b.braceR);case 58:return++this.pos,this.finishToken(b.colon);case 63:return++this.pos,this.finishToken(b.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(b.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 126:return this.finishOp(b.prefix,1)}this.raise(this.pos,"Unexpected character '"+pt(t)+"'")},rt.finishOp=function(t,e){var i=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,i)};var ht=!!ot("","u");function pt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}rt.readRegexp=function(){for(var t,e,i=this,s=this.pos;;){i.pos>=i.input.length&&i.raise(s,"Unterminated regular expression");var n=i.input.charAt(i.pos);if(k.test(n)&&i.raise(s,"Unterminated regular expression"),t)t=!1;else{if("["===n)e=!0;else if("]"===n&&e)e=!1;else if("/"===n&&!e)break;t="\\"===n}++i.pos}var r=this.input.slice(s,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var h=r,p="";if(o){var c="gim";this.options.ecmaVersion>=6&&(c+="uy"),this.options.ecmaVersion>=9&&(c+="s");for(var u=0;u-1&&i.raise(s,"Duplicate regular expression flag")}o.indexOf("u")>=0&&(ht?p="u":(h=(h=h.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(t,e,n){return(e=Number("0x"+e))>1114111&&i.raise(s+n+3,"Code point out of bounds"),"x"})).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),p=p.replace("u","")))}var d=null;return at||(ot(h,p,s,this),d=ot(r,o)),this.finishToken(b.regexp,{pattern:r,flags:o,value:d})},rt.readInt=function(t,e){for(var i=this.pos,s=0,n=0,r=null==e?1/0:e;n=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=t)break;++this.pos,s=s*t+o}return this.pos===i||null!=e&&this.pos-i!==e?null:s},rt.readRadixNumber=function(t){this.pos+=2;var e=this.readInt(t);return null==e&&this.raise(this.start+2,"Expected number in radix "+t),l(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(b.num,e)},rt.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10)||this.raise(e,"Invalid number");var i=this.pos-e>=2&&48===this.input.charCodeAt(e);i&&this.strict&&this.raise(e,"Invalid number"),i&&/[89]/.test(this.input.slice(e,this.pos))&&(i=!1);var s=this.input.charCodeAt(this.pos);46!==s||i||(++this.pos,this.readInt(10),s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(43!==(s=this.input.charCodeAt(++this.pos))&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),l(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var n=this.input.slice(e,this.pos),r=i?parseInt(n,8):parseFloat(n);return this.finishToken(b.num,r)},rt.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},rt.readString=function(t){for(var e="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var s=this.input.charCodeAt(this.pos);if(s===t)break;92===s?(e+=this.input.slice(i,this.pos),e+=this.readEscapedChar(!1),i=this.pos):(E(s)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(i,this.pos++),this.finishToken(b.string,e)};var ct={};rt.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==ct)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},rt.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw ct;this.raise(t,e)},rt.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(96===i||36===i&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==b.template&&this.type!==b.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(b.template,t)):36===i?(this.pos+=2,this.finishToken(b.dollarBraceL)):(++this.pos,this.finishToken(b.backQuote));if(92===i)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(E(i)){switch(t+=this.input.slice(e,this.pos),++this.pos,i){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(i)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},rt.readInvalidTemplateToken=function(){for(;this.pos=48&&e<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],s=parseInt(i,8);return s>255&&(i=i.slice(0,-1),s=parseInt(i,8)),this.pos+=i.length-1,e=this.input.charCodeAt(this.pos),"0"===i&&56!=e&&57!=e||!this.strict&&!t||this.invalidStringToken(this.pos-1-i.length,"Octal literal in strict mode"),String.fromCharCode(s)}return String.fromCharCode(e)}},rt.readHexChar=function(t){var e=this.pos,i=this.readInt(16,t);return null===i&&this.invalidStringToken(e,"Bad character escape sequence"),i},rt.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos":function(t,e){return t>e},">=":function(t,e){return t>=e},"<<":function(t,e){return t<>":function(t,e){return t>>e},">>>":function(t,e){return t>>>e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"|":function(t,e){return t|e},"^":function(t,e){return t^e},"&":function(t,e){return t&e},in:function(t,e){return t in e},instanceof:function(t,e){return t instanceof e}}[t.operator](h(t.left,e),h(t.right,e))},AssignmentExpression:function(t,e){var i;if("Identifier"===t.left.type){var s=t.left.name,n=e.$find(s);if(!n)throw s+" 未定义";i=n}else{if("MemberExpression"!==t.left.type)throw"如果出现在这里,那就说明有问题了";var r=t.left,a=h(r.object,e),o=r.computed?h(r.property,e):r.property.name;i={$set:function(t){return a[o]=t,!0},$get:function(){return a[o]}}}return{"=":function(t){return i.$set(t),t},"+=":function(t){return i.$set(i.$get()+t),i.$get()},"-=":function(t){return i.$set(i.$get()-t),i.$get()},"*=":function(t){return i.$set(i.$get()*t),i.$get()},"/=":function(t){return i.$set(i.$get()/t),i.$get()},"%=":function(t){return i.$set(i.$get()%t),i.$get()},"<<=":function(t){return i.$set(i.$get()<>=":function(t){return i.$set(i.$get()>>t),i.$get()},">>>=":function(t){return i.$set(i.$get()>>>t),i.$get()},"|=":function(t){return i.$set(i.$get()|t),i.$get()},"^=":function(t){return i.$set(i.$get()^t),i.$get()},"&=":function(t){return i.$set(i.$get()&t),i.$get()}}[t.operator](h(t.right,e))},LogicalExpression:function(t,e){return{"||":function(){return h(t.left,e)||h(t.right,e)},"&&":function(){return h(t.left,e)&&h(t.right,e)}}[t.operator]()},MemberExpression:function(t,e){var i=t.object,s=t.property;return t.computed?h(i,e)[h(s,e)]:h(i,e)[s.name]},ConditionalExpression:function(t,e){return h(t.test,e)?h(t.consequent,e):h(t.alternate,e)},CallExpression:function(t,e){var i=h(t.callee,e),s=t.arguments.map(function(t){return h(t,e)});if("MemberExpression"===t.callee.type){var n=h(t.callee.object,e);return i.apply(n,s)}var r=e.$find("this");return i.apply(r?r.$get():null,s)},NewExpression:function(t,e){var i=h(t.callee,e),s=t.arguments.map(function(t){return h(t,e)});return new(i.bind.apply(i,[null].concat(s)))},SequenceExpression:function(t,e){for(var i,s=0,n=t.expressions;s {
15 | for (const node of program.body) evaluate(node, scope)
16 | },
17 |
18 | Identifier: (node: ESTree.Identifier, scope: Scope) => {
19 | if (node.name === 'undefined') { return undefined } // 奇怪的问题
20 | const $var = scope.$find(node.name)
21 | if ($var) { return $var.$get() } // 返回
22 | else { throw `[Error] ${node.loc}, '${node.name}' 未定义` }
23 | },
24 |
25 | Literal: (node: ESTree.Literal, scope: Scope) => {
26 | return node.value
27 | },
28 |
29 | BlockStatement: (block: ESTree.BlockStatement, scope: Scope) => {
30 | let new_scope = scope.invasived ? scope : new Scope('block', scope)
31 | for (const node of block.body) {
32 | const result = evaluate(node, new_scope)
33 | if (result === BREAK_SINGAL
34 | || result === CONTINUE_SINGAL
35 | || result === RETURN_SINGAL) {
36 | return result
37 | }
38 | }
39 | },
40 |
41 | EmptyStatement: (node: ESTree.EmptyStatement, scope: Scope) => { /* 空当然啥都不干嘛 */ },
42 |
43 | DebuggerStatement: (node: ESTree.DebuggerStatement, scope: Scope) => { debugger },
44 |
45 | ExpressionStatement: (node: ESTree.ExpressionStatement, scope: Scope) => {
46 | evaluate(node.expression, scope)
47 | },
48 |
49 | ReturnStatement: (node: ESTree.ReturnStatement, scope: Scope) => {
50 | RETURN_SINGAL.result = node.argument ? evaluate(node.argument, scope) : undefined
51 | return RETURN_SINGAL
52 | },
53 |
54 | LabeledStatement: (node: ESTree.LabeledStatement, scope: Scope) => { `${node.type} 未实现` },
55 |
56 | BreakStatement: (node: ESTree.BreakStatement, scope: Scope) => {
57 | return BREAK_SINGAL
58 | },
59 |
60 | ContinueStatement: (node: ESTree.ContinueStatement, scope: Scope) => {
61 | return CONTINUE_SINGAL
62 | },
63 |
64 | IfStatement: (node: ESTree.IfStatement, scope: Scope) => {
65 | if (evaluate(node.test, scope))
66 | return evaluate(node.consequent, scope)
67 | else if (node.alternate)
68 | return evaluate(node.alternate, scope)
69 | },
70 |
71 | SwitchStatement: (node: ESTree.SwitchStatement, scope: Scope) => {
72 | const discriminant = evaluate(node.discriminant, scope)
73 | const new_scope = new Scope('switch', scope)
74 |
75 | let matched = false
76 | for (const $case of node.cases) {
77 |
78 | // 进行匹配相应的 case
79 | if (!matched &&
80 | (!$case.test || discriminant === evaluate($case.test, new_scope))) {
81 | matched = true
82 | }
83 |
84 | if (matched) {
85 | const result = evaluate($case, new_scope)
86 |
87 | if (result === BREAK_SINGAL) { break }
88 | else if (result === CONTINUE_SINGAL || result === RETURN_SINGAL) {
89 | return result
90 | }
91 | }
92 | }
93 | },
94 |
95 | SwitchCase: (node: ESTree.SwitchCase, scope: Scope) => {
96 | for (const stmt of node.consequent) {
97 | const result = evaluate(stmt, scope)
98 | if (result === BREAK_SINGAL
99 | || result === CONTINUE_SINGAL
100 | || result === RETURN_SINGAL) {
101 | return result
102 | }
103 | }
104 | },
105 |
106 | WithStatement: (node: ESTree.WithStatement, scope: Scope) => {
107 | throw '因为 with 很多问题,已经被基本弃用了,不实现'
108 | },
109 |
110 | ThrowStatement: (node: ESTree.ThrowStatement, scope: Scope) => {
111 | throw evaluate(node.argument, scope)
112 | },
113 |
114 | TryStatement: (node: ESTree.TryStatement, scope: Scope) => {
115 | try {
116 | return evaluate(node.block, scope)
117 | } catch (err) {
118 | if (node.handler) {
119 | const param = node.handler.param
120 | const new_scope = new Scope('block', scope)
121 | new_scope.invasived = true // 标记为侵入式Scope,不用再多构造啦
122 | new_scope.$const(param.name, err)
123 | return evaluate(node.handler, new_scope)
124 | } else {
125 | throw err
126 | }
127 | } finally {
128 | if (node.finalizer)
129 | return evaluate(node.finalizer, scope)
130 | }
131 | },
132 |
133 | CatchClause: (node: ESTree.CatchClause, scope: Scope) => {
134 | return evaluate(node.body, scope)
135 | },
136 |
137 | WhileStatement: (node: ESTree.WhileStatement, scope: Scope) => {
138 | while (evaluate(node.test, scope)) {
139 | const new_scope = new Scope('loop', scope)
140 | new_scope.invasived = true
141 | const result = evaluate(node.body, new_scope)
142 |
143 | if (result === BREAK_SINGAL) { break }
144 | else if (result === CONTINUE_SINGAL) { continue }
145 | else if (result === RETURN_SINGAL) { return result }
146 | }
147 | },
148 |
149 | DoWhileStatement: (node: ESTree.DoWhileStatement, scope: Scope) => {
150 | do {
151 | const new_scope = new Scope('loop', scope)
152 | new_scope.invasived = true
153 | const result = evaluate(node.body, new_scope)
154 | if (result === BREAK_SINGAL) { break }
155 | else if (result === CONTINUE_SINGAL) { continue }
156 | else if (result === RETURN_SINGAL) { return result }
157 | } while (evaluate(node.test, scope))
158 | },
159 |
160 | ForStatement: (node: ESTree.ForStatement, scope: Scope) => {
161 | for (
162 | const new_scope = new Scope('loop', scope)
163 | , init_val = node.init ? evaluate(node.init, new_scope) : null;
164 | node.test ? evaluate(node.test, new_scope) : true;
165 | node.update ? evaluate(node.update, new_scope) : void (0)
166 | ) {
167 | const result = evaluate(node.body, new_scope)
168 | if (result === BREAK_SINGAL) { break }
169 | else if (result === CONTINUE_SINGAL) { continue }
170 | else if (result === RETURN_SINGAL) { return result }
171 | }
172 | },
173 |
174 | ForInStatement: (node: ESTree.ForInStatement, scope: Scope) => {
175 |
176 | const kind = (node.left).kind
177 | const decl = (node.left).declarations[0]
178 | const name = (decl.id).name
179 |
180 | for (const value in evaluate(node.right, scope)) {
181 | const new_scope = new Scope('loop', scope)
182 | new_scope.invasived = true
183 | scope.$declar(kind, name, value)
184 | const result = evaluate(node.body, new_scope)
185 | if (result === BREAK_SINGAL) { break }
186 | else if (result === CONTINUE_SINGAL) { continue }
187 | else if (result === RETURN_SINGAL) { return result }
188 | }
189 | },
190 |
191 | FunctionDeclaration: (node: ESTree.FunctionDeclaration, scope: Scope) => {
192 | const func = evaluate_map.FunctionExpression(node, scope)
193 | const { name: func_name } = node.id
194 | if (!scope.$const(func_name, func)) {
195 | throw `[Error] ${name} 重复定义`
196 | }
197 | },
198 |
199 | VariableDeclaration: (node: ESTree.VariableDeclaration, scope: Scope) => {
200 | const kind = node.kind
201 | for (const declartor of node.declarations) {
202 | const { name } = declartor.id
203 | const value = declartor.init ? evaluate(declartor.init, scope) : undefined
204 | if (!scope.$declar(kind, name, value)) {
205 | throw `[Error] ${name} 重复定义`
206 | }
207 | }
208 | },
209 |
210 | VariableDeclarator: (node: ESTree.VariableDeclarator, scope: Scope) => {
211 | throw '执行这里就错了'
212 | },
213 |
214 | ThisExpression: (node: ESTree.ThisExpression, scope: Scope) => {
215 | const this_val = scope.$find('this')
216 | return this_val ? this_val.$get() : null
217 | },
218 |
219 | ArrayExpression: (node: ESTree.ArrayExpression, scope: Scope) => {
220 | return node.elements.map(item => evaluate(item, scope))
221 | },
222 |
223 | ObjectExpression: (node: ESTree.ObjectExpression, scope: Scope) => {
224 | const object = {}
225 | for (const property of node.properties) {
226 | const kind = property.kind
227 |
228 | let key;
229 | if (property.key.type === 'Literal') {
230 | key = evaluate(property.key, scope)
231 | } else if (property.key.type === 'Identifier') {
232 | key = property.key.name
233 | } else { throw '这里绝对就错了' }
234 |
235 | const value = evaluate(property.value, scope)
236 | if (kind === 'init') {
237 | object[key] = value
238 | } else if (kind === 'set') {
239 | Object.defineProperty(object, key, { set: value });
240 | } else if (kind === 'get') {
241 | Object.defineProperty(object, key, { get: value });
242 | } else { throw '这里绝对就错了' }
243 | }
244 | return object
245 | },
246 |
247 | FunctionExpression: (node: ESTree.FunctionExpression, scope: Scope) => {
248 | return function (...args) {
249 | const new_scope = new Scope('function', scope)
250 | new_scope.invasived = true
251 | for (let i = 0; i < node.params.length; i++) {
252 | const { name } = node.params[i]
253 | new_scope.$const(name, args[i])
254 | }
255 | new_scope.$const('this', this)
256 | new_scope.$const('arguments', arguments)
257 | const result = evaluate(node.body, new_scope)
258 | if (result === RETURN_SINGAL) {
259 | return result.result
260 | }
261 | }
262 | },
263 |
264 | UnaryExpression: (node: ESTree.UnaryExpression, scope: Scope) => {
265 | return ({
266 | '-': () => - evaluate(node.argument, scope),
267 | '+': () => + evaluate(node.argument, scope),
268 | '!': () => ! evaluate(node.argument, scope),
269 | '~': () => ~ evaluate(node.argument, scope),
270 | 'void': () => void evaluate(node.argument, scope),
271 | 'typeof': () => {
272 | if (node.argument.type === 'Identifier') {
273 | const $var = scope.$find(node.argument.name)
274 | return $var ? typeof $var.$get() : 'undefined'
275 | } else {
276 | return typeof evaluate(node.argument, scope)
277 | }
278 | },
279 | 'delete': () => {
280 | // delete 是真麻烦
281 | if (node.argument.type === 'MemberExpression') {
282 | const { object, property, computed } = node.argument
283 | if (computed) {
284 | return delete evaluate(object, scope)[evaluate(property, scope)]
285 | } else {
286 | return delete evaluate(object, scope)[(property).name]
287 | }
288 | } else if (node.argument.type === 'Identifier') {
289 | const $this = scope.$find('this')
290 | if ($this) return $this.$get()[node.argument.name]
291 | }
292 | }
293 | })[node.operator]()
294 | },
295 |
296 | UpdateExpression: (node: ESTree.UpdateExpression, scope: Scope) => {
297 | const { prefix } = node
298 | let $var: {
299 | $set(value: any): boolean
300 | $get(): any
301 | }
302 | if (node.argument.type === 'Identifier') {
303 | const { name } = node.argument
304 | $var = scope.$find(name)
305 | if (!$var) throw `${name} 未定义`
306 | } else if (node.argument.type === 'MemberExpression') {
307 | const argument = node.argument
308 | const object = evaluate(argument.object, scope)
309 | let property = argument.computed
310 | ? evaluate(argument.property, scope)
311 | : (argument.property).name
312 | $var = {
313 | $set(value: any) {
314 | object[property] = value
315 | return true
316 | },
317 | $get() {
318 | return object[property]
319 | }
320 | }
321 | }
322 |
323 | return ({
324 | '--': v => ($var.$set(v - 1), (prefix ? --v : v--)),
325 | '++': v => ($var.$set(v + 1), (prefix ? ++v : v++))
326 | })[node.operator](evaluate(node.argument, scope))
327 | },
328 |
329 | BinaryExpression: (node: ESTree.BinaryExpression, scope: Scope) => {
330 | return ({
331 | "==": (a, b) => a == b,
332 | "!=": (a, b) => a != b,
333 | "===": (a, b) => a === b,
334 | "!==": (a, b) => a !== b,
335 | "<": (a, b) => a < b,
336 | "<=": (a, b) => a <= b,
337 | ">": (a, b) => a > b,
338 | ">=": (a, b) => a >= b,
339 | "<<": (a, b) => a << b,
340 | ">>": (a, b) => a >> b,
341 | ">>>": (a, b) => a >>> b,
342 | "+": (a, b) => a + b,
343 | "-": (a, b) => a - b,
344 | "*": (a, b) => a * b,
345 | "/": (a, b) => a / b,
346 | "%": (a, b) => a % b,
347 | "|": (a, b) => a | b,
348 | "^": (a, b) => a ^ b,
349 | "&": (a, b) => a & b,
350 | "in": (a, b) => a in b,
351 | "instanceof": (a, b) => a instanceof b
352 | })[node.operator](evaluate(node.left, scope), evaluate(node.right, scope))
353 | },
354 |
355 | AssignmentExpression: (node: ESTree.AssignmentExpression, scope: Scope) => {
356 | let $var: {
357 | $set(value: any): boolean
358 | $get(): any
359 | }
360 |
361 | if (node.left.type === 'Identifier') {
362 | const { name } = node.left
363 | const $var_or_not = scope.$find(name)
364 | if (!$var_or_not) throw `${name} 未定义`
365 | $var = $var_or_not
366 | } else if (node.left.type === 'MemberExpression') {
367 | const left = node.left
368 | const object = evaluate(left.object, scope)
369 | let property = left.computed
370 | ? evaluate(left.property, scope)
371 | : (left.property).name
372 | $var = {
373 | $set(value: any) {
374 | object[property] = value
375 | return true
376 | },
377 | $get() {
378 | return object[property]
379 | }
380 | }
381 | } else { throw `如果出现在这里,那就说明有问题了` }
382 |
383 | return ({
384 | "=": (v) => ($var.$set(v), v),
385 | "+=": (v) => ($var.$set($var.$get() + v), $var.$get()),
386 | "-=": (v) => ($var.$set($var.$get() - v), $var.$get()),
387 | "*=": (v) => ($var.$set($var.$get() * v), $var.$get()),
388 | "/=": (v) => ($var.$set($var.$get() / v), $var.$get()),
389 | "%=": (v) => ($var.$set($var.$get() % v), $var.$get()),
390 | "<<=": (v) => ($var.$set($var.$get() << v), $var.$get()),
391 | ">>=": (v) => ($var.$set($var.$get() >> v), $var.$get()),
392 | ">>>=": (v) => ($var.$set($var.$get() >>> v), $var.$get()),
393 | "|=": (v) => ($var.$set($var.$get() | v), $var.$get()),
394 | "^=": (v) => ($var.$set($var.$get() ^ v), $var.$get()),
395 | "&=": (v) => ($var.$set($var.$get() & v), $var.$get())
396 | })[node.operator](evaluate(node.right, scope))
397 | },
398 |
399 | LogicalExpression: (node: ESTree.LogicalExpression, scope: Scope) => {
400 | return ({
401 | "||": () => evaluate(node.left, scope) || evaluate(node.right, scope),
402 | "&&": () => evaluate(node.left, scope) && evaluate(node.right, scope),
403 | })[node.operator]()
404 | },
405 |
406 | MemberExpression: (node: ESTree.MemberExpression, scope: Scope) => {
407 | const { object, property, computed } = node
408 | if (computed) {
409 | return evaluate(object, scope)[evaluate(property, scope)]
410 | } else {
411 | return evaluate(object, scope)[(property).name]
412 | }
413 | },
414 |
415 | ConditionalExpression: (node: ESTree.ConditionalExpression, scope: Scope) => {
416 | return (
417 | evaluate(node.test, scope)
418 | ? evaluate(node.consequent, scope)
419 | : evaluate(node.alternate, scope)
420 | )
421 | },
422 |
423 | CallExpression: (node: ESTree.CallExpression, scope: Scope) => {
424 | const func = evaluate(node.callee, scope)
425 | const args = node.arguments.map(arg => evaluate(arg, scope))
426 |
427 | // 心疼自己
428 | if (node.callee.type === 'MemberExpression') {
429 | const object = evaluate(node.callee.object, scope)
430 | return func.apply(object, args)
431 | } else {
432 | const this_val = scope.$find('this')
433 | return func.apply(this_val ? this_val.$get() : null, args)
434 | }
435 | },
436 |
437 | NewExpression: (node: ESTree.NewExpression, scope: Scope) => {
438 | const func = evaluate(node.callee, scope)
439 | const args = node.arguments.map(arg => evaluate(arg, scope))
440 | return new (func.bind.apply(func, [null].concat(args)))
441 | },
442 |
443 | SequenceExpression: (node: ESTree.SequenceExpression, scope: Scope) => {
444 | let last
445 | for (const expr of node.expressions) {
446 | last = evaluate(expr, scope)
447 | }
448 | return last
449 | },
450 |
451 | Property: (node: ESTree.Property, scope: Scope, computed: boolean) => { throw '这里如果被执行了那也是错的...' },
452 |
453 | // 下面是 es6 / es7 特性, 先不做处理
454 | ClassExpression: (node: ESTree.ClassExpression, scope: Scope) => { throw `${node.type} 未实现` },
455 | RestElement: (node: ESTree.RestElement, scope: Scope) => { throw `${node.type} 未实现` },
456 | MetaProperty: (node: ESTree.MetaProperty, scope: Scope) => { throw `${node.type} 未实现` },
457 | AwaitExpression: (node: ESTree.AwaitExpression, scope: Scope) => { throw `${node.type} 未实现` },
458 | Super: (node: ESTree.Super, scope: Scope) => { throw `${node.type} 未实现` },
459 | SpreadElement: (node: ESTree.SpreadElement, scope: Scope) => { throw `${node.type} 未实现` },
460 | TemplateElement: (node: ESTree.TemplateElement, scope: Scope) => { throw `${node.type} 未实现` },
461 | ClassDeclaration: (node: ESTree.ClassDeclaration, scope: Scope) => { throw `${node.type} 未实现` },
462 | TaggedTemplateExpression: (node: ESTree.TaggedTemplateExpression, scope: Scope) => { throw `${node.type} 未实现` },
463 | MethodDefinition: (node: ESTree.MethodDefinition, scope: Scope) => { throw `${node.type} 未实现` },
464 | AssignmentPattern: (node: ESTree.AssignmentPattern, scope: Scope) => { throw `${node.type} 未实现` },
465 | ObjectPattern: (node: ESTree.ObjectPattern, scope: Scope) => { throw `${node.type} 未实现` },
466 | ArrayPattern: (node: ESTree.ArrayPattern, scope: Scope) => { throw `${node.type} 未实现` },
467 | ForOfStatement: (node: ESTree.ForOfStatement, scope: Scope) => { throw `${node.type} 未实现` },
468 | TemplateLiteral: (node: ESTree.TemplateLiteral, scope: Scope) => { throw `${node.type} 未实现` },
469 | ClassBody: (node: ESTree.ClassBody, scope: Scope) => { throw `${node.type} 未实现` },
470 | ImportDeclaration: (node: ESTree.ImportDeclaration, scope: Scope) => { throw `${node.type} 未实现` },
471 | ExportNamedDeclaration: (node: ESTree.ExportNamedDeclaration, scope: Scope) => { throw `${node.type} 未实现` },
472 | ExportDefaultDeclaration: (node: ESTree.ExportDefaultDeclaration, scope: Scope) => { throw `${node.type} 未实现` },
473 | ExportAllDeclaration: (node: ESTree.ExportAllDeclaration, scope: Scope) => { throw `${node.type} 未实现` },
474 | ImportSpecifier: (node: ESTree.ImportSpecifier, scope: Scope) => { throw `${node.type} 未实现` },
475 | ImportDefaultSpecifier: (node: ESTree.ImportDefaultSpecifier, scope: Scope) => { throw `${node.type} 未实现` },
476 | ImportNamespaceSpecifier: (node: ESTree.ImportNamespaceSpecifier, scope: Scope) => { throw `${node.type} 未实现` },
477 | ExportSpecifier: (node: ESTree.ExportSpecifier, scope: Scope) => { throw `${node.type} 未实现` },
478 | YieldExpression: (node: ESTree.YieldExpression, scope: Scope) => { throw `${node.type} 未实现` },
479 | ArrowFunctionExpression: (node: ESTree.ArrowFunctionExpression, scope: Scope) => { throw `${node.type} 未实现` },
480 | }
481 |
482 | const evaluate = (node: ESTree.Node, scope: Scope, arg?: any) => {
483 | const _evalute = ((evaluate_map[node.type]))
484 | return _evalute(node, scope, arg)
485 | }
486 |
487 | export default evaluate
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 |
2 | declare const require : (module: string) => any
3 | const acorn = require('acorn/dist/acorn.js')
4 |
5 | import { Scope } from './scope'
6 | import { Var } from './scope'
7 | import evaluate from './eval'
8 |
9 | const options = {
10 | ecmaVersion: 5,
11 | sourceType: 'script',
12 | locations: true,
13 | }
14 |
15 | declare const Promise: any
16 |
17 | // 导出默认对象
18 | const default_api: { [key: string]: any } = {
19 | console,
20 |
21 | setTimeout,
22 | setInterval,
23 |
24 | clearTimeout,
25 | clearInterval,
26 |
27 | encodeURI,
28 | encodeURIComponent,
29 | decodeURI,
30 | decodeURIComponent,
31 | escape,
32 | unescape,
33 |
34 | Infinity,
35 | NaN,
36 | isFinite,
37 | isNaN,
38 | parseFloat,
39 | parseInt,
40 | Object,
41 | Boolean,
42 | Error,
43 | EvalError,
44 | RangeError,
45 | ReferenceError,
46 | SyntaxError,
47 | TypeError,
48 | URIError,
49 | Number,
50 | Math,
51 | Date,
52 | String,
53 | RegExp,
54 | Array,
55 | JSON,
56 | Promise
57 | }
58 |
59 | export function run(code: string, append_api: { [key: string]: any } = {}) {
60 | const scope = new Scope('block')
61 | scope.$const('this', this)
62 |
63 | for (const name of Object.getOwnPropertyNames(default_api)) {
64 | scope.$const(name, default_api[name])
65 | }
66 |
67 | for (const name of Object.getOwnPropertyNames(append_api)) {
68 | scope.$const(name, append_api[name])
69 | }
70 |
71 | // 定义 module
72 | const $exports = {}
73 | const $module = { 'exports': $exports }
74 | scope.$const('module', $module)
75 | scope.$const('exports', $exports)
76 |
77 | evaluate(acorn.parse(code, options), scope)
78 |
79 | // exports
80 | const module_var = scope.$find('module')
81 | return module_var ? module_var.$get().exports : null
82 | }
--------------------------------------------------------------------------------
/src/scope.ts:
--------------------------------------------------------------------------------
1 |
2 | export type ScopeType = 'function' | 'loop' | 'switch' | 'block'
3 |
4 | export type Kind = 'const' | 'var' | 'let'
5 |
6 | export interface Var {
7 | $get(): any
8 | $set(value: any): boolean
9 | // $call($this: any, args: Array): any
10 | }
11 |
12 | export class ScopeVar implements Var {
13 | value: any
14 | kind: Kind
15 |
16 | constructor(kind: Kind, value: any) {
17 | this.value = value
18 | this.kind = kind
19 | }
20 |
21 | $set(value: any): boolean {
22 | if (this.value === 'const') {
23 | return false
24 | } else {
25 | this.value = value
26 | return true
27 | }
28 | }
29 |
30 | $get(): any {
31 | return this.value
32 | }
33 | }
34 |
35 | export class PropVar implements Var {
36 | object: any
37 | property: string
38 |
39 | constructor(object: any, property: string) {
40 | this.object = object
41 | this.property = property
42 | }
43 |
44 | $set(value: any) { this.object[this.property] = value; return true }
45 | $get() { return this.object[this.property] }
46 | $delete() { delete this.object[this.property] }
47 | }
48 |
49 | export class Scope {
50 | private content: { [key: string]: Var }
51 | private parent: Scope | null
52 | private prefix: string = '@'
53 |
54 | readonly type: ScopeType
55 |
56 | invasived: boolean
57 |
58 | constructor(type: ScopeType, parent?: Scope, label?: string) {
59 | this.type = type
60 | this.parent = parent || null
61 | this.content = {}
62 | this.invasived = false
63 | }
64 |
65 | $find(raw_name: string): Var | null {
66 | const name = this.prefix + raw_name
67 | if (this.content.hasOwnProperty(name)) {
68 | return this.content[name]
69 | } else if (this.parent) {
70 | return this.parent.$find(raw_name)
71 | } else {
72 | return null
73 | }
74 | }
75 |
76 | $let(raw_name: string, value: any): boolean {
77 | const name = this.prefix + raw_name
78 | const $var = this.content[name]
79 | if (!$var) {
80 | this.content[name] = new ScopeVar('let', value)
81 | return true
82 | } else { return false }
83 | }
84 |
85 | $const(raw_name: string, value: any): boolean {
86 | const name = this.prefix + raw_name
87 | const $var = this.content[name]
88 | if (!$var) {
89 | this.content[name] = new ScopeVar('const', value)
90 | return true
91 | } else { return false }
92 | }
93 |
94 | $var(raw_name: string, value: any): boolean {
95 | const name = this.prefix + raw_name
96 | let scope: Scope = this
97 |
98 | while (scope.parent !== null && scope.type !== 'function') {
99 | scope = scope.parent
100 | }
101 |
102 | const $var = scope.content[name]
103 | if (!$var) {
104 | this.content[name] = new ScopeVar('var', value)
105 | return true
106 | } else { return false }
107 | }
108 |
109 |
110 | $declar(kind: Kind, raw_name: string, value: any): boolean {
111 | return ({
112 | 'var': () => this.$var(raw_name, value),
113 | 'let': () => this.$let(raw_name, value),
114 | 'const': () => this.$const(raw_name, value)
115 | })[kind]()
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/src/test.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 | import * as interpreter from './main'
4 |
5 |
6 | // 解释器执行 hello world
7 | interpreter.run(`console.log('hello world')`)
8 |
9 | // 自举解释器代码
10 | declare const require, __dirname
11 | const fs = require('fs')
12 | const interpreter_code = fs.readFileSync('./lib/interpreter.js', 'utf-8')
13 | const bootstrap = interpreter.run(interpreter_code)
14 |
15 | // 自举的解释器实行 hello world
16 | bootstrap.run(`console.log('hello world!')`)
--------------------------------------------------------------------------------
/src/type.ts:
--------------------------------------------------------------------------------
1 |
2 | import * as ESTree from 'estree'
3 | import { Scope } from './scope'
4 |
5 | export interface NodeTypeMap {
6 | Identifier: ESTree.Identifier
7 | Literal: ESTree.Literal
8 | Program: ESTree.Program
9 | FunctionDeclaration: ESTree.FunctionDeclaration
10 | FunctionExpression: ESTree.FunctionExpression
11 | ArrowFunctionExpression: ESTree.ArrowFunctionExpression
12 | SwitchCase: ESTree.SwitchCase
13 | CatchClause: ESTree.CatchClause
14 | VariableDeclarator: ESTree.VariableDeclarator
15 | ExpressionStatement: ESTree.ExpressionStatement
16 | BlockStatement: ESTree.BlockStatement
17 | EmptyStatement: ESTree.EmptyStatement
18 | DebuggerStatement: ESTree.DebuggerStatement
19 | WithStatement: ESTree.WithStatement
20 | ReturnStatement: ESTree.ReturnStatement
21 | LabeledStatement: ESTree.LabeledStatement
22 | BreakStatement: ESTree.BreakStatement
23 | ContinueStatement: ESTree.ContinueStatement
24 | IfStatement: ESTree.IfStatement
25 | SwitchStatement: ESTree.SwitchStatement
26 | ThrowStatement: ESTree.ThrowStatement
27 | TryStatement: ESTree.TryStatement
28 | WhileStatement: ESTree.WhileStatement
29 | DoWhileStatement: ESTree.DoWhileStatement
30 | ForStatement: ESTree.ForStatement
31 | ForInStatement: ESTree.ForInStatement
32 | ForOfStatement: ESTree.ForOfStatement
33 | VariableDeclaration: ESTree.VariableDeclaration
34 | ClassDeclaration: ESTree.ClassDeclaration
35 | ThisExpression: ESTree.ThisExpression
36 | ArrayExpression: ESTree.ArrayExpression
37 | ObjectExpression: ESTree.ObjectExpression
38 | YieldExpression: ESTree.YieldExpression
39 | UnaryExpression: ESTree.UnaryExpression
40 | UpdateExpression: ESTree.UpdateExpression
41 | BinaryExpression: ESTree.BinaryExpression
42 | AssignmentExpression: ESTree.AssignmentExpression
43 | LogicalExpression: ESTree.LogicalExpression
44 | MemberExpression: ESTree.MemberExpression
45 | ConditionalExpression: ESTree.ConditionalExpression
46 | CallExpression: ESTree.CallExpression
47 | NewExpression: ESTree.NewExpression
48 | SequenceExpression: ESTree.SequenceExpression
49 | TemplateLiteral: ESTree.TemplateLiteral
50 | TaggedTemplateExpression: ESTree.TaggedTemplateExpression
51 | ClassExpression: ESTree.ClassExpression
52 | MetaProperty: ESTree.MetaProperty
53 | AwaitExpression: ESTree.AwaitExpression
54 | Property: ESTree.Property
55 | Super: ESTree.Super
56 | TemplateElement: ESTree.TemplateElement
57 | SpreadElement: ESTree.SpreadElement
58 | ObjectPattern: ESTree.ObjectPattern
59 | ArrayPattern: ESTree.ArrayPattern
60 | RestElement: ESTree.RestElement
61 | AssignmentPattern: ESTree.AssignmentPattern
62 | ClassBody: ESTree.ClassBody
63 | MethodDefinition: ESTree.MethodDefinition
64 | ImportDeclaration: ESTree.ImportDeclaration
65 | ExportNamedDeclaration: ESTree.ExportNamedDeclaration
66 | ExportDefaultDeclaration: ESTree.ExportDefaultDeclaration
67 | ExportAllDeclaration: ESTree.ExportAllDeclaration
68 | ImportSpecifier: ESTree.ImportSpecifier
69 | ImportDefaultSpecifier: ESTree.ImportDefaultSpecifier
70 | ImportNamespaceSpecifier: ESTree.ImportNamespaceSpecifier
71 | ExportSpecifier: ESTree.ExportSpecifier
72 | }
73 |
74 | export type EvaluateMap = {
75 | [key in ESTree.Node['type']]: (node: NodeTypeMap[key], scope: Scope, arg?: any) => any
76 | }
77 |
78 | export type EvaluateFunc = (node: ESTree.Node, scope: Scope, arg?: any) => any
--------------------------------------------------------------------------------
/src/vm.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 |
5 | 写一个中间字节码来好好游戏吧
6 |
7 | @<变量名> // 变量名是存在 scope 里面
8 | %<寄存器名> // 寄存器名存在 寄存器 里面
9 |
10 | var <变量名> #12345,12345 <- 标记锚点,知道什么地方错了
11 | let <变量名>
12 | const <变量名>
13 |
14 | move // move a -> b
15 |
16 | func @<变量名>
17 | endfunc
18 |
19 | ============================
20 |
21 | func %main
22 |
23 | push
24 | var %tmp1 %tmp2 %tmp3
25 | mov
26 | pop
27 |
28 | endfunc
29 |
30 | call %main
31 |
32 | */
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "strictNullChecks": true,
6 | "strict": true,
7 | "alwaysStrict": true,
8 | "noImplicitAny": false,
9 | "sourceMap": true,
10 | "noImplicitThis": false
11 | },
12 | "include": [
13 | "src/**/*.ts"
14 | ]
15 | }
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 |
2 | const webpack = require('webpack')
3 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
4 |
5 | module.exports = {
6 | target: 'node',
7 | entry: {
8 | 'interpreter': './src/main.ts',
9 | 'test': './src/test.ts',
10 | },
11 | output: {
12 | filename: '[name].js',
13 | path: __dirname + '/lib/',
14 | library: '[name]',
15 | libraryTarget: 'umd'
16 | },
17 | devtool: 'source-map',
18 | resolve: {
19 | extensions: ['.ts', '.js', '.json']
20 | },
21 | module: {
22 | rules: [
23 | { test: /\.tsx?$/, loader: 'awesome-typescript-loader' },
24 | { enforce: 'pre', test: /\.js$/, loader: 'source-map-loader' }
25 | ]
26 | }
27 | }
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@types/estree@^0.0.38":
6 | version "0.0.38"
7 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2"
8 |
9 | abbrev@1:
10 | version "1.1.1"
11 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
12 |
13 | acorn-dynamic-import@^2.0.0:
14 | version "2.0.2"
15 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
16 | dependencies:
17 | acorn "^4.0.3"
18 |
19 | acorn@^4.0.3:
20 | version "4.0.13"
21 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
22 |
23 | acorn@^5.0.0, acorn@^5.4.1:
24 | version "5.4.1"
25 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102"
26 |
27 | ajv-keywords@^3.1.0:
28 | version "3.1.0"
29 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
30 |
31 | ajv@^4.9.1:
32 | version "4.11.8"
33 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
34 | dependencies:
35 | co "^4.6.0"
36 | json-stable-stringify "^1.0.1"
37 |
38 | ajv@^6.1.0:
39 | version "6.1.1"
40 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e"
41 | dependencies:
42 | fast-deep-equal "^1.0.0"
43 | fast-json-stable-stringify "^2.0.0"
44 | json-schema-traverse "^0.3.0"
45 |
46 | align-text@^0.1.1, align-text@^0.1.3:
47 | version "0.1.4"
48 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
49 | dependencies:
50 | kind-of "^3.0.2"
51 | longest "^1.0.1"
52 | repeat-string "^1.5.2"
53 |
54 | ansi-regex@^2.0.0:
55 | version "2.1.1"
56 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
57 |
58 | ansi-regex@^3.0.0:
59 | version "3.0.0"
60 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
61 |
62 | ansi-styles@^2.2.1:
63 | version "2.2.1"
64 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
65 |
66 | ansi-styles@^3.2.0:
67 | version "3.2.0"
68 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
69 | dependencies:
70 | color-convert "^1.9.0"
71 |
72 | anymatch@^1.3.0:
73 | version "1.3.2"
74 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
75 | dependencies:
76 | micromatch "^2.1.5"
77 | normalize-path "^2.0.0"
78 |
79 | aproba@^1.0.3, aproba@^1.1.1:
80 | version "1.2.0"
81 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
82 |
83 | are-we-there-yet@~1.1.2:
84 | version "1.1.4"
85 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
86 | dependencies:
87 | delegates "^1.0.0"
88 | readable-stream "^2.0.6"
89 |
90 | argparse@^1.0.7:
91 | version "1.0.10"
92 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
93 | dependencies:
94 | sprintf-js "~1.0.2"
95 |
96 | arr-diff@^2.0.0:
97 | version "2.0.0"
98 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
99 | dependencies:
100 | arr-flatten "^1.0.1"
101 |
102 | arr-diff@^4.0.0:
103 | version "4.0.0"
104 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
105 |
106 | arr-flatten@^1.0.1, arr-flatten@^1.1.0:
107 | version "1.1.0"
108 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
109 |
110 | arr-union@^3.1.0:
111 | version "3.1.0"
112 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
113 |
114 | array-unique@^0.2.1:
115 | version "0.2.1"
116 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
117 |
118 | array-unique@^0.3.2:
119 | version "0.3.2"
120 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
121 |
122 | asn1.js@^4.0.0:
123 | version "4.10.1"
124 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
125 | dependencies:
126 | bn.js "^4.0.0"
127 | inherits "^2.0.1"
128 | minimalistic-assert "^1.0.0"
129 |
130 | asn1@~0.2.3:
131 | version "0.2.3"
132 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
133 |
134 | assert-plus@1.0.0, assert-plus@^1.0.0:
135 | version "1.0.0"
136 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
137 |
138 | assert-plus@^0.2.0:
139 | version "0.2.0"
140 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
141 |
142 | assert@^1.1.1:
143 | version "1.4.1"
144 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
145 | dependencies:
146 | util "0.10.3"
147 |
148 | assign-symbols@^1.0.0:
149 | version "1.0.0"
150 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
151 |
152 | async-each@^1.0.0:
153 | version "1.0.1"
154 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
155 |
156 | async@^2.1.2, async@^2.5.0:
157 | version "2.6.0"
158 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
159 | dependencies:
160 | lodash "^4.14.0"
161 |
162 | asynckit@^0.4.0:
163 | version "0.4.0"
164 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
165 |
166 | atob@^2.0.0:
167 | version "2.0.3"
168 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d"
169 |
170 | awesome-typescript-loader@^3.4.1:
171 | version "3.4.1"
172 | resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-3.4.1.tgz#22fa49800f0619ec18ab15383aef93b95378dea9"
173 | dependencies:
174 | colors "^1.1.2"
175 | enhanced-resolve "3.3.0"
176 | loader-utils "^1.1.0"
177 | lodash "^4.17.4"
178 | micromatch "^3.0.3"
179 | mkdirp "^0.5.1"
180 | object-assign "^4.1.1"
181 | source-map-support "^0.4.15"
182 |
183 | aws-sign2@~0.6.0:
184 | version "0.6.0"
185 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
186 |
187 | aws4@^1.2.1:
188 | version "1.6.0"
189 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
190 |
191 | babel-code-frame@^6.22.0:
192 | version "6.26.0"
193 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
194 | dependencies:
195 | chalk "^1.1.3"
196 | esutils "^2.0.2"
197 | js-tokens "^3.0.2"
198 |
199 | balanced-match@^1.0.0:
200 | version "1.0.0"
201 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
202 |
203 | base64-js@^1.0.2:
204 | version "1.2.3"
205 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801"
206 |
207 | base@^0.11.1:
208 | version "0.11.2"
209 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
210 | dependencies:
211 | cache-base "^1.0.1"
212 | class-utils "^0.3.5"
213 | component-emitter "^1.2.1"
214 | define-property "^1.0.0"
215 | isobject "^3.0.1"
216 | mixin-deep "^1.2.0"
217 | pascalcase "^0.1.1"
218 |
219 | bcrypt-pbkdf@^1.0.0:
220 | version "1.0.1"
221 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
222 | dependencies:
223 | tweetnacl "^0.14.3"
224 |
225 | big.js@^3.1.3:
226 | version "3.2.0"
227 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
228 |
229 | binary-extensions@^1.0.0:
230 | version "1.11.0"
231 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
232 |
233 | block-stream@*:
234 | version "0.0.9"
235 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
236 | dependencies:
237 | inherits "~2.0.0"
238 |
239 | bluebird@^3.5.1:
240 | version "3.5.1"
241 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
242 |
243 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
244 | version "4.11.8"
245 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
246 |
247 | boom@2.x.x:
248 | version "2.10.1"
249 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
250 | dependencies:
251 | hoek "2.x.x"
252 |
253 | brace-expansion@^1.1.7:
254 | version "1.1.11"
255 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
256 | dependencies:
257 | balanced-match "^1.0.0"
258 | concat-map "0.0.1"
259 |
260 | braces@^1.8.2:
261 | version "1.8.5"
262 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
263 | dependencies:
264 | expand-range "^1.8.1"
265 | preserve "^0.2.0"
266 | repeat-element "^1.1.2"
267 |
268 | braces@^2.3.0:
269 | version "2.3.1"
270 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb"
271 | dependencies:
272 | arr-flatten "^1.1.0"
273 | array-unique "^0.3.2"
274 | define-property "^1.0.0"
275 | extend-shallow "^2.0.1"
276 | fill-range "^4.0.0"
277 | isobject "^3.0.1"
278 | kind-of "^6.0.2"
279 | repeat-element "^1.1.2"
280 | snapdragon "^0.8.1"
281 | snapdragon-node "^2.0.1"
282 | split-string "^3.0.2"
283 | to-regex "^3.0.1"
284 |
285 | brorand@^1.0.1:
286 | version "1.1.0"
287 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
288 |
289 | browserify-aes@^1.0.0, browserify-aes@^1.0.4:
290 | version "1.1.1"
291 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f"
292 | dependencies:
293 | buffer-xor "^1.0.3"
294 | cipher-base "^1.0.0"
295 | create-hash "^1.1.0"
296 | evp_bytestokey "^1.0.3"
297 | inherits "^2.0.1"
298 | safe-buffer "^5.0.1"
299 |
300 | browserify-cipher@^1.0.0:
301 | version "1.0.0"
302 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
303 | dependencies:
304 | browserify-aes "^1.0.4"
305 | browserify-des "^1.0.0"
306 | evp_bytestokey "^1.0.0"
307 |
308 | browserify-des@^1.0.0:
309 | version "1.0.0"
310 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
311 | dependencies:
312 | cipher-base "^1.0.1"
313 | des.js "^1.0.0"
314 | inherits "^2.0.1"
315 |
316 | browserify-rsa@^4.0.0:
317 | version "4.0.1"
318 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
319 | dependencies:
320 | bn.js "^4.1.0"
321 | randombytes "^2.0.1"
322 |
323 | browserify-sign@^4.0.0:
324 | version "4.0.4"
325 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
326 | dependencies:
327 | bn.js "^4.1.1"
328 | browserify-rsa "^4.0.0"
329 | create-hash "^1.1.0"
330 | create-hmac "^1.1.2"
331 | elliptic "^6.0.0"
332 | inherits "^2.0.1"
333 | parse-asn1 "^5.0.0"
334 |
335 | browserify-zlib@^0.2.0:
336 | version "0.2.0"
337 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
338 | dependencies:
339 | pako "~1.0.5"
340 |
341 | buffer-xor@^1.0.3:
342 | version "1.0.3"
343 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
344 |
345 | buffer@^4.3.0:
346 | version "4.9.1"
347 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
348 | dependencies:
349 | base64-js "^1.0.2"
350 | ieee754 "^1.1.4"
351 | isarray "^1.0.0"
352 |
353 | builtin-modules@^1.0.0, builtin-modules@^1.1.1:
354 | version "1.1.1"
355 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
356 |
357 | builtin-status-codes@^3.0.0:
358 | version "3.0.0"
359 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
360 |
361 | cacache@^10.0.1:
362 | version "10.0.4"
363 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
364 | dependencies:
365 | bluebird "^3.5.1"
366 | chownr "^1.0.1"
367 | glob "^7.1.2"
368 | graceful-fs "^4.1.11"
369 | lru-cache "^4.1.1"
370 | mississippi "^2.0.0"
371 | mkdirp "^0.5.1"
372 | move-concurrently "^1.0.1"
373 | promise-inflight "^1.0.1"
374 | rimraf "^2.6.2"
375 | ssri "^5.2.4"
376 | unique-filename "^1.1.0"
377 | y18n "^4.0.0"
378 |
379 | cache-base@^1.0.1:
380 | version "1.0.1"
381 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
382 | dependencies:
383 | collection-visit "^1.0.0"
384 | component-emitter "^1.2.1"
385 | get-value "^2.0.6"
386 | has-value "^1.0.0"
387 | isobject "^3.0.1"
388 | set-value "^2.0.0"
389 | to-object-path "^0.3.0"
390 | union-value "^1.0.0"
391 | unset-value "^1.0.0"
392 |
393 | camelcase@^1.0.2:
394 | version "1.2.1"
395 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
396 |
397 | camelcase@^4.1.0:
398 | version "4.1.0"
399 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
400 |
401 | caseless@~0.12.0:
402 | version "0.12.0"
403 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
404 |
405 | center-align@^0.1.1:
406 | version "0.1.3"
407 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
408 | dependencies:
409 | align-text "^0.1.3"
410 | lazy-cache "^1.0.3"
411 |
412 | chalk@^1.1.3:
413 | version "1.1.3"
414 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
415 | dependencies:
416 | ansi-styles "^2.2.1"
417 | escape-string-regexp "^1.0.2"
418 | has-ansi "^2.0.0"
419 | strip-ansi "^3.0.0"
420 | supports-color "^2.0.0"
421 |
422 | chalk@^2.3.0:
423 | version "2.3.1"
424 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796"
425 | dependencies:
426 | ansi-styles "^3.2.0"
427 | escape-string-regexp "^1.0.5"
428 | supports-color "^5.2.0"
429 |
430 | chokidar@^1.7.0:
431 | version "1.7.0"
432 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
433 | dependencies:
434 | anymatch "^1.3.0"
435 | async-each "^1.0.0"
436 | glob-parent "^2.0.0"
437 | inherits "^2.0.1"
438 | is-binary-path "^1.0.0"
439 | is-glob "^2.0.0"
440 | path-is-absolute "^1.0.0"
441 | readdirp "^2.0.0"
442 | optionalDependencies:
443 | fsevents "^1.0.0"
444 |
445 | chownr@^1.0.1:
446 | version "1.0.1"
447 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
448 |
449 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
450 | version "1.0.4"
451 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
452 | dependencies:
453 | inherits "^2.0.1"
454 | safe-buffer "^5.0.1"
455 |
456 | class-utils@^0.3.5:
457 | version "0.3.6"
458 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
459 | dependencies:
460 | arr-union "^3.1.0"
461 | define-property "^0.2.5"
462 | isobject "^3.0.0"
463 | static-extend "^0.1.1"
464 |
465 | cliui@^2.1.0:
466 | version "2.1.0"
467 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
468 | dependencies:
469 | center-align "^0.1.1"
470 | right-align "^0.1.1"
471 | wordwrap "0.0.2"
472 |
473 | cliui@^3.2.0:
474 | version "3.2.0"
475 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
476 | dependencies:
477 | string-width "^1.0.1"
478 | strip-ansi "^3.0.1"
479 | wrap-ansi "^2.0.0"
480 |
481 | co@^4.6.0:
482 | version "4.6.0"
483 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
484 |
485 | code-point-at@^1.0.0:
486 | version "1.1.0"
487 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
488 |
489 | collection-visit@^1.0.0:
490 | version "1.0.0"
491 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
492 | dependencies:
493 | map-visit "^1.0.0"
494 | object-visit "^1.0.0"
495 |
496 | color-convert@^1.9.0:
497 | version "1.9.1"
498 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
499 | dependencies:
500 | color-name "^1.1.1"
501 |
502 | color-name@^1.1.1:
503 | version "1.1.3"
504 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
505 |
506 | colors@^1.1.2:
507 | version "1.1.2"
508 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
509 |
510 | combined-stream@^1.0.5, combined-stream@~1.0.5:
511 | version "1.0.6"
512 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
513 | dependencies:
514 | delayed-stream "~1.0.0"
515 |
516 | commander@^2.12.1:
517 | version "2.14.1"
518 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
519 |
520 | commander@~2.13.0:
521 | version "2.13.0"
522 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
523 |
524 | commondir@^1.0.1:
525 | version "1.0.1"
526 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
527 |
528 | component-emitter@^1.2.1:
529 | version "1.2.1"
530 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
531 |
532 | concat-map@0.0.1:
533 | version "0.0.1"
534 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
535 |
536 | concat-stream@^1.5.0:
537 | version "1.6.0"
538 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
539 | dependencies:
540 | inherits "^2.0.3"
541 | readable-stream "^2.2.2"
542 | typedarray "^0.0.6"
543 |
544 | console-browserify@^1.1.0:
545 | version "1.1.0"
546 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
547 | dependencies:
548 | date-now "^0.1.4"
549 |
550 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
551 | version "1.1.0"
552 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
553 |
554 | constants-browserify@^1.0.0:
555 | version "1.0.0"
556 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
557 |
558 | copy-concurrently@^1.0.0:
559 | version "1.0.5"
560 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
561 | dependencies:
562 | aproba "^1.1.1"
563 | fs-write-stream-atomic "^1.0.8"
564 | iferr "^0.1.5"
565 | mkdirp "^0.5.1"
566 | rimraf "^2.5.4"
567 | run-queue "^1.0.0"
568 |
569 | copy-descriptor@^0.1.0:
570 | version "0.1.1"
571 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
572 |
573 | core-util-is@1.0.2, core-util-is@~1.0.0:
574 | version "1.0.2"
575 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
576 |
577 | create-ecdh@^4.0.0:
578 | version "4.0.0"
579 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
580 | dependencies:
581 | bn.js "^4.1.0"
582 | elliptic "^6.0.0"
583 |
584 | create-hash@^1.1.0, create-hash@^1.1.2:
585 | version "1.1.3"
586 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
587 | dependencies:
588 | cipher-base "^1.0.1"
589 | inherits "^2.0.1"
590 | ripemd160 "^2.0.0"
591 | sha.js "^2.4.0"
592 |
593 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
594 | version "1.1.6"
595 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
596 | dependencies:
597 | cipher-base "^1.0.3"
598 | create-hash "^1.1.0"
599 | inherits "^2.0.1"
600 | ripemd160 "^2.0.0"
601 | safe-buffer "^5.0.1"
602 | sha.js "^2.4.8"
603 |
604 | cross-spawn@^5.0.1:
605 | version "5.1.0"
606 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
607 | dependencies:
608 | lru-cache "^4.0.1"
609 | shebang-command "^1.2.0"
610 | which "^1.2.9"
611 |
612 | cryptiles@2.x.x:
613 | version "2.0.5"
614 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
615 | dependencies:
616 | boom "2.x.x"
617 |
618 | crypto-browserify@^3.11.0:
619 | version "3.12.0"
620 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
621 | dependencies:
622 | browserify-cipher "^1.0.0"
623 | browserify-sign "^4.0.0"
624 | create-ecdh "^4.0.0"
625 | create-hash "^1.1.0"
626 | create-hmac "^1.1.0"
627 | diffie-hellman "^5.0.0"
628 | inherits "^2.0.1"
629 | pbkdf2 "^3.0.3"
630 | public-encrypt "^4.0.0"
631 | randombytes "^2.0.0"
632 | randomfill "^1.0.3"
633 |
634 | cyclist@~0.2.2:
635 | version "0.2.2"
636 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
637 |
638 | d@1:
639 | version "1.0.0"
640 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
641 | dependencies:
642 | es5-ext "^0.10.9"
643 |
644 | dashdash@^1.12.0:
645 | version "1.14.1"
646 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
647 | dependencies:
648 | assert-plus "^1.0.0"
649 |
650 | date-now@^0.1.4:
651 | version "0.1.4"
652 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
653 |
654 | debug@^2.2.0, debug@^2.3.3:
655 | version "2.6.9"
656 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
657 | dependencies:
658 | ms "2.0.0"
659 |
660 | decamelize@^1.0.0, decamelize@^1.1.1:
661 | version "1.2.0"
662 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
663 |
664 | decode-uri-component@^0.2.0:
665 | version "0.2.0"
666 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
667 |
668 | deep-extend@~0.4.0:
669 | version "0.4.2"
670 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
671 |
672 | define-property@^0.2.5:
673 | version "0.2.5"
674 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
675 | dependencies:
676 | is-descriptor "^0.1.0"
677 |
678 | define-property@^1.0.0:
679 | version "1.0.0"
680 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
681 | dependencies:
682 | is-descriptor "^1.0.0"
683 |
684 | delayed-stream@~1.0.0:
685 | version "1.0.0"
686 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
687 |
688 | delegates@^1.0.0:
689 | version "1.0.0"
690 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
691 |
692 | des.js@^1.0.0:
693 | version "1.0.0"
694 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
695 | dependencies:
696 | inherits "^2.0.1"
697 | minimalistic-assert "^1.0.0"
698 |
699 | detect-libc@^1.0.2:
700 | version "1.0.3"
701 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
702 |
703 | diff@^3.2.0:
704 | version "3.4.0"
705 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c"
706 |
707 | diffie-hellman@^5.0.0:
708 | version "5.0.2"
709 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
710 | dependencies:
711 | bn.js "^4.1.0"
712 | miller-rabin "^4.0.0"
713 | randombytes "^2.0.0"
714 |
715 | domain-browser@^1.1.1:
716 | version "1.2.0"
717 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
718 |
719 | duplexify@^3.4.2, duplexify@^3.5.3:
720 | version "3.5.3"
721 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e"
722 | dependencies:
723 | end-of-stream "^1.0.0"
724 | inherits "^2.0.1"
725 | readable-stream "^2.0.0"
726 | stream-shift "^1.0.0"
727 |
728 | ecc-jsbn@~0.1.1:
729 | version "0.1.1"
730 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
731 | dependencies:
732 | jsbn "~0.1.0"
733 |
734 | elliptic@^6.0.0:
735 | version "6.4.0"
736 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
737 | dependencies:
738 | bn.js "^4.4.0"
739 | brorand "^1.0.1"
740 | hash.js "^1.0.0"
741 | hmac-drbg "^1.0.0"
742 | inherits "^2.0.1"
743 | minimalistic-assert "^1.0.0"
744 | minimalistic-crypto-utils "^1.0.0"
745 |
746 | emojis-list@^2.0.0:
747 | version "2.1.0"
748 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
749 |
750 | end-of-stream@^1.0.0, end-of-stream@^1.1.0:
751 | version "1.4.1"
752 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
753 | dependencies:
754 | once "^1.4.0"
755 |
756 | enhanced-resolve@3.3.0:
757 | version "3.3.0"
758 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz#950964ecc7f0332a42321b673b38dc8ff15535b3"
759 | dependencies:
760 | graceful-fs "^4.1.2"
761 | memory-fs "^0.4.0"
762 | object-assign "^4.0.1"
763 | tapable "^0.2.5"
764 |
765 | enhanced-resolve@^3.4.0:
766 | version "3.4.1"
767 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
768 | dependencies:
769 | graceful-fs "^4.1.2"
770 | memory-fs "^0.4.0"
771 | object-assign "^4.0.1"
772 | tapable "^0.2.7"
773 |
774 | errno@^0.1.3, errno@^0.1.4:
775 | version "0.1.7"
776 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
777 | dependencies:
778 | prr "~1.0.1"
779 |
780 | error-ex@^1.2.0:
781 | version "1.3.1"
782 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
783 | dependencies:
784 | is-arrayish "^0.2.1"
785 |
786 | es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
787 | version "0.10.39"
788 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87"
789 | dependencies:
790 | es6-iterator "~2.0.3"
791 | es6-symbol "~3.1.1"
792 |
793 | es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
794 | version "2.0.3"
795 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
796 | dependencies:
797 | d "1"
798 | es5-ext "^0.10.35"
799 | es6-symbol "^3.1.1"
800 |
801 | es6-map@^0.1.3:
802 | version "0.1.5"
803 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
804 | dependencies:
805 | d "1"
806 | es5-ext "~0.10.14"
807 | es6-iterator "~2.0.1"
808 | es6-set "~0.1.5"
809 | es6-symbol "~3.1.1"
810 | event-emitter "~0.3.5"
811 |
812 | es6-set@~0.1.5:
813 | version "0.1.5"
814 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
815 | dependencies:
816 | d "1"
817 | es5-ext "~0.10.14"
818 | es6-iterator "~2.0.1"
819 | es6-symbol "3.1.1"
820 | event-emitter "~0.3.5"
821 |
822 | es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
823 | version "3.1.1"
824 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
825 | dependencies:
826 | d "1"
827 | es5-ext "~0.10.14"
828 |
829 | es6-weak-map@^2.0.1:
830 | version "2.0.2"
831 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
832 | dependencies:
833 | d "1"
834 | es5-ext "^0.10.14"
835 | es6-iterator "^2.0.1"
836 | es6-symbol "^3.1.1"
837 |
838 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
839 | version "1.0.5"
840 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
841 |
842 | escope@^3.6.0:
843 | version "3.6.0"
844 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
845 | dependencies:
846 | es6-map "^0.1.3"
847 | es6-weak-map "^2.0.1"
848 | esrecurse "^4.1.0"
849 | estraverse "^4.1.1"
850 |
851 | esprima@^4.0.0:
852 | version "4.0.0"
853 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
854 |
855 | esrecurse@^4.1.0:
856 | version "4.2.0"
857 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
858 | dependencies:
859 | estraverse "^4.1.0"
860 | object-assign "^4.0.1"
861 |
862 | estraverse@^4.1.0, estraverse@^4.1.1:
863 | version "4.2.0"
864 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
865 |
866 | esutils@^2.0.2:
867 | version "2.0.2"
868 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
869 |
870 | event-emitter@~0.3.5:
871 | version "0.3.5"
872 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
873 | dependencies:
874 | d "1"
875 | es5-ext "~0.10.14"
876 |
877 | events@^1.0.0:
878 | version "1.1.1"
879 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
880 |
881 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
882 | version "1.0.3"
883 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
884 | dependencies:
885 | md5.js "^1.3.4"
886 | safe-buffer "^5.1.1"
887 |
888 | execa@^0.7.0:
889 | version "0.7.0"
890 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
891 | dependencies:
892 | cross-spawn "^5.0.1"
893 | get-stream "^3.0.0"
894 | is-stream "^1.1.0"
895 | npm-run-path "^2.0.0"
896 | p-finally "^1.0.0"
897 | signal-exit "^3.0.0"
898 | strip-eof "^1.0.0"
899 |
900 | expand-brackets@^0.1.4:
901 | version "0.1.5"
902 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
903 | dependencies:
904 | is-posix-bracket "^0.1.0"
905 |
906 | expand-brackets@^2.1.4:
907 | version "2.1.4"
908 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
909 | dependencies:
910 | debug "^2.3.3"
911 | define-property "^0.2.5"
912 | extend-shallow "^2.0.1"
913 | posix-character-classes "^0.1.0"
914 | regex-not "^1.0.0"
915 | snapdragon "^0.8.1"
916 | to-regex "^3.0.1"
917 |
918 | expand-range@^1.8.1:
919 | version "1.8.2"
920 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
921 | dependencies:
922 | fill-range "^2.1.0"
923 |
924 | extend-shallow@^2.0.1:
925 | version "2.0.1"
926 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
927 | dependencies:
928 | is-extendable "^0.1.0"
929 |
930 | extend-shallow@^3.0.0:
931 | version "3.0.2"
932 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
933 | dependencies:
934 | assign-symbols "^1.0.0"
935 | is-extendable "^1.0.1"
936 |
937 | extend@~3.0.0:
938 | version "3.0.1"
939 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
940 |
941 | extglob@^0.3.1:
942 | version "0.3.2"
943 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
944 | dependencies:
945 | is-extglob "^1.0.0"
946 |
947 | extglob@^2.0.2:
948 | version "2.0.4"
949 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
950 | dependencies:
951 | array-unique "^0.3.2"
952 | define-property "^1.0.0"
953 | expand-brackets "^2.1.4"
954 | extend-shallow "^2.0.1"
955 | fragment-cache "^0.2.1"
956 | regex-not "^1.0.0"
957 | snapdragon "^0.8.1"
958 | to-regex "^3.0.1"
959 |
960 | extsprintf@1.3.0:
961 | version "1.3.0"
962 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
963 |
964 | extsprintf@^1.2.0:
965 | version "1.4.0"
966 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
967 |
968 | fast-deep-equal@^1.0.0:
969 | version "1.0.0"
970 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
971 |
972 | fast-json-stable-stringify@^2.0.0:
973 | version "2.0.0"
974 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
975 |
976 | filename-regex@^2.0.0:
977 | version "2.0.1"
978 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
979 |
980 | fill-range@^2.1.0:
981 | version "2.2.3"
982 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
983 | dependencies:
984 | is-number "^2.1.0"
985 | isobject "^2.0.0"
986 | randomatic "^1.1.3"
987 | repeat-element "^1.1.2"
988 | repeat-string "^1.5.2"
989 |
990 | fill-range@^4.0.0:
991 | version "4.0.0"
992 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
993 | dependencies:
994 | extend-shallow "^2.0.1"
995 | is-number "^3.0.0"
996 | repeat-string "^1.6.1"
997 | to-regex-range "^2.1.0"
998 |
999 | find-cache-dir@^1.0.0:
1000 | version "1.0.0"
1001 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
1002 | dependencies:
1003 | commondir "^1.0.1"
1004 | make-dir "^1.0.0"
1005 | pkg-dir "^2.0.0"
1006 |
1007 | find-up@^2.0.0, find-up@^2.1.0:
1008 | version "2.1.0"
1009 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
1010 | dependencies:
1011 | locate-path "^2.0.0"
1012 |
1013 | flush-write-stream@^1.0.0:
1014 | version "1.0.2"
1015 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417"
1016 | dependencies:
1017 | inherits "^2.0.1"
1018 | readable-stream "^2.0.4"
1019 |
1020 | for-in@^1.0.1, for-in@^1.0.2:
1021 | version "1.0.2"
1022 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
1023 |
1024 | for-own@^0.1.4:
1025 | version "0.1.5"
1026 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
1027 | dependencies:
1028 | for-in "^1.0.1"
1029 |
1030 | forever-agent@~0.6.1:
1031 | version "0.6.1"
1032 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
1033 |
1034 | form-data@~2.1.1:
1035 | version "2.1.4"
1036 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
1037 | dependencies:
1038 | asynckit "^0.4.0"
1039 | combined-stream "^1.0.5"
1040 | mime-types "^2.1.12"
1041 |
1042 | fragment-cache@^0.2.1:
1043 | version "0.2.1"
1044 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
1045 | dependencies:
1046 | map-cache "^0.2.2"
1047 |
1048 | from2@^2.1.0:
1049 | version "2.3.0"
1050 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
1051 | dependencies:
1052 | inherits "^2.0.1"
1053 | readable-stream "^2.0.0"
1054 |
1055 | fs-write-stream-atomic@^1.0.8:
1056 | version "1.0.10"
1057 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
1058 | dependencies:
1059 | graceful-fs "^4.1.2"
1060 | iferr "^0.1.5"
1061 | imurmurhash "^0.1.4"
1062 | readable-stream "1 || 2"
1063 |
1064 | fs.realpath@^1.0.0:
1065 | version "1.0.0"
1066 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1067 |
1068 | fsevents@^1.0.0:
1069 | version "1.1.3"
1070 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
1071 | dependencies:
1072 | nan "^2.3.0"
1073 | node-pre-gyp "^0.6.39"
1074 |
1075 | fstream-ignore@^1.0.5:
1076 | version "1.0.5"
1077 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
1078 | dependencies:
1079 | fstream "^1.0.0"
1080 | inherits "2"
1081 | minimatch "^3.0.0"
1082 |
1083 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
1084 | version "1.0.11"
1085 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
1086 | dependencies:
1087 | graceful-fs "^4.1.2"
1088 | inherits "~2.0.0"
1089 | mkdirp ">=0.5 0"
1090 | rimraf "2"
1091 |
1092 | gauge@~2.7.3:
1093 | version "2.7.4"
1094 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
1095 | dependencies:
1096 | aproba "^1.0.3"
1097 | console-control-strings "^1.0.0"
1098 | has-unicode "^2.0.0"
1099 | object-assign "^4.1.0"
1100 | signal-exit "^3.0.0"
1101 | string-width "^1.0.1"
1102 | strip-ansi "^3.0.1"
1103 | wide-align "^1.1.0"
1104 |
1105 | get-caller-file@^1.0.1:
1106 | version "1.0.2"
1107 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
1108 |
1109 | get-stream@^3.0.0:
1110 | version "3.0.0"
1111 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
1112 |
1113 | get-value@^2.0.3, get-value@^2.0.6:
1114 | version "2.0.6"
1115 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
1116 |
1117 | getpass@^0.1.1:
1118 | version "0.1.7"
1119 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
1120 | dependencies:
1121 | assert-plus "^1.0.0"
1122 |
1123 | glob-base@^0.3.0:
1124 | version "0.3.0"
1125 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1126 | dependencies:
1127 | glob-parent "^2.0.0"
1128 | is-glob "^2.0.0"
1129 |
1130 | glob-parent@^2.0.0:
1131 | version "2.0.0"
1132 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1133 | dependencies:
1134 | is-glob "^2.0.0"
1135 |
1136 | glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
1137 | version "7.1.2"
1138 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
1139 | dependencies:
1140 | fs.realpath "^1.0.0"
1141 | inflight "^1.0.4"
1142 | inherits "2"
1143 | minimatch "^3.0.4"
1144 | once "^1.3.0"
1145 | path-is-absolute "^1.0.0"
1146 |
1147 | graceful-fs@^4.1.11, graceful-fs@^4.1.2:
1148 | version "4.1.11"
1149 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1150 |
1151 | har-schema@^1.0.5:
1152 | version "1.0.5"
1153 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
1154 |
1155 | har-validator@~4.2.1:
1156 | version "4.2.1"
1157 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
1158 | dependencies:
1159 | ajv "^4.9.1"
1160 | har-schema "^1.0.5"
1161 |
1162 | has-ansi@^2.0.0:
1163 | version "2.0.0"
1164 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1165 | dependencies:
1166 | ansi-regex "^2.0.0"
1167 |
1168 | has-flag@^2.0.0:
1169 | version "2.0.0"
1170 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
1171 |
1172 | has-flag@^3.0.0:
1173 | version "3.0.0"
1174 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1175 |
1176 | has-unicode@^2.0.0:
1177 | version "2.0.1"
1178 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
1179 |
1180 | has-value@^0.3.1:
1181 | version "0.3.1"
1182 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
1183 | dependencies:
1184 | get-value "^2.0.3"
1185 | has-values "^0.1.4"
1186 | isobject "^2.0.0"
1187 |
1188 | has-value@^1.0.0:
1189 | version "1.0.0"
1190 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
1191 | dependencies:
1192 | get-value "^2.0.6"
1193 | has-values "^1.0.0"
1194 | isobject "^3.0.0"
1195 |
1196 | has-values@^0.1.4:
1197 | version "0.1.4"
1198 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
1199 |
1200 | has-values@^1.0.0:
1201 | version "1.0.0"
1202 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
1203 | dependencies:
1204 | is-number "^3.0.0"
1205 | kind-of "^4.0.0"
1206 |
1207 | hash-base@^2.0.0:
1208 | version "2.0.2"
1209 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
1210 | dependencies:
1211 | inherits "^2.0.1"
1212 |
1213 | hash-base@^3.0.0:
1214 | version "3.0.4"
1215 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
1216 | dependencies:
1217 | inherits "^2.0.1"
1218 | safe-buffer "^5.0.1"
1219 |
1220 | hash.js@^1.0.0, hash.js@^1.0.3:
1221 | version "1.1.3"
1222 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
1223 | dependencies:
1224 | inherits "^2.0.3"
1225 | minimalistic-assert "^1.0.0"
1226 |
1227 | hawk@3.1.3, hawk@~3.1.3:
1228 | version "3.1.3"
1229 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1230 | dependencies:
1231 | boom "2.x.x"
1232 | cryptiles "2.x.x"
1233 | hoek "2.x.x"
1234 | sntp "1.x.x"
1235 |
1236 | hmac-drbg@^1.0.0:
1237 | version "1.0.1"
1238 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
1239 | dependencies:
1240 | hash.js "^1.0.3"
1241 | minimalistic-assert "^1.0.0"
1242 | minimalistic-crypto-utils "^1.0.1"
1243 |
1244 | hoek@2.x.x:
1245 | version "2.16.3"
1246 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1247 |
1248 | hosted-git-info@^2.1.4:
1249 | version "2.5.0"
1250 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
1251 |
1252 | http-signature@~1.1.0:
1253 | version "1.1.1"
1254 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1255 | dependencies:
1256 | assert-plus "^0.2.0"
1257 | jsprim "^1.2.2"
1258 | sshpk "^1.7.0"
1259 |
1260 | https-browserify@^1.0.0:
1261 | version "1.0.0"
1262 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
1263 |
1264 | ieee754@^1.1.4:
1265 | version "1.1.8"
1266 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
1267 |
1268 | iferr@^0.1.5:
1269 | version "0.1.5"
1270 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
1271 |
1272 | imurmurhash@^0.1.4:
1273 | version "0.1.4"
1274 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1275 |
1276 | indexof@0.0.1:
1277 | version "0.0.1"
1278 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
1279 |
1280 | inflight@^1.0.4:
1281 | version "1.0.6"
1282 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1283 | dependencies:
1284 | once "^1.3.0"
1285 | wrappy "1"
1286 |
1287 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
1288 | version "2.0.3"
1289 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1290 |
1291 | inherits@2.0.1:
1292 | version "2.0.1"
1293 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
1294 |
1295 | ini@~1.3.0:
1296 | version "1.3.5"
1297 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
1298 |
1299 | interpret@^1.0.0:
1300 | version "1.1.0"
1301 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
1302 |
1303 | invert-kv@^1.0.0:
1304 | version "1.0.0"
1305 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
1306 |
1307 | is-accessor-descriptor@^0.1.6:
1308 | version "0.1.6"
1309 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
1310 | dependencies:
1311 | kind-of "^3.0.2"
1312 |
1313 | is-accessor-descriptor@^1.0.0:
1314 | version "1.0.0"
1315 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
1316 | dependencies:
1317 | kind-of "^6.0.0"
1318 |
1319 | is-arrayish@^0.2.1:
1320 | version "0.2.1"
1321 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1322 |
1323 | is-binary-path@^1.0.0:
1324 | version "1.0.1"
1325 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
1326 | dependencies:
1327 | binary-extensions "^1.0.0"
1328 |
1329 | is-buffer@^1.1.5:
1330 | version "1.1.6"
1331 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
1332 |
1333 | is-builtin-module@^1.0.0:
1334 | version "1.0.0"
1335 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1336 | dependencies:
1337 | builtin-modules "^1.0.0"
1338 |
1339 | is-data-descriptor@^0.1.4:
1340 | version "0.1.4"
1341 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
1342 | dependencies:
1343 | kind-of "^3.0.2"
1344 |
1345 | is-data-descriptor@^1.0.0:
1346 | version "1.0.0"
1347 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
1348 | dependencies:
1349 | kind-of "^6.0.0"
1350 |
1351 | is-descriptor@^0.1.0:
1352 | version "0.1.6"
1353 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
1354 | dependencies:
1355 | is-accessor-descriptor "^0.1.6"
1356 | is-data-descriptor "^0.1.4"
1357 | kind-of "^5.0.0"
1358 |
1359 | is-descriptor@^1.0.0:
1360 | version "1.0.2"
1361 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
1362 | dependencies:
1363 | is-accessor-descriptor "^1.0.0"
1364 | is-data-descriptor "^1.0.0"
1365 | kind-of "^6.0.2"
1366 |
1367 | is-dotfile@^1.0.0:
1368 | version "1.0.3"
1369 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
1370 |
1371 | is-equal-shallow@^0.1.3:
1372 | version "0.1.3"
1373 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1374 | dependencies:
1375 | is-primitive "^2.0.0"
1376 |
1377 | is-extendable@^0.1.0, is-extendable@^0.1.1:
1378 | version "0.1.1"
1379 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1380 |
1381 | is-extendable@^1.0.1:
1382 | version "1.0.1"
1383 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
1384 | dependencies:
1385 | is-plain-object "^2.0.4"
1386 |
1387 | is-extglob@^1.0.0:
1388 | version "1.0.0"
1389 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1390 |
1391 | is-fullwidth-code-point@^1.0.0:
1392 | version "1.0.0"
1393 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1394 | dependencies:
1395 | number-is-nan "^1.0.0"
1396 |
1397 | is-fullwidth-code-point@^2.0.0:
1398 | version "2.0.0"
1399 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1400 |
1401 | is-glob@^2.0.0, is-glob@^2.0.1:
1402 | version "2.0.1"
1403 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1404 | dependencies:
1405 | is-extglob "^1.0.0"
1406 |
1407 | is-number@^2.1.0:
1408 | version "2.1.0"
1409 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1410 | dependencies:
1411 | kind-of "^3.0.2"
1412 |
1413 | is-number@^3.0.0:
1414 | version "3.0.0"
1415 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
1416 | dependencies:
1417 | kind-of "^3.0.2"
1418 |
1419 | is-odd@^1.0.0:
1420 | version "1.0.0"
1421 | resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088"
1422 | dependencies:
1423 | is-number "^3.0.0"
1424 |
1425 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
1426 | version "2.0.4"
1427 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
1428 | dependencies:
1429 | isobject "^3.0.1"
1430 |
1431 | is-posix-bracket@^0.1.0:
1432 | version "0.1.1"
1433 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1434 |
1435 | is-primitive@^2.0.0:
1436 | version "2.0.0"
1437 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1438 |
1439 | is-stream@^1.1.0:
1440 | version "1.1.0"
1441 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1442 |
1443 | is-typedarray@~1.0.0:
1444 | version "1.0.0"
1445 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1446 |
1447 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
1448 | version "1.0.0"
1449 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1450 |
1451 | isexe@^2.0.0:
1452 | version "2.0.0"
1453 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1454 |
1455 | isobject@^2.0.0:
1456 | version "2.1.0"
1457 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1458 | dependencies:
1459 | isarray "1.0.0"
1460 |
1461 | isobject@^3.0.0, isobject@^3.0.1:
1462 | version "3.0.1"
1463 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
1464 |
1465 | isstream@~0.1.2:
1466 | version "0.1.2"
1467 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1468 |
1469 | js-tokens@^3.0.2:
1470 | version "3.0.2"
1471 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
1472 |
1473 | js-yaml@^3.7.0:
1474 | version "3.10.0"
1475 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
1476 | dependencies:
1477 | argparse "^1.0.7"
1478 | esprima "^4.0.0"
1479 |
1480 | jsbn@~0.1.0:
1481 | version "0.1.1"
1482 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
1483 |
1484 | json-loader@^0.5.4:
1485 | version "0.5.7"
1486 | resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
1487 |
1488 | json-schema-traverse@^0.3.0:
1489 | version "0.3.1"
1490 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
1491 |
1492 | json-schema@0.2.3:
1493 | version "0.2.3"
1494 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1495 |
1496 | json-stable-stringify@^1.0.1:
1497 | version "1.0.1"
1498 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1499 | dependencies:
1500 | jsonify "~0.0.0"
1501 |
1502 | json-stringify-safe@~5.0.1:
1503 | version "5.0.1"
1504 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1505 |
1506 | json5@^0.5.0, json5@^0.5.1:
1507 | version "0.5.1"
1508 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
1509 |
1510 | jsonify@~0.0.0:
1511 | version "0.0.0"
1512 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1513 |
1514 | jsprim@^1.2.2:
1515 | version "1.4.1"
1516 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
1517 | dependencies:
1518 | assert-plus "1.0.0"
1519 | extsprintf "1.3.0"
1520 | json-schema "0.2.3"
1521 | verror "1.10.0"
1522 |
1523 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
1524 | version "3.2.2"
1525 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
1526 | dependencies:
1527 | is-buffer "^1.1.5"
1528 |
1529 | kind-of@^4.0.0:
1530 | version "4.0.0"
1531 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
1532 | dependencies:
1533 | is-buffer "^1.1.5"
1534 |
1535 | kind-of@^5.0.0, kind-of@^5.0.2:
1536 | version "5.1.0"
1537 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
1538 |
1539 | kind-of@^6.0.0, kind-of@^6.0.2:
1540 | version "6.0.2"
1541 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
1542 |
1543 | lazy-cache@^1.0.3:
1544 | version "1.0.4"
1545 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
1546 |
1547 | lazy-cache@^2.0.2:
1548 | version "2.0.2"
1549 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
1550 | dependencies:
1551 | set-getter "^0.1.0"
1552 |
1553 | lcid@^1.0.0:
1554 | version "1.0.0"
1555 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
1556 | dependencies:
1557 | invert-kv "^1.0.0"
1558 |
1559 | load-json-file@^2.0.0:
1560 | version "2.0.0"
1561 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
1562 | dependencies:
1563 | graceful-fs "^4.1.2"
1564 | parse-json "^2.2.0"
1565 | pify "^2.0.0"
1566 | strip-bom "^3.0.0"
1567 |
1568 | loader-runner@^2.3.0:
1569 | version "2.3.0"
1570 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
1571 |
1572 | loader-utils@^1.1.0:
1573 | version "1.1.0"
1574 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
1575 | dependencies:
1576 | big.js "^3.1.3"
1577 | emojis-list "^2.0.0"
1578 | json5 "^0.5.0"
1579 |
1580 | loader-utils@~0.2.2:
1581 | version "0.2.17"
1582 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
1583 | dependencies:
1584 | big.js "^3.1.3"
1585 | emojis-list "^2.0.0"
1586 | json5 "^0.5.0"
1587 | object-assign "^4.0.1"
1588 |
1589 | locate-path@^2.0.0:
1590 | version "2.0.0"
1591 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
1592 | dependencies:
1593 | p-locate "^2.0.0"
1594 | path-exists "^3.0.0"
1595 |
1596 | lodash@^4.14.0, lodash@^4.17.4:
1597 | version "4.17.5"
1598 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
1599 |
1600 | longest@^1.0.1:
1601 | version "1.0.1"
1602 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
1603 |
1604 | lru-cache@^4.0.1, lru-cache@^4.1.1:
1605 | version "4.1.1"
1606 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
1607 | dependencies:
1608 | pseudomap "^1.0.2"
1609 | yallist "^2.1.2"
1610 |
1611 | make-dir@^1.0.0:
1612 | version "1.2.0"
1613 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
1614 | dependencies:
1615 | pify "^3.0.0"
1616 |
1617 | map-cache@^0.2.2:
1618 | version "0.2.2"
1619 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
1620 |
1621 | map-visit@^1.0.0:
1622 | version "1.0.0"
1623 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
1624 | dependencies:
1625 | object-visit "^1.0.0"
1626 |
1627 | md5.js@^1.3.4:
1628 | version "1.3.4"
1629 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
1630 | dependencies:
1631 | hash-base "^3.0.0"
1632 | inherits "^2.0.1"
1633 |
1634 | mem@^1.1.0:
1635 | version "1.1.0"
1636 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
1637 | dependencies:
1638 | mimic-fn "^1.0.0"
1639 |
1640 | memory-fs@^0.4.0, memory-fs@~0.4.1:
1641 | version "0.4.1"
1642 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
1643 | dependencies:
1644 | errno "^0.1.3"
1645 | readable-stream "^2.0.1"
1646 |
1647 | micromatch@^2.1.5:
1648 | version "2.3.11"
1649 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1650 | dependencies:
1651 | arr-diff "^2.0.0"
1652 | array-unique "^0.2.1"
1653 | braces "^1.8.2"
1654 | expand-brackets "^0.1.4"
1655 | extglob "^0.3.1"
1656 | filename-regex "^2.0.0"
1657 | is-extglob "^1.0.0"
1658 | is-glob "^2.0.1"
1659 | kind-of "^3.0.2"
1660 | normalize-path "^2.0.1"
1661 | object.omit "^2.0.0"
1662 | parse-glob "^3.0.4"
1663 | regex-cache "^0.4.2"
1664 |
1665 | micromatch@^3.0.3:
1666 | version "3.1.5"
1667 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba"
1668 | dependencies:
1669 | arr-diff "^4.0.0"
1670 | array-unique "^0.3.2"
1671 | braces "^2.3.0"
1672 | define-property "^1.0.0"
1673 | extend-shallow "^2.0.1"
1674 | extglob "^2.0.2"
1675 | fragment-cache "^0.2.1"
1676 | kind-of "^6.0.0"
1677 | nanomatch "^1.2.5"
1678 | object.pick "^1.3.0"
1679 | regex-not "^1.0.0"
1680 | snapdragon "^0.8.1"
1681 | to-regex "^3.0.1"
1682 |
1683 | miller-rabin@^4.0.0:
1684 | version "4.0.1"
1685 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
1686 | dependencies:
1687 | bn.js "^4.0.0"
1688 | brorand "^1.0.1"
1689 |
1690 | mime-db@~1.33.0:
1691 | version "1.33.0"
1692 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
1693 |
1694 | mime-types@^2.1.12, mime-types@~2.1.7:
1695 | version "2.1.18"
1696 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
1697 | dependencies:
1698 | mime-db "~1.33.0"
1699 |
1700 | mimic-fn@^1.0.0:
1701 | version "1.2.0"
1702 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
1703 |
1704 | minimalistic-assert@^1.0.0:
1705 | version "1.0.0"
1706 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
1707 |
1708 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
1709 | version "1.0.1"
1710 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
1711 |
1712 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
1713 | version "3.0.4"
1714 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1715 | dependencies:
1716 | brace-expansion "^1.1.7"
1717 |
1718 | minimist@0.0.8:
1719 | version "0.0.8"
1720 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1721 |
1722 | minimist@^1.2.0:
1723 | version "1.2.0"
1724 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1725 |
1726 | mississippi@^2.0.0:
1727 | version "2.0.0"
1728 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
1729 | dependencies:
1730 | concat-stream "^1.5.0"
1731 | duplexify "^3.4.2"
1732 | end-of-stream "^1.1.0"
1733 | flush-write-stream "^1.0.0"
1734 | from2 "^2.1.0"
1735 | parallel-transform "^1.1.0"
1736 | pump "^2.0.1"
1737 | pumpify "^1.3.3"
1738 | stream-each "^1.1.0"
1739 | through2 "^2.0.0"
1740 |
1741 | mixin-deep@^1.2.0:
1742 | version "1.3.1"
1743 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
1744 | dependencies:
1745 | for-in "^1.0.2"
1746 | is-extendable "^1.0.1"
1747 |
1748 | "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0:
1749 | version "0.5.1"
1750 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1751 | dependencies:
1752 | minimist "0.0.8"
1753 |
1754 | move-concurrently@^1.0.1:
1755 | version "1.0.1"
1756 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
1757 | dependencies:
1758 | aproba "^1.1.1"
1759 | copy-concurrently "^1.0.0"
1760 | fs-write-stream-atomic "^1.0.8"
1761 | mkdirp "^0.5.1"
1762 | rimraf "^2.5.4"
1763 | run-queue "^1.0.3"
1764 |
1765 | ms@2.0.0:
1766 | version "2.0.0"
1767 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1768 |
1769 | nan@^2.3.0:
1770 | version "2.8.0"
1771 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
1772 |
1773 | nanomatch@^1.2.5:
1774 | version "1.2.7"
1775 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79"
1776 | dependencies:
1777 | arr-diff "^4.0.0"
1778 | array-unique "^0.3.2"
1779 | define-property "^1.0.0"
1780 | extend-shallow "^2.0.1"
1781 | fragment-cache "^0.2.1"
1782 | is-odd "^1.0.0"
1783 | kind-of "^5.0.2"
1784 | object.pick "^1.3.0"
1785 | regex-not "^1.0.0"
1786 | snapdragon "^0.8.1"
1787 | to-regex "^3.0.1"
1788 |
1789 | node-libs-browser@^2.0.0:
1790 | version "2.1.0"
1791 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
1792 | dependencies:
1793 | assert "^1.1.1"
1794 | browserify-zlib "^0.2.0"
1795 | buffer "^4.3.0"
1796 | console-browserify "^1.1.0"
1797 | constants-browserify "^1.0.0"
1798 | crypto-browserify "^3.11.0"
1799 | domain-browser "^1.1.1"
1800 | events "^1.0.0"
1801 | https-browserify "^1.0.0"
1802 | os-browserify "^0.3.0"
1803 | path-browserify "0.0.0"
1804 | process "^0.11.10"
1805 | punycode "^1.2.4"
1806 | querystring-es3 "^0.2.0"
1807 | readable-stream "^2.3.3"
1808 | stream-browserify "^2.0.1"
1809 | stream-http "^2.7.2"
1810 | string_decoder "^1.0.0"
1811 | timers-browserify "^2.0.4"
1812 | tty-browserify "0.0.0"
1813 | url "^0.11.0"
1814 | util "^0.10.3"
1815 | vm-browserify "0.0.4"
1816 |
1817 | node-pre-gyp@^0.6.39:
1818 | version "0.6.39"
1819 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
1820 | dependencies:
1821 | detect-libc "^1.0.2"
1822 | hawk "3.1.3"
1823 | mkdirp "^0.5.1"
1824 | nopt "^4.0.1"
1825 | npmlog "^4.0.2"
1826 | rc "^1.1.7"
1827 | request "2.81.0"
1828 | rimraf "^2.6.1"
1829 | semver "^5.3.0"
1830 | tar "^2.2.1"
1831 | tar-pack "^3.4.0"
1832 |
1833 | nopt@^4.0.1:
1834 | version "4.0.1"
1835 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
1836 | dependencies:
1837 | abbrev "1"
1838 | osenv "^0.1.4"
1839 |
1840 | normalize-package-data@^2.3.2:
1841 | version "2.4.0"
1842 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
1843 | dependencies:
1844 | hosted-git-info "^2.1.4"
1845 | is-builtin-module "^1.0.0"
1846 | semver "2 || 3 || 4 || 5"
1847 | validate-npm-package-license "^3.0.1"
1848 |
1849 | normalize-path@^2.0.0, normalize-path@^2.0.1:
1850 | version "2.1.1"
1851 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
1852 | dependencies:
1853 | remove-trailing-separator "^1.0.1"
1854 |
1855 | npm-run-path@^2.0.0:
1856 | version "2.0.2"
1857 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
1858 | dependencies:
1859 | path-key "^2.0.0"
1860 |
1861 | npmlog@^4.0.2:
1862 | version "4.1.2"
1863 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
1864 | dependencies:
1865 | are-we-there-yet "~1.1.2"
1866 | console-control-strings "~1.1.0"
1867 | gauge "~2.7.3"
1868 | set-blocking "~2.0.0"
1869 |
1870 | number-is-nan@^1.0.0:
1871 | version "1.0.1"
1872 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1873 |
1874 | oauth-sign@~0.8.1:
1875 | version "0.8.2"
1876 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
1877 |
1878 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
1879 | version "4.1.1"
1880 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1881 |
1882 | object-copy@^0.1.0:
1883 | version "0.1.0"
1884 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
1885 | dependencies:
1886 | copy-descriptor "^0.1.0"
1887 | define-property "^0.2.5"
1888 | kind-of "^3.0.3"
1889 |
1890 | object-visit@^1.0.0:
1891 | version "1.0.1"
1892 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
1893 | dependencies:
1894 | isobject "^3.0.0"
1895 |
1896 | object.omit@^2.0.0:
1897 | version "2.0.1"
1898 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
1899 | dependencies:
1900 | for-own "^0.1.4"
1901 | is-extendable "^0.1.1"
1902 |
1903 | object.pick@^1.3.0:
1904 | version "1.3.0"
1905 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
1906 | dependencies:
1907 | isobject "^3.0.1"
1908 |
1909 | once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
1910 | version "1.4.0"
1911 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1912 | dependencies:
1913 | wrappy "1"
1914 |
1915 | os-browserify@^0.3.0:
1916 | version "0.3.0"
1917 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
1918 |
1919 | os-homedir@^1.0.0:
1920 | version "1.0.2"
1921 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1922 |
1923 | os-locale@^2.0.0:
1924 | version "2.1.0"
1925 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
1926 | dependencies:
1927 | execa "^0.7.0"
1928 | lcid "^1.0.0"
1929 | mem "^1.1.0"
1930 |
1931 | os-tmpdir@^1.0.0:
1932 | version "1.0.2"
1933 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1934 |
1935 | osenv@^0.1.4:
1936 | version "0.1.5"
1937 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
1938 | dependencies:
1939 | os-homedir "^1.0.0"
1940 | os-tmpdir "^1.0.0"
1941 |
1942 | p-finally@^1.0.0:
1943 | version "1.0.0"
1944 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
1945 |
1946 | p-limit@^1.1.0:
1947 | version "1.2.0"
1948 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
1949 | dependencies:
1950 | p-try "^1.0.0"
1951 |
1952 | p-locate@^2.0.0:
1953 | version "2.0.0"
1954 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
1955 | dependencies:
1956 | p-limit "^1.1.0"
1957 |
1958 | p-try@^1.0.0:
1959 | version "1.0.0"
1960 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
1961 |
1962 | pako@~1.0.5:
1963 | version "1.0.6"
1964 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
1965 |
1966 | parallel-transform@^1.1.0:
1967 | version "1.1.0"
1968 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
1969 | dependencies:
1970 | cyclist "~0.2.2"
1971 | inherits "^2.0.3"
1972 | readable-stream "^2.1.5"
1973 |
1974 | parse-asn1@^5.0.0:
1975 | version "5.1.0"
1976 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
1977 | dependencies:
1978 | asn1.js "^4.0.0"
1979 | browserify-aes "^1.0.0"
1980 | create-hash "^1.1.0"
1981 | evp_bytestokey "^1.0.0"
1982 | pbkdf2 "^3.0.3"
1983 |
1984 | parse-glob@^3.0.4:
1985 | version "3.0.4"
1986 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
1987 | dependencies:
1988 | glob-base "^0.3.0"
1989 | is-dotfile "^1.0.0"
1990 | is-extglob "^1.0.0"
1991 | is-glob "^2.0.0"
1992 |
1993 | parse-json@^2.2.0:
1994 | version "2.2.0"
1995 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
1996 | dependencies:
1997 | error-ex "^1.2.0"
1998 |
1999 | pascalcase@^0.1.1:
2000 | version "0.1.1"
2001 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
2002 |
2003 | path-browserify@0.0.0:
2004 | version "0.0.0"
2005 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
2006 |
2007 | path-exists@^3.0.0:
2008 | version "3.0.0"
2009 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
2010 |
2011 | path-is-absolute@^1.0.0:
2012 | version "1.0.1"
2013 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2014 |
2015 | path-key@^2.0.0:
2016 | version "2.0.1"
2017 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
2018 |
2019 | path-parse@^1.0.5:
2020 | version "1.0.5"
2021 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
2022 |
2023 | path-type@^2.0.0:
2024 | version "2.0.0"
2025 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
2026 | dependencies:
2027 | pify "^2.0.0"
2028 |
2029 | pbkdf2@^3.0.3:
2030 | version "3.0.14"
2031 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
2032 | dependencies:
2033 | create-hash "^1.1.2"
2034 | create-hmac "^1.1.4"
2035 | ripemd160 "^2.0.1"
2036 | safe-buffer "^5.0.1"
2037 | sha.js "^2.4.8"
2038 |
2039 | performance-now@^0.2.0:
2040 | version "0.2.0"
2041 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
2042 |
2043 | pify@^2.0.0:
2044 | version "2.3.0"
2045 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2046 |
2047 | pify@^3.0.0:
2048 | version "3.0.0"
2049 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
2050 |
2051 | pkg-dir@^2.0.0:
2052 | version "2.0.0"
2053 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
2054 | dependencies:
2055 | find-up "^2.1.0"
2056 |
2057 | posix-character-classes@^0.1.0:
2058 | version "0.1.1"
2059 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
2060 |
2061 | preserve@^0.2.0:
2062 | version "0.2.0"
2063 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
2064 |
2065 | process-nextick-args@~2.0.0:
2066 | version "2.0.0"
2067 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
2068 |
2069 | process@^0.11.10:
2070 | version "0.11.10"
2071 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
2072 |
2073 | promise-inflight@^1.0.1:
2074 | version "1.0.1"
2075 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
2076 |
2077 | prr@~1.0.1:
2078 | version "1.0.1"
2079 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
2080 |
2081 | pseudomap@^1.0.2:
2082 | version "1.0.2"
2083 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
2084 |
2085 | public-encrypt@^4.0.0:
2086 | version "4.0.0"
2087 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
2088 | dependencies:
2089 | bn.js "^4.1.0"
2090 | browserify-rsa "^4.0.0"
2091 | create-hash "^1.1.0"
2092 | parse-asn1 "^5.0.0"
2093 | randombytes "^2.0.1"
2094 |
2095 | pump@^2.0.0, pump@^2.0.1:
2096 | version "2.0.1"
2097 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
2098 | dependencies:
2099 | end-of-stream "^1.1.0"
2100 | once "^1.3.1"
2101 |
2102 | pumpify@^1.3.3:
2103 | version "1.4.0"
2104 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb"
2105 | dependencies:
2106 | duplexify "^3.5.3"
2107 | inherits "^2.0.3"
2108 | pump "^2.0.0"
2109 |
2110 | punycode@1.3.2:
2111 | version "1.3.2"
2112 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
2113 |
2114 | punycode@^1.2.4, punycode@^1.4.1:
2115 | version "1.4.1"
2116 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
2117 |
2118 | qs@~6.4.0:
2119 | version "6.4.0"
2120 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
2121 |
2122 | querystring-es3@^0.2.0:
2123 | version "0.2.1"
2124 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
2125 |
2126 | querystring@0.2.0:
2127 | version "0.2.0"
2128 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
2129 |
2130 | randomatic@^1.1.3:
2131 | version "1.1.7"
2132 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
2133 | dependencies:
2134 | is-number "^3.0.0"
2135 | kind-of "^4.0.0"
2136 |
2137 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
2138 | version "2.0.6"
2139 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
2140 | dependencies:
2141 | safe-buffer "^5.1.0"
2142 |
2143 | randomfill@^1.0.3:
2144 | version "1.0.4"
2145 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
2146 | dependencies:
2147 | randombytes "^2.0.5"
2148 | safe-buffer "^5.1.0"
2149 |
2150 | rc@^1.1.7:
2151 | version "1.2.5"
2152 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd"
2153 | dependencies:
2154 | deep-extend "~0.4.0"
2155 | ini "~1.3.0"
2156 | minimist "^1.2.0"
2157 | strip-json-comments "~2.0.1"
2158 |
2159 | read-pkg-up@^2.0.0:
2160 | version "2.0.0"
2161 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
2162 | dependencies:
2163 | find-up "^2.0.0"
2164 | read-pkg "^2.0.0"
2165 |
2166 | read-pkg@^2.0.0:
2167 | version "2.0.0"
2168 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
2169 | dependencies:
2170 | load-json-file "^2.0.0"
2171 | normalize-package-data "^2.3.2"
2172 | path-type "^2.0.0"
2173 |
2174 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3:
2175 | version "2.3.4"
2176 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071"
2177 | dependencies:
2178 | core-util-is "~1.0.0"
2179 | inherits "~2.0.3"
2180 | isarray "~1.0.0"
2181 | process-nextick-args "~2.0.0"
2182 | safe-buffer "~5.1.1"
2183 | string_decoder "~1.0.3"
2184 | util-deprecate "~1.0.1"
2185 |
2186 | readdirp@^2.0.0:
2187 | version "2.1.0"
2188 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
2189 | dependencies:
2190 | graceful-fs "^4.1.2"
2191 | minimatch "^3.0.2"
2192 | readable-stream "^2.0.2"
2193 | set-immediate-shim "^1.0.1"
2194 |
2195 | regex-cache@^0.4.2:
2196 | version "0.4.4"
2197 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
2198 | dependencies:
2199 | is-equal-shallow "^0.1.3"
2200 |
2201 | regex-not@^1.0.0:
2202 | version "1.0.0"
2203 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9"
2204 | dependencies:
2205 | extend-shallow "^2.0.1"
2206 |
2207 | remove-trailing-separator@^1.0.1:
2208 | version "1.1.0"
2209 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
2210 |
2211 | repeat-element@^1.1.2:
2212 | version "1.1.2"
2213 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
2214 |
2215 | repeat-string@^1.5.2, repeat-string@^1.6.1:
2216 | version "1.6.1"
2217 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2218 |
2219 | request@2.81.0:
2220 | version "2.81.0"
2221 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
2222 | dependencies:
2223 | aws-sign2 "~0.6.0"
2224 | aws4 "^1.2.1"
2225 | caseless "~0.12.0"
2226 | combined-stream "~1.0.5"
2227 | extend "~3.0.0"
2228 | forever-agent "~0.6.1"
2229 | form-data "~2.1.1"
2230 | har-validator "~4.2.1"
2231 | hawk "~3.1.3"
2232 | http-signature "~1.1.0"
2233 | is-typedarray "~1.0.0"
2234 | isstream "~0.1.2"
2235 | json-stringify-safe "~5.0.1"
2236 | mime-types "~2.1.7"
2237 | oauth-sign "~0.8.1"
2238 | performance-now "^0.2.0"
2239 | qs "~6.4.0"
2240 | safe-buffer "^5.0.1"
2241 | stringstream "~0.0.4"
2242 | tough-cookie "~2.3.0"
2243 | tunnel-agent "^0.6.0"
2244 | uuid "^3.0.0"
2245 |
2246 | require-directory@^2.1.1:
2247 | version "2.1.1"
2248 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2249 |
2250 | require-main-filename@^1.0.1:
2251 | version "1.0.1"
2252 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
2253 |
2254 | resolve-url@^0.2.1:
2255 | version "0.2.1"
2256 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
2257 |
2258 | resolve@^1.3.2:
2259 | version "1.5.0"
2260 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
2261 | dependencies:
2262 | path-parse "^1.0.5"
2263 |
2264 | right-align@^0.1.1:
2265 | version "0.1.3"
2266 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
2267 | dependencies:
2268 | align-text "^0.1.1"
2269 |
2270 | rimraf@2, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
2271 | version "2.6.2"
2272 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
2273 | dependencies:
2274 | glob "^7.0.5"
2275 |
2276 | ripemd160@^2.0.0, ripemd160@^2.0.1:
2277 | version "2.0.1"
2278 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
2279 | dependencies:
2280 | hash-base "^2.0.0"
2281 | inherits "^2.0.1"
2282 |
2283 | run-queue@^1.0.0, run-queue@^1.0.3:
2284 | version "1.0.3"
2285 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
2286 | dependencies:
2287 | aproba "^1.1.1"
2288 |
2289 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2290 | version "5.1.1"
2291 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
2292 |
2293 | schema-utils@^0.4.2:
2294 | version "0.4.5"
2295 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
2296 | dependencies:
2297 | ajv "^6.1.0"
2298 | ajv-keywords "^3.1.0"
2299 |
2300 | "semver@2 || 3 || 4 || 5", semver@^5.3.0:
2301 | version "5.5.0"
2302 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
2303 |
2304 | serialize-javascript@^1.4.0:
2305 | version "1.4.0"
2306 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005"
2307 |
2308 | set-blocking@^2.0.0, set-blocking@~2.0.0:
2309 | version "2.0.0"
2310 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2311 |
2312 | set-getter@^0.1.0:
2313 | version "0.1.0"
2314 | resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376"
2315 | dependencies:
2316 | to-object-path "^0.3.0"
2317 |
2318 | set-immediate-shim@^1.0.1:
2319 | version "1.0.1"
2320 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
2321 |
2322 | set-value@^0.4.3:
2323 | version "0.4.3"
2324 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
2325 | dependencies:
2326 | extend-shallow "^2.0.1"
2327 | is-extendable "^0.1.1"
2328 | is-plain-object "^2.0.1"
2329 | to-object-path "^0.3.0"
2330 |
2331 | set-value@^2.0.0:
2332 | version "2.0.0"
2333 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
2334 | dependencies:
2335 | extend-shallow "^2.0.1"
2336 | is-extendable "^0.1.1"
2337 | is-plain-object "^2.0.3"
2338 | split-string "^3.0.1"
2339 |
2340 | setimmediate@^1.0.4:
2341 | version "1.0.5"
2342 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
2343 |
2344 | sha.js@^2.4.0, sha.js@^2.4.8:
2345 | version "2.4.10"
2346 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b"
2347 | dependencies:
2348 | inherits "^2.0.1"
2349 | safe-buffer "^5.0.1"
2350 |
2351 | shebang-command@^1.2.0:
2352 | version "1.2.0"
2353 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
2354 | dependencies:
2355 | shebang-regex "^1.0.0"
2356 |
2357 | shebang-regex@^1.0.0:
2358 | version "1.0.0"
2359 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
2360 |
2361 | signal-exit@^3.0.0:
2362 | version "3.0.2"
2363 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2364 |
2365 | snapdragon-node@^2.0.1:
2366 | version "2.1.1"
2367 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
2368 | dependencies:
2369 | define-property "^1.0.0"
2370 | isobject "^3.0.0"
2371 | snapdragon-util "^3.0.1"
2372 |
2373 | snapdragon-util@^3.0.1:
2374 | version "3.0.1"
2375 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
2376 | dependencies:
2377 | kind-of "^3.2.0"
2378 |
2379 | snapdragon@^0.8.1:
2380 | version "0.8.1"
2381 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370"
2382 | dependencies:
2383 | base "^0.11.1"
2384 | debug "^2.2.0"
2385 | define-property "^0.2.5"
2386 | extend-shallow "^2.0.1"
2387 | map-cache "^0.2.2"
2388 | source-map "^0.5.6"
2389 | source-map-resolve "^0.5.0"
2390 | use "^2.0.0"
2391 |
2392 | sntp@1.x.x:
2393 | version "1.0.9"
2394 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2395 | dependencies:
2396 | hoek "2.x.x"
2397 |
2398 | source-list-map@^2.0.0:
2399 | version "2.0.0"
2400 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
2401 |
2402 | source-map-loader@^0.2.3:
2403 | version "0.2.3"
2404 | resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521"
2405 | dependencies:
2406 | async "^2.5.0"
2407 | loader-utils "~0.2.2"
2408 | source-map "~0.6.1"
2409 |
2410 | source-map-resolve@^0.5.0:
2411 | version "0.5.1"
2412 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
2413 | dependencies:
2414 | atob "^2.0.0"
2415 | decode-uri-component "^0.2.0"
2416 | resolve-url "^0.2.1"
2417 | source-map-url "^0.4.0"
2418 | urix "^0.1.0"
2419 |
2420 | source-map-support@^0.4.15:
2421 | version "0.4.18"
2422 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
2423 | dependencies:
2424 | source-map "^0.5.6"
2425 |
2426 | source-map-url@^0.4.0:
2427 | version "0.4.0"
2428 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
2429 |
2430 | source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
2431 | version "0.5.7"
2432 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
2433 |
2434 | source-map@^0.6.1, source-map@~0.6.1:
2435 | version "0.6.1"
2436 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
2437 |
2438 | spdx-correct@~1.0.0:
2439 | version "1.0.2"
2440 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2441 | dependencies:
2442 | spdx-license-ids "^1.0.2"
2443 |
2444 | spdx-expression-parse@~1.0.0:
2445 | version "1.0.4"
2446 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2447 |
2448 | spdx-license-ids@^1.0.2:
2449 | version "1.2.2"
2450 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2451 |
2452 | split-string@^3.0.1, split-string@^3.0.2:
2453 | version "3.1.0"
2454 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
2455 | dependencies:
2456 | extend-shallow "^3.0.0"
2457 |
2458 | sprintf-js@~1.0.2:
2459 | version "1.0.3"
2460 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2461 |
2462 | sshpk@^1.7.0:
2463 | version "1.13.1"
2464 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
2465 | dependencies:
2466 | asn1 "~0.2.3"
2467 | assert-plus "^1.0.0"
2468 | dashdash "^1.12.0"
2469 | getpass "^0.1.1"
2470 | optionalDependencies:
2471 | bcrypt-pbkdf "^1.0.0"
2472 | ecc-jsbn "~0.1.1"
2473 | jsbn "~0.1.0"
2474 | tweetnacl "~0.14.0"
2475 |
2476 | ssri@^5.2.4:
2477 | version "5.2.4"
2478 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.2.4.tgz#9985e14041e65fc397af96542be35724ac11da52"
2479 | dependencies:
2480 | safe-buffer "^5.1.1"
2481 |
2482 | static-extend@^0.1.1:
2483 | version "0.1.2"
2484 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
2485 | dependencies:
2486 | define-property "^0.2.5"
2487 | object-copy "^0.1.0"
2488 |
2489 | stream-browserify@^2.0.1:
2490 | version "2.0.1"
2491 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
2492 | dependencies:
2493 | inherits "~2.0.1"
2494 | readable-stream "^2.0.2"
2495 |
2496 | stream-each@^1.1.0:
2497 | version "1.2.2"
2498 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd"
2499 | dependencies:
2500 | end-of-stream "^1.1.0"
2501 | stream-shift "^1.0.0"
2502 |
2503 | stream-http@^2.7.2:
2504 | version "2.8.0"
2505 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10"
2506 | dependencies:
2507 | builtin-status-codes "^3.0.0"
2508 | inherits "^2.0.1"
2509 | readable-stream "^2.3.3"
2510 | to-arraybuffer "^1.0.0"
2511 | xtend "^4.0.0"
2512 |
2513 | stream-shift@^1.0.0:
2514 | version "1.0.0"
2515 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
2516 |
2517 | string-width@^1.0.1, string-width@^1.0.2:
2518 | version "1.0.2"
2519 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2520 | dependencies:
2521 | code-point-at "^1.0.0"
2522 | is-fullwidth-code-point "^1.0.0"
2523 | strip-ansi "^3.0.0"
2524 |
2525 | string-width@^2.0.0:
2526 | version "2.1.1"
2527 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
2528 | dependencies:
2529 | is-fullwidth-code-point "^2.0.0"
2530 | strip-ansi "^4.0.0"
2531 |
2532 | string_decoder@^1.0.0, string_decoder@~1.0.3:
2533 | version "1.0.3"
2534 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
2535 | dependencies:
2536 | safe-buffer "~5.1.0"
2537 |
2538 | stringstream@~0.0.4:
2539 | version "0.0.5"
2540 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2541 |
2542 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2543 | version "3.0.1"
2544 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2545 | dependencies:
2546 | ansi-regex "^2.0.0"
2547 |
2548 | strip-ansi@^4.0.0:
2549 | version "4.0.0"
2550 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
2551 | dependencies:
2552 | ansi-regex "^3.0.0"
2553 |
2554 | strip-bom@^3.0.0:
2555 | version "3.0.0"
2556 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
2557 |
2558 | strip-eof@^1.0.0:
2559 | version "1.0.0"
2560 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
2561 |
2562 | strip-json-comments@~2.0.1:
2563 | version "2.0.1"
2564 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2565 |
2566 | supports-color@^2.0.0:
2567 | version "2.0.0"
2568 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2569 |
2570 | supports-color@^4.2.1:
2571 | version "4.5.0"
2572 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
2573 | dependencies:
2574 | has-flag "^2.0.0"
2575 |
2576 | supports-color@^5.2.0:
2577 | version "5.2.0"
2578 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"
2579 | dependencies:
2580 | has-flag "^3.0.0"
2581 |
2582 | tapable@^0.2.5, tapable@^0.2.7:
2583 | version "0.2.8"
2584 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
2585 |
2586 | tar-pack@^3.4.0:
2587 | version "3.4.1"
2588 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
2589 | dependencies:
2590 | debug "^2.2.0"
2591 | fstream "^1.0.10"
2592 | fstream-ignore "^1.0.5"
2593 | once "^1.3.3"
2594 | readable-stream "^2.1.4"
2595 | rimraf "^2.5.1"
2596 | tar "^2.2.1"
2597 | uid-number "^0.0.6"
2598 |
2599 | tar@^2.2.1:
2600 | version "2.2.1"
2601 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
2602 | dependencies:
2603 | block-stream "*"
2604 | fstream "^1.0.2"
2605 | inherits "2"
2606 |
2607 | through2@^2.0.0:
2608 | version "2.0.3"
2609 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
2610 | dependencies:
2611 | readable-stream "^2.1.5"
2612 | xtend "~4.0.1"
2613 |
2614 | timers-browserify@^2.0.4:
2615 | version "2.0.6"
2616 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae"
2617 | dependencies:
2618 | setimmediate "^1.0.4"
2619 |
2620 | to-arraybuffer@^1.0.0:
2621 | version "1.0.1"
2622 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
2623 |
2624 | to-object-path@^0.3.0:
2625 | version "0.3.0"
2626 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
2627 | dependencies:
2628 | kind-of "^3.0.2"
2629 |
2630 | to-regex-range@^2.1.0:
2631 | version "2.1.1"
2632 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
2633 | dependencies:
2634 | is-number "^3.0.0"
2635 | repeat-string "^1.6.1"
2636 |
2637 | to-regex@^3.0.1:
2638 | version "3.0.1"
2639 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae"
2640 | dependencies:
2641 | define-property "^0.2.5"
2642 | extend-shallow "^2.0.1"
2643 | regex-not "^1.0.0"
2644 |
2645 | tough-cookie@~2.3.0:
2646 | version "2.3.3"
2647 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
2648 | dependencies:
2649 | punycode "^1.4.1"
2650 |
2651 | tslib@^1.8.0, tslib@^1.8.1:
2652 | version "1.9.0"
2653 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
2654 |
2655 | tslint@^5.9.1:
2656 | version "5.9.1"
2657 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
2658 | dependencies:
2659 | babel-code-frame "^6.22.0"
2660 | builtin-modules "^1.1.1"
2661 | chalk "^2.3.0"
2662 | commander "^2.12.1"
2663 | diff "^3.2.0"
2664 | glob "^7.1.1"
2665 | js-yaml "^3.7.0"
2666 | minimatch "^3.0.4"
2667 | resolve "^1.3.2"
2668 | semver "^5.3.0"
2669 | tslib "^1.8.0"
2670 | tsutils "^2.12.1"
2671 |
2672 | tsutils@^2.12.1:
2673 | version "2.21.1"
2674 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.1.tgz#5b23c263233300ed7442b4217855cbc7547c296a"
2675 | dependencies:
2676 | tslib "^1.8.1"
2677 |
2678 | tty-browserify@0.0.0:
2679 | version "0.0.0"
2680 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
2681 |
2682 | tunnel-agent@^0.6.0:
2683 | version "0.6.0"
2684 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
2685 | dependencies:
2686 | safe-buffer "^5.0.1"
2687 |
2688 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2689 | version "0.14.5"
2690 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2691 |
2692 | typedarray@^0.0.6:
2693 | version "0.0.6"
2694 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
2695 |
2696 | typescript@^2.7.2:
2697 | version "2.7.2"
2698 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
2699 |
2700 | uglify-es@^3.3.4:
2701 | version "3.3.9"
2702 | resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
2703 | dependencies:
2704 | commander "~2.13.0"
2705 | source-map "~0.6.1"
2706 |
2707 | uglify-js@^2.8.29:
2708 | version "2.8.29"
2709 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
2710 | dependencies:
2711 | source-map "~0.5.1"
2712 | yargs "~3.10.0"
2713 | optionalDependencies:
2714 | uglify-to-browserify "~1.0.0"
2715 |
2716 | uglify-to-browserify@~1.0.0:
2717 | version "1.0.2"
2718 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
2719 |
2720 | uglifyjs-webpack-plugin@^0.4.6:
2721 | version "0.4.6"
2722 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
2723 | dependencies:
2724 | source-map "^0.5.6"
2725 | uglify-js "^2.8.29"
2726 | webpack-sources "^1.0.1"
2727 |
2728 | uglifyjs-webpack-plugin@^1.2.2:
2729 | version "1.2.2"
2730 | resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.2.tgz#e7516d4367afdb715c3847841eb46f94c45ca2b9"
2731 | dependencies:
2732 | cacache "^10.0.1"
2733 | find-cache-dir "^1.0.0"
2734 | schema-utils "^0.4.2"
2735 | serialize-javascript "^1.4.0"
2736 | source-map "^0.6.1"
2737 | uglify-es "^3.3.4"
2738 | webpack-sources "^1.1.0"
2739 | worker-farm "^1.5.2"
2740 |
2741 | uid-number@^0.0.6:
2742 | version "0.0.6"
2743 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
2744 |
2745 | union-value@^1.0.0:
2746 | version "1.0.0"
2747 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
2748 | dependencies:
2749 | arr-union "^3.1.0"
2750 | get-value "^2.0.6"
2751 | is-extendable "^0.1.1"
2752 | set-value "^0.4.3"
2753 |
2754 | unique-filename@^1.1.0:
2755 | version "1.1.0"
2756 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
2757 | dependencies:
2758 | unique-slug "^2.0.0"
2759 |
2760 | unique-slug@^2.0.0:
2761 | version "2.0.0"
2762 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
2763 | dependencies:
2764 | imurmurhash "^0.1.4"
2765 |
2766 | unset-value@^1.0.0:
2767 | version "1.0.0"
2768 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
2769 | dependencies:
2770 | has-value "^0.3.1"
2771 | isobject "^3.0.0"
2772 |
2773 | urix@^0.1.0:
2774 | version "0.1.0"
2775 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
2776 |
2777 | url@^0.11.0:
2778 | version "0.11.0"
2779 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
2780 | dependencies:
2781 | punycode "1.3.2"
2782 | querystring "0.2.0"
2783 |
2784 | use@^2.0.0:
2785 | version "2.0.2"
2786 | resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8"
2787 | dependencies:
2788 | define-property "^0.2.5"
2789 | isobject "^3.0.0"
2790 | lazy-cache "^2.0.2"
2791 |
2792 | util-deprecate@~1.0.1:
2793 | version "1.0.2"
2794 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2795 |
2796 | util@0.10.3, util@^0.10.3:
2797 | version "0.10.3"
2798 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
2799 | dependencies:
2800 | inherits "2.0.1"
2801 |
2802 | uuid@^3.0.0:
2803 | version "3.2.1"
2804 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
2805 |
2806 | validate-npm-package-license@^3.0.1:
2807 | version "3.0.1"
2808 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
2809 | dependencies:
2810 | spdx-correct "~1.0.0"
2811 | spdx-expression-parse "~1.0.0"
2812 |
2813 | verror@1.10.0:
2814 | version "1.10.0"
2815 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
2816 | dependencies:
2817 | assert-plus "^1.0.0"
2818 | core-util-is "1.0.2"
2819 | extsprintf "^1.2.0"
2820 |
2821 | vm-browserify@0.0.4:
2822 | version "0.0.4"
2823 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
2824 | dependencies:
2825 | indexof "0.0.1"
2826 |
2827 | watchpack@^1.4.0:
2828 | version "1.4.0"
2829 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"
2830 | dependencies:
2831 | async "^2.1.2"
2832 | chokidar "^1.7.0"
2833 | graceful-fs "^4.1.2"
2834 |
2835 | webpack-sources@^1.0.1, webpack-sources@^1.1.0:
2836 | version "1.1.0"
2837 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
2838 | dependencies:
2839 | source-list-map "^2.0.0"
2840 | source-map "~0.6.1"
2841 |
2842 | webpack@^3.11.0:
2843 | version "3.11.0"
2844 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894"
2845 | dependencies:
2846 | acorn "^5.0.0"
2847 | acorn-dynamic-import "^2.0.0"
2848 | ajv "^6.1.0"
2849 | ajv-keywords "^3.1.0"
2850 | async "^2.1.2"
2851 | enhanced-resolve "^3.4.0"
2852 | escope "^3.6.0"
2853 | interpret "^1.0.0"
2854 | json-loader "^0.5.4"
2855 | json5 "^0.5.1"
2856 | loader-runner "^2.3.0"
2857 | loader-utils "^1.1.0"
2858 | memory-fs "~0.4.1"
2859 | mkdirp "~0.5.0"
2860 | node-libs-browser "^2.0.0"
2861 | source-map "^0.5.3"
2862 | supports-color "^4.2.1"
2863 | tapable "^0.2.7"
2864 | uglifyjs-webpack-plugin "^0.4.6"
2865 | watchpack "^1.4.0"
2866 | webpack-sources "^1.0.1"
2867 | yargs "^8.0.2"
2868 |
2869 | which-module@^2.0.0:
2870 | version "2.0.0"
2871 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
2872 |
2873 | which@^1.2.9:
2874 | version "1.3.0"
2875 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
2876 | dependencies:
2877 | isexe "^2.0.0"
2878 |
2879 | wide-align@^1.1.0:
2880 | version "1.1.2"
2881 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
2882 | dependencies:
2883 | string-width "^1.0.2"
2884 |
2885 | window-size@0.1.0:
2886 | version "0.1.0"
2887 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
2888 |
2889 | wordwrap@0.0.2:
2890 | version "0.0.2"
2891 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
2892 |
2893 | worker-farm@^1.5.2:
2894 | version "1.5.2"
2895 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae"
2896 | dependencies:
2897 | errno "^0.1.4"
2898 | xtend "^4.0.1"
2899 |
2900 | wrap-ansi@^2.0.0:
2901 | version "2.1.0"
2902 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
2903 | dependencies:
2904 | string-width "^1.0.1"
2905 | strip-ansi "^3.0.1"
2906 |
2907 | wrappy@1:
2908 | version "1.0.2"
2909 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2910 |
2911 | xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
2912 | version "4.0.1"
2913 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
2914 |
2915 | y18n@^3.2.1:
2916 | version "3.2.1"
2917 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
2918 |
2919 | y18n@^4.0.0:
2920 | version "4.0.0"
2921 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
2922 |
2923 | yallist@^2.1.2:
2924 | version "2.1.2"
2925 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
2926 |
2927 | yargs-parser@^7.0.0:
2928 | version "7.0.0"
2929 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
2930 | dependencies:
2931 | camelcase "^4.1.0"
2932 |
2933 | yargs@^8.0.2:
2934 | version "8.0.2"
2935 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
2936 | dependencies:
2937 | camelcase "^4.1.0"
2938 | cliui "^3.2.0"
2939 | decamelize "^1.1.1"
2940 | get-caller-file "^1.0.1"
2941 | os-locale "^2.0.0"
2942 | read-pkg-up "^2.0.0"
2943 | require-directory "^2.1.1"
2944 | require-main-filename "^1.0.1"
2945 | set-blocking "^2.0.0"
2946 | string-width "^2.0.0"
2947 | which-module "^2.0.0"
2948 | y18n "^3.2.1"
2949 | yargs-parser "^7.0.0"
2950 |
2951 | yargs@~3.10.0:
2952 | version "3.10.0"
2953 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
2954 | dependencies:
2955 | camelcase "^1.0.2"
2956 | cliui "^2.1.0"
2957 | decamelize "^1.0.0"
2958 | window-size "0.1.0"
2959 |
--------------------------------------------------------------------------------