From 32ae69a2a51e1beba9618fc4821ae91b1315849a Mon Sep 17 00:00:00 2001 From: mike alfonse Date: Thu, 30 Nov 2017 14:25:09 -0500 Subject: [PATCH 1/2] Update react 16 and test references Updated the package references to use react 16. Updated the test harness to work with react 16. --- .gitignore | 3 + dist/dist-min.tar.gz | Bin 30820 -> 30800 bytes dist/dist-min.zip | Bin 31413 -> 31405 bytes dist/dist-min/react-console.min.js | 2 +- dist/dist-min/react-console.min.js.map | 2 +- dist/dist.tar.gz | Bin 26294 -> 26308 bytes dist/dist.zip | Bin 26690 -> 26707 bytes dist/dist/react-console.js | 6 +- dist/dist/react-console.js.map | 2 +- karma.conf.js | 3 +- lib/react-console.js | 6 +- lib/react-console.js.map | 2 +- package-lock.json | 6771 ++++++++++++------------ package.json | 13 +- src/react-console.tsx | 6 +- test/test.tsx | 9 +- 16 files changed, 3512 insertions(+), 3313 deletions(-) diff --git a/.gitignore b/.gitignore index bbc8efc..806c55d 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,6 @@ typings # github token .token.json + +# ignore intellij project directory +.idea \ No newline at end of file diff --git a/dist/dist-min.tar.gz b/dist/dist-min.tar.gz index 8e467df8d784e033901ee7be723c58f283332bb3..8f652878e09b44e0e0cfb4c46bfc01e5b9ab4336 100644 GIT binary patch delta 29277 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 Q@IRu!-|3&po&eqf0Lw~c6aWAK delta 29248 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

WN@l*e?z37g5_Nt;`;ii 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 diff --git a/dist/dist-min.zip b/dist/dist-min.zip index 4947c07c463fdf53417c2ea2b0e9122b877de281..5bb4c2f52ac11945acd68dd50e07c23d1a09a2b3 100644 GIT binary patch delta 28937 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

%~%Vl@HGi_qm?Z{g2^fGHJ|! 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 KLa^6=R{j@uZU%k; delta 28853 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 diff --git a/dist/dist-min/react-console.min.js b/dist/dist-min/react-console.min.js index a13634a..aca6043 100644 --- a/dist/dist-min/react-console.min.js +++ b/dist/dist-min/react-console.min.js @@ -1,2 +1,2 @@ -var Console=function(t){function e(r){if(o[r])return o[r].exports;var s=o[r]={exports:{},id:r,loaded:!1};return t[r].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var r=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},s=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return r(e,t),e.prototype.componentDidMount=function(){this.idle()},e.prototype.componentDidUpdate=function(){this.idle()},e.prototype.idle=function(){var t=this;this.child.cursor&&(0==this.updateSemaphore&&(this.child.cursor.className="react-console-cursor"),this.updateSemaphore++,window.setTimeout(function(){t.updateSemaphore--,0==t.updateSemaphore&&t.child.cursor&&(t.child.cursor.className="react-console-cursor react-console-cursor-idle")},1e3))},e.prototype.renderValue=function(){var t=this;return this.props.point<0?[this.props.value]:this.props.point==this.props.value.length?[this.props.value,s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"},this.props.value.substring(this.props.point,this.props.point+1)),this.props.value.substring(this.props.point+1)]},e.prototype.render=function(){var t=this.props.label;if(this.props.argument){var e=t.lastIndexOf("\n");t=e>=0?t.substring(0,e+1):""}return s.createElement("div",{className:"react-console-prompt-box"},s.createElement("span",{className:"react-console-prompt-label"},t),s.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),s.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(s.Component),a=function(t){return t.headers?s.createElement("thead",null,s.createElement("tr",null,t.headers.map(function(t){return s.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return s.createElement("div",{className:"react-console-message react-console-table"+(t.type?" react-console-message-"+t.type:"")},s.createElement("table",null,s.createElement(a,{headers:e.headers}),s.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return s.createElement("tr",{key:e},t.map(function(t,e){return"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.setBusy=function(){o.setState({acceptInput:!1})},this.getSafeLog=function(){return o.state.log.length||o.state.log.push({label:"",command:"",message:[]}),o.state.log},this.updateLastLog=function(){for(var t=[],e=0;e0?r[o.state.log.length-1].message.length-1:0;r[o.state.log.length-1].message[s]={value:t},o.setState({log:r},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,r=t[0].length;r1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[s.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,r){return void 0===o&&(o=0),void 0===r&&(r=e.length),e.substring(0,r-o)+t+e.substring(r)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var r=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:r,restoreText:r,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var r=o.state.point+t;return r<0?0:r>e?e:r},this.rotateRing=function(t,e,o,r){return void 0===r&&(r=!0),0==o?0:r?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var r=o.state.history[o.state.history.length-e];o.setState({point:r.length,promptText:r,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var r=o.state.historyn,s=0==t?1:-1;for(e&&(r+=s);r>0&&r<=o.state.history.length;r+=s){var n=o.state.history[o.state.history.length-r],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:r}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return r(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return s.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?s.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[s.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return s.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?s.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,s.createElement("div",{style:{overflow:"hidden",height:1,width:1}},s.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),s.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(s.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); +var Console=function(t){function e(r){if(o[r])return o[r].exports;var s=o[r]={exports:{},id:r,loaded:!1};return t[r].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var r=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},s=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return r(e,t),e.prototype.componentDidMount=function(){this.idle()},e.prototype.idle=function(){var t=this;this.child.cursor&&(0==this.updateSemaphore&&(this.child.cursor.className="react-console-cursor"),this.updateSemaphore++,window.setTimeout(function(){t.updateSemaphore--,0==t.updateSemaphore&&t.child.cursor&&(t.child.cursor.className="react-console-cursor react-console-cursor-idle")},1e3))},e.prototype.renderValue=function(){var t=this;return this.props.point<0?[this.props.value]:this.props.point==this.props.value.length?[this.props.value,s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"},this.props.value.substring(this.props.point,this.props.point+1)),this.props.value.substring(this.props.point+1)]},e.prototype.render=function(){var t=this.props.label;if(this.props.argument){var e=t.lastIndexOf("\n");t=e>=0?t.substring(0,e+1):""}return s.createElement("div",{className:"react-console-prompt-box"},s.createElement("span",{className:"react-console-prompt-label"},t),s.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),s.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(s.Component),a=function(t){return t.headers?s.createElement("thead",null,s.createElement("tr",null,t.headers.map(function(t){return s.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return s.createElement("div",{className:"react-console-message react-console-table"+(t.type?" react-console-message-"+t.type:"")},s.createElement("table",null,s.createElement(a,{headers:e.headers}),s.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return s.createElement("tr",{key:e},t.map(function(t,e){return"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.setBusy=function(){o.setState({acceptInput:!1})},this.getSafeLog=function(){return o.state.log.length||o.state.log.push({label:"",command:"",message:[]}),o.state.log},this.updateLastLog=function(){for(var t=[],e=0;e0?r[o.state.log.length-1].message.length-1:0;r[o.state.log.length-1].message[s]={value:t},o.setState({log:r},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,r=t[0].length;r1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[s.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,r){return void 0===o&&(o=0),void 0===r&&(r=e.length),e.substring(0,r-o)+t+e.substring(r)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var r=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:r,restoreText:r,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var r=o.state.point+t;return r<0?0:r>e?e:r},this.rotateRing=function(t,e,o,r){return void 0===r&&(r=!0),0==o?0:r?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var r=o.state.history[o.state.history.length-e];o.setState({point:r.length,promptText:r,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var r=o.state.historyn,s=0==t?1:-1;for(e&&(r+=s);r>0&&r<=o.state.history.length;r+=s){var n=o.state.history[o.state.history.length-r],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:r}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return r(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return s.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?s.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[s.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return s.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?s.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,s.createElement("div",{style:{overflow:"hidden",height:1,width:1}},s.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),s.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(s.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); //# sourceMappingURL=react-console.min.js.map \ No newline at end of file diff --git a/dist/dist-min/react-console.min.js.map b/dist/dist-min/react-console.min.js.map index 28fb063..b14825a 100644 --- a/dist/dist-min/react-console.min.js.map +++ b/dist/dist-min/react-console.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap e0dddae9fc43b54d723f","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","componentDidUpdate","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","type","rows","row","index","cell","cellIndex","href","target","text","JSON","stringify","val","i","default_1","setBusy","setState","acceptInput","getSafeLog","state","log","push","command","message","updateLastLog","messages","_i","indexToReplace","scrollIfBottom","logX","logTable","tableData","return","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","join","cancel","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"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","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.componentDidUpdate = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.setBusy = function () {\n\t _this.setState({ acceptInput: false });\n\t };\n\t this.getSafeLog = function () {\n\t if (!_this.state.log.length) {\n\t _this.state.log.push({ label: '', command: '', message: [] });\n\t }\n\t return _this.state.log;\n\t };\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData, type) {\n\t var log = _this.getSafeLog();\n\t if (type) {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] });\n\t }\n\t else {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t }\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode !== 86) {\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e0dddae9fc43b54d723f","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn

\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap 4ae538134ccc1572bbcb","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","type","rows","row","index","cell","cellIndex","href","target","text","JSON","stringify","val","i","default_1","setBusy","setState","acceptInput","getSafeLog","state","log","push","command","message","updateLastLog","messages","_i","indexToReplace","scrollIfBottom","logX","logTable","tableData","return","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","join","cancel","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"AAAA,GAAIA,SACK,SAAUC,GCGnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,QAAA,EAGAF,EAAAD,QAvBA,GAAAD,KAqCA,OATAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,GAGAV,EAAA,KDOM,SAAUI,EAAQD,EAASH,GE7CjC,YFgDC,IAAIW,GAAaC,MAAQA,KAAKD,WAAc,SAAUE,EAAGC,GAErD,QAASC,KAAOH,KAAKI,YAAcH,EADnC,IAAK,GAAIH,KAAKI,GAAOA,EAAEG,eAAeP,KAAIG,EAAEH,GAAKI,EAAEJ,GAEnDG,GAAEK,UAAkB,OAANJ,EAAaK,OAAOC,OAAON,IAAMC,EAAGG,UAAYJ,EAAEI,UAAW,GAAIH,KEjDxEM,EAAKrB,EAAM,EAEvBA,GAAO,EAQP,IAAAsB,GAAA,SAAAC,GAAA,QAAAD,KAA4BC,EAAAC,MAAAZ,KAAAa,WAO3Bb,KAAAc,SAWAd,KAAAe,gBAA0B,EA2C3B,MA7D4BhB,GAAAW,EAAAC,GAW3BD,EAAAJ,UAAAU,kBAAA,WACChB,KAAKiB,QAONP,EAAAJ,UAAAW,KAAA,cAAAC,GAAAlB,IAEIA,MAAKc,MAAMK,SACc,GAAxBnB,KAAKe,kBACPf,KAAKc,MAAMK,OAAOC,UAAY,wBAE/BpB,KAAKe,kBACLM,OAAOC,WAAY,WAClBJ,EAAKH,kBACsB,GAAxBG,EAAKH,iBAAwBG,EAAKJ,MAAMK,SAC1CD,EAAKJ,MAAMK,OAAOC,UAAY,mDAE7B,OAGLV,EAAAJ,UAAAiB,YAAA,cAAAL,GAAAlB,IACC,OAAGA,MAAKwB,MAAMC,MAAQ,GACbzB,KAAKwB,MAAME,OACT1B,KAAKwB,MAAMC,OAASzB,KAAKwB,MAAME,MAAMC,QACvC3B,KAAKwB,MAAME,MAAMjB,EAAAmB,cAAA,QAAMC,IAAK,SAAAA,GAAO,MAAAX,GAAKJ,MAAMK,OAASU,GAAKC,IAAI,SAASV,UAAU,wBAAsB,OAEzGpB,KAAKwB,MAAME,MAAMK,UAAU,EAAE/B,KAAKwB,MAAMC,OAC/ChB,EAAAmB,cAAA,QAAMC,IAAK,SAAAA,GAAO,MAAAX,GAAKJ,MAAMK,OAASU,GAAKC,IAAI,SAASV,UAAU,wBAAwBpB,KAAKwB,MAAME,MAAMK,UAAU/B,KAAKwB,MAAMC,MAAMzB,KAAKwB,MAAMC,MAAM,IACvJzB,KAAKwB,MAAME,MAAMK,UAAU/B,KAAKwB,MAAMC,MAAM,KAG/Cf,EAAAJ,UAAA0B,OAAA,WACC,GAAIC,GAAQjC,KAAKwB,MAAMS,KACvB,IAAGjC,KAAKwB,MAAMU,SAAU,CACvB,GAAIC,GAAMF,EAAMG,YAAY,KAE3BH,GADEE,GAAO,EACDF,EAAMF,UAAU,EAAGI,EAAI,GAEvB,GAGV,MAAO1B,GAAAmB,cAAA,OAAKR,UAAU,4BACrBX,EAAAmB,cAAA,QAAMR,UAAU,8BAA+Ba,GAC/CxB,EAAAmB,cAAA,QAAMR,UAAU,iCAAkCpB,KAAKwB,MAAMU,UAC7DzB,EAAAmB,cAAA,QAAMR,UAAU,wBAAyBpB,KAAKuB,iBAzDzCb,EAAA2B,cACNZ,OAAO,EACPC,MAAO,GACPO,MAAO,KACPC,SAAU,MAwDZxB,GA7D4BD,EAAM6B,WAkE9BC,EAAyD,SAASf,GACrE,MAAGA,GAAMgB,QACD/B,EAAAmB,cAAA,QAAM,KACVnB,EAAAmB,cAAA,KAAG,KACDJ,EAAMgB,QAAQC,IAAI,SAACC,GACnB,MAAOjC,GAAAmB,cAAA,MAAIe,MAAM,MAAMb,IAAMY,GAAWA,OAKvC,MAQJE,EAAiD,SAASpB,GAC7D,GAAGA,EAAMqB,QAAQ,CAChB,GAAMC,GAAOtB,EAAME,MAAM,EACzB,OAAOjB,GAAAmB,cAAA,OAAKR,UAAW,6CAA+CI,EAAMuB,KAAK,0BAA0BvB,EAAMuB,KAAK,KACrHtC,EAAAmB,cAAA,QAAM,KACLnB,EAAAmB,cAACW,GAAmBC,QAASM,EAAKN,UAClC/B,EAAAmB,cAAA,QAAM,KACJkB,EAAKE,MAAQF,EAAKE,KAAKP,IAAI,SAACQ,EAAYC,GACxC,MAAOzC,GAAAmB,cAAA,MAAIE,IAAKoB,GAAQD,EAAIR,IAAI,SAACU,EAAWC,GAC3C,MAAmB,gBAATD,GACF1C,EAAAmB,cAAA,MAAIE,IAAKsB,GAAYD,GACJ,gBAATA,IAAmC,SAAdA,EAAKJ,KAClCtC,EAAAmB,cAAA,MAAIE,IAAKsB,GAAW3C,EAAAmB,cAAA,KAAGyB,KAAMF,EAAKE,KAAMC,OAAQH,EAAKG,OAASH,EAAKG,OAAS,IAAKH,EAAKI,OAEtF9C,EAAAmB,cAAA,MAAIE,IAAKsB,GAAYI,KAAKC,UAAUN,YAWjD,MAAO1C,GAAAmB,cAAA,OAAKR,UAAW,yBAA2BI,EAAMuB,KAAK,0BAA0BvB,EAAMuB,KAAK,KAChGvB,EAAME,MAAMe,IAAI,SAACiB,EAAUC,GAC3B,MAAiB,gBAAPD,GACFjD,EAAAmB,cAAA,OAAKE,IAAK6B,GAAID,GACG,gBAARA,IAAiC,SAAbA,EAAIX,KACjCtC,EAAAmB,cAAA,OAAKE,IAAK6B,GAAGlD,EAAAmB,cAAA,KAAGyB,KAAMK,EAAIL,KAAMC,OAAQI,EAAIJ,OAASI,EAAIJ,OAAS,IAAKI,EAAIH,OAE3E9C,EAAAmB,cAAA,OAAKE,IAAK6B,GAAIH,KAAKC,UAAUC,OAMzCd,GAAeP,cACdU,KAAM,KACNrB,SACAmB,SAAS,EAyDV,IAAAe,GAAA,SAAAjD,GACC,QAAAiD,GAAYpC,GADb,GAAAN,GAAAlB,IAEEW,GAAAhB,KAAAK,KAAMwB,GA0BPxB,KAAAc,SAMAd,KAAA6D,QAAU,WACT3C,EAAK4C,UAAUC,aAAa,KAE7B/D,KAAAgE,WAAa,WAIZ,MAHI9C,GAAK+C,MAAMC,IAAIvC,QAClBT,EAAK+C,MAAMC,IAAIC,MAAMlC,MAAO,GAAImC,QAAS,GAAIC,aAEvCnD,EAAK+C,MAAMC,KAEnBlE,KAAAsE,cAAgB,WFpDJ,IEoDK,GAAAC,MAAAC,EAAA,EAAAA,EAAA3D,UAAAc,OAAA6C,IAAAD,EAAAC,EAAA,GAAA3D,UAAA2D,EAChB,IAAIN,GAAMhD,EAAK8C,aACXS,EAAiBP,EAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQ1C,OAAS,EAAIuC,EAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQ1C,OAAS,EAAI,CACzHuC,GAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQI,IAAmB/C,MAAO6C,GAC/DrD,EAAK4C,UACJI,IAAKA,GACHhD,EAAKwD,mBAET1E,KAAAkE,IAAM,WFhDM,IEgDL,GAAAK,MAAAC,EAAA,EAAAA,EAAA3D,UAAAc,OAAA6C,IAAAD,EAAAC,EAAA,GAAA3D,UAAA2D,EACN,IAAIN,GAAMhD,EAAK8C,YACfE,GAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQF,MAAMzC,MAAO6C,IAClDrD,EAAK4C,UACJI,IAAKA,GACHhD,EAAKwD,mBAET1E,KAAA2E,KAAO,SAAC5B,GF5CI,IE4CU,GAAAwB,MAAAC,EAAA,EAAAA,EAAA3D,UAAAc,OAAA6C,IAAAD,EAAAC,EAAA,GAAA3D,UAAA2D,EACrB,IAAIN,GAAMhD,EAAK8C,YACXE,GAAIvC,QACPuC,EAAIC,MAAMlC,MAAO,GAAImC,QAAS,GAAIC,aAEnCH,EAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQF,MAAMpB,KAAMA,EAAMrB,MAAO6C,IAC9DrD,EAAK4C,UACJI,IAAKA,GACHhD,EAAKwD,mBAET1E,KAAA4E,SAAW,SAACC,EAA+B9B,GAC1C,GAAImB,GAAMhD,EAAK8C,YACZjB,GACFmB,EAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQF,MAAMtB,SAAS,EAAME,KAAMA,EAAMrB,OAAQmD,KAE9EX,EAAIhD,EAAK+C,MAAMC,IAAIvC,OAAO,GAAG0C,QAAQF,MAAMtB,SAAS,EAAMnB,OAAQmD,KAEnE3D,EAAK4C,UACJI,IAAKA,GACHhD,EAAKwD,mBAET1E,KAAA8E,OAAS,WACR5D,EAAK4C,UACJC,aAAa,EACbgB,UAAW7D,EAAK8D,aACd9D,EAAKwD,mBAST1E,KAAAiF,MAAQ,WACH5D,OAAO6D,eAAeC,aACzBjE,EAAKJ,MAAMsE,MAAMH,QACjB/D,EAAK4C,UAAWmB,OAAO,GAAQ/D,EAAKmE,kBAGtCrF,KAAAsF,KAAO,WACNpE,EAAK4C,UAAWmB,OAAO,KAExBjF,KAAAuF,QAAU,SAACC,GAIV,GAAIC,IAEHC,GAAIxE,EAAKyE,WAETC,GAAI1E,EAAK2E,aAETC,GAAI5E,EAAK6E,YAETC,GAAI9E,EAAK+E,gBAETC,GAAIhF,EAAKiF,YAETC,EAAIlF,EAAKmF,mBAETC,GAAIpF,EAAKqF,WAETC,GAAItF,EAAKuF,UAETC,GAAIxF,EAAKyF,gBAETC,EAAG1F,EAAK2F,SAERC,GAAI5F,EAAK6F,YAENC,GAEHC,GAAI/F,EAAKyF,gBAETO,GAAIhG,EAAKuF,UAETU,GAAIjG,EAAK6E,YAETqB,GAAIlG,EAAK2E,aAETwB,GAAInG,EAAKoG,YAETC,GAAIrG,EAAK+E,gBAETuB,GAAItG,EAAKiF,YAETsB,GAAIvG,EAAKwG,qBAETC,GAAIzG,EAAK0G,qBAETC,GAAI3G,EAAKqF,WAQTuB,GAAI5G,EAAK6G,SAETC,GAAI9G,EAAK+G,iBAETC,GAAIhH,EAAKiH,KAETC,GAAIlH,EAAKmH,eA4BNC,IAlBHlC,EAAGlF,EAAK+G,mBAoBRd,GAAIjG,EAAKqH,YAETnB,GAAIlG,EAAKsH,aAETjB,GAAIrG,EAAKuH,mCAETjB,GAAItG,EAAKwH,mCAETC,IAAKzH,EAAK0H,YAYVf,GAAI3G,EAAK2H,SAETzC,EAAGlF,EAAK4H,iBAMRZ,GAAIhH,EAAK6H,UA8BNC,GAEHC,IAAK/H,EAAKgI,mBAEVP,IAAKzH,EAAKiI,aAEVC,IAAKlI,EAAK0H,aAMPS,GAEHnB,GAAIhH,EAAKoI,WAMPpI,GAAK+C,MAAMF,YACTyB,EAAE+D,QACD/D,EAAEgE,QACDhE,EAAEiE,UAAWJ,KAChBA,EAAc7D,EAAEiE,WAChBjE,EAAEkE,kBAEOlE,EAAEmE,SACRnE,EAAEiE,UAAWT,KAChBA,EAAexD,EAAEiE,WACjBjE,EAAEkE,kBAEOlE,EAAEiE,UAAWnB,KACvBA,EAAU9C,EAAEiE,WACZjE,EAAEkE,kBAEHlE,EAAEkE,kBACQlE,EAAEgE,QACRhE,EAAEiE,UAAWzC,IAChBA,EAAUxB,EAAEiE,WACZjE,EAAEkE,kBACoB,KAAdlE,EAAEiE,SACVjE,EAAEkE,iBAEOlE,EAAEiE,UAAWhE,KACvBA,EAASD,EAAEiE,WACXjE,EAAEkE,kBAEMlE,EAAEgE,SAAyB,KAAdhE,EAAEiE,UAExBzC,EAAUxB,EAAEiE,WACZjE,EAAEkE,mBAGJ1J,KAAA4J,OAAS,WAER,IADA,GAAIzH,GAAM,EACLA,EAAMjB,EAAK+C,MAAMmB,MAAMzD,QAAUQ,EAAMjB,EAAKJ,MAAMsE,MAAM1D,MAAMC,QAC/DT,EAAK+C,MAAMmB,MAAMjD,IAAQjB,EAAKJ,MAAMsE,MAAM1D,MAAMS,GADuBA,KAK3E,GAAI0H,GAAS3I,EAAKJ,MAAMsE,MAAM1D,MAAMK,UAAUI,GAC1C2H,EAAU5I,EAAK+C,MAAMmB,MAAMzD,OAASQ,CACX,IAA1BjB,EAAK+C,MAAM8F,YACb7I,EAAK4C,UACJkG,WAAY9I,EAAK+C,MAAMgG,WAAWJ,EAAO3I,EAAKgJ,WAAWL,EAAQ3I,EAAK+C,MAAM+F,WAAYF,GACxF1E,MAAOlE,EAAKJ,MAAMsE,MAAM1D,OACtBR,EAAKiJ,eAERjJ,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKmJ,cAAcR,EAAQC,IAC1B1E,MAAOlE,EAAKJ,MAAMsE,MAAM1D,MACxBqI,YAAa,IACV7I,EAAKmE,iBAIZrF,KAAAsK,MAAQ,SAAC9E,GACR,GAAIqE,GAASrE,EAAE+E,cAAcC,QAAQ,OACR,IAA1BtJ,EAAK+C,MAAM8F,YACb7I,EAAK4C,UACJkG,WAAY9I,EAAK+C,MAAMgG,WAAWJ,EAAO3I,EAAKgJ,WAAWL,EAAQ3I,EAAK+C,MAAM+F,YAC5E5E,MAAOlE,EAAKJ,MAAMsE,MAAM1D,OACtBR,EAAKiJ,eAERjJ,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKmJ,cAAcR,IAClBE,YAAa,IACV7I,EAAKmE,gBAGXG,EAAEkE,kBAGH1J,KAAA2G,gBAAkB,WACjBzF,EAAK4C,UACJrC,MAAO,EACPS,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAAyG,UAAY,WACXvF,EAAK4C,UACJrC,MAAOP,EAAK+C,MAAMwG,WAAW9I,OAC7BO,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAA+F,YAAc,WACb7E,EAAK4C,UACJrC,MAAOP,EAAKwJ,UAAU,GACtBxI,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAA6F,aAAe,WACd3E,EAAK4C,UACJrC,MAAOP,EAAKwJ,WAAU,GACtBxI,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAAuI,YAAc,WACbrH,EAAK4C,UACJrC,MAAOP,EAAKyJ,WACZzI,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAAwI,aAAe,WACdtH,EAAK4C,UACJrC,MAAOP,EAAK0J,eACZ1I,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAGTrF,KAAA2F,WAAa,WAEZ,GADAzE,EAAKJ,MAAMsE,MAAM1D,MAAQ,GACtBR,EAAKM,MAAMqJ,SAAS3J,EAAK+C,MAAMwG,YACjCvJ,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKmJ,cAAc,OAClBjF,MAAO,GACP2E,YAAa,IACV7I,EAAKmE,oBAEJ,CACN,GAAIyF,GAAU5J,EAAK+C,MAAMwG,WACrBM,EAAU7J,EAAK+C,MAAM+G,QACrB9G,EAAMhD,EAAK+C,MAAMC,GACjB6G,IAAWA,EAAQA,EAAQpJ,OAAO,IAAMmJ,GAC3CC,EAAQ5G,KAAK2G,GAEd5G,EAAIC,MACHlC,MAAOf,EAAK+C,MAAMc,UAClBX,QAAS0G,EACTzG,aAEDnD,EAAK4C,UACJC,aAAa,EACbqB,MAAO,GACP3D,MAAO,EACPgJ,WAAY,GACZQ,YAAa,GACb/G,IAAKA,EACL8G,QAASD,EACTG,SAAU,EACVhJ,SAAU,KACV6H,YAAa,GACX,WACF7I,EAAKmE,iBACFnE,EAAKM,MAAM2J,QACbjK,EAAKM,MAAM2J,QAAQL,GAEnB5J,EAAK4D,aAKT9E,KAAAiG,gBAAkB,WACjB/E,EAAKkK,eAAc,IAEpBpL,KAAAmG,YAAc,WACbjF,EAAKkK,cAAc,IAEpBpL,KAAAkJ,mBAAqB,WACpBhI,EAAKkK,eAAelK,EAAK+C,MAAM+G,QAAQrJ,SAExC3B,KAAAmJ,aAAe,WACdjI,EAAKkK,cAAclK,EAAK+C,MAAM+G,QAAQrJ,SAEvC3B,KAAAmK,cAAgB,WACkB,GAA9BjJ,EAAK+C,MAAMoH,gBACbnK,EAAKwG,uBAELxG,EAAK0G,wBAGP5H,KAAA0H,qBAAuB,WACO,GAA1BxG,EAAK+C,MAAM8F,YACb7I,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKoK,cAAc,GAAyB,IAC3CpJ,SAAU,sBAAuBhB,EAAK+C,MAAM+F,WAAU,MACtDD,YAAa,IACV7I,EAAKmE,gBAGVnE,EAAK4C,UACJuH,gBAAiB,EACjBpB,YAAY,EACZ/H,SAAU,yBACV6H,YAAa,GACX7I,EAAKmE,iBAGVrF,KAAA4H,qBAAuB,WACO,GAA1B1G,EAAK+C,MAAM8F,YACb7I,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKoK,cAAc,GAAyB,IAC3CpJ,SAAU,sBAAuBhB,EAAK+C,MAAM+F,WAAU,MACtDD,YAAa,IACV7I,EAAKmE,gBAGVnE,EAAK4C,UACJuH,gBAAiB,EACjBpB,YAAY,EACZ/H,SAAU,yBACV6H,YAAa,GACX7I,EAAKmE,iBAGVrF,KAAAsH,YAAc,WACbpG,EAAK4C,UAAWI,UAEjBlE,KAAAyI,mCAAqC,aAGrCzI,KAAA0I,mCAAqC,aAGrC1I,KAAAuL,sBAAwB,aAGxBvL,KAAAwL,qBAAuB,aAGvBxL,KAAAyL,+BAAiC,aAGjCzL,KAAA0L,8BAAgC,aAGhC1L,KAAAsJ,WAAa,aAGbtJ,KAAA4I,YAAc,aAId5I,KAAAuG,WAAa,WACTrF,EAAK+C,MAAMxC,MAAQP,EAAK+C,MAAMwG,WAAW9I,QAC3CT,EAAK4C,UACJ2G,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,OACtDP,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,MAAM,GACpDS,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAGVrF,KAAAqG,mBAAqB,WACS,GAA1BnF,EAAK+C,MAAM8F,YACb7I,EAAK4C,UACJkG,WAAY9I,EAAK+C,MAAM+F,WAAWjI,UAAU,EAAEb,EAAK+C,MAAM+F,WAAWrI,OAAO,GAC3EyD,MAAOlE,EAAKJ,MAAMsE,MAAM1D,OACtBR,EAAKiJ,eACCjJ,EAAK+C,MAAMxC,MAAQ,GAC5BP,EAAK4C,UACJrC,MAAOP,EAAKwJ,WAAU,GACtBD,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,MAAM,GAC5DP,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,OAC9CS,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAIVrF,KAAA+H,SAAW,WACV,GAAI4D,GAAOzK,EAAK+C,MAAM0H,IACO,IAA1BzK,EAAK+C,MAAM8F,YACb4B,EAAK,GAAKA,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,OAE/DkK,EAAKC,QAAQ1K,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,QAEzDP,EAAK4C,UACJ2G,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,OACzDkK,KAAMA,EACNE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAAiI,iBAAmB,WAClB,GAAI0D,GAAOzK,EAAK+C,MAAM0H,IACO,IAA1BzK,EAAK+C,MAAM8F,YACb4B,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,OAASkK,EAAK,GAErEA,EAAKC,QAAQ1K,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,QAE3DP,EAAK4C,UACJrC,MAAO,EACPgJ,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,OACvDkK,KAAMA,EACNE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAA8L,cAAgB,WACf,GAAIH,GAAOzK,EAAK+C,MAAM0H,IACO,IAA1BzK,EAAK+C,MAAM8F,YACb4B,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,OACpDkK,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,OAExDkK,EAAKC,QAAQ1K,EAAK+C,MAAMwG,YAEzBvJ,EAAK4C,UACJrC,MAAO,EACPgJ,WAAY,GACZkB,KAAMA,EACNE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAA6I,SAAW,WACV,GAAI8C,GAAOzK,EAAK+C,MAAM0H,IACO,IAA1BzK,EAAK+C,MAAM8F,YACb4B,EAAK,GAAKA,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,MAAMP,EAAKyJ,YAE1EgB,EAAKC,QAAQ1K,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,MAAMP,EAAKyJ,aAEpEzJ,EAAK4C,UACJ2G,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK+C,MAAMxC,OACtDP,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAKyJ,YACxCgB,KAAMA,EACNE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAA8I,iBAAmB,WAClB,GAAI6C,GAAOzK,EAAK+C,MAAM0H,IACO,IAA1BzK,EAAK+C,MAAM8F,YACb4B,EAAK,GAAKzK,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK0J,eAAe1J,EAAK+C,MAAMxC,OAASkK,EAAK,GAEvFA,EAAKC,QAAQ1K,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK0J,eAAe1J,EAAK+C,MAAMxC,QAE7EP,EAAK4C,UACJrC,MAAOP,EAAK0J,eACZH,WAAYvJ,EAAK+C,MAAMwG,WAAW1I,UAAU,EAAEb,EAAK0J,gBAChD1J,EAAK+C,MAAMwG,WAAW1I,UAAUb,EAAK+C,MAAMxC,OAC9CkK,KAAMA,EACNE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,iBAETrF,KAAAmI,KAAO,WACNjH,EAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKmJ,cAAcnJ,EAAK+C,MAAM0H,KAAKzK,EAAK+C,MAAM4H,SAC7C9B,YAAa,IACV7I,EAAKmE,iBAGXrF,KAAA+I,QAAU,WACT,GAA6B,GAA1B7H,EAAK+C,MAAM8F,YAAoC,CACjD,GAAI8B,GAAQ3K,EAAK6K,WAAW,EAAG7K,EAAK+C,MAAM4H,MAAO3K,EAAK+C,MAAM0H,KAAKhK,OACjET,GAAK4C,SAASvD,OAAO6J,OACpBlJ,EAAKmJ,cAAcnJ,EAAK+C,MAAM0H,KAAKE,GAAQ3K,EAAK+C,MAAM0H,KAAKzK,EAAK+C,MAAM4H,OAAOlK,SAC5EkK,MAAOA,EACP9B,YAAa,IACV7I,EAAKmE,kBAMZrF,KAAA6G,SAAW,WACV,GAAG3F,EAAKM,MAAMqF,SAAU,CAKvB,IAHA,GAAImF,GAAQ9K,EAAK+C,MAAMwG,WAAWwB,MAAM,KACpCC,EAAO,EACP/J,EAAM6J,EAAM,GAAGrK,OACbQ,EAAMjB,EAAK+C,MAAMxC,OAASyK,EAAO,EAAIF,EAAMrK,QAChDQ,GAAO6J,IAAQE,GAAMvK,OAAS,CAG/B,IAAIwK,GAAcjL,EAAKM,MAAMqF,SAASmF,EAAOE,EAAMhL,EAAK+C,MAAMwG,WAC9D,IAAyB,GAAtB0B,EAAYxK,OAAa,CAE3BqK,EAAME,GAAQC,EAAY,EAE1B,KAAI,GADA1K,IAAQ,EACJkC,EAAI,EAAGA,GAAKuI,EAAMvI,IACzBlC,GAASuK,EAAMrI,GAAGhC,OAAS,CAE5BT,GAAK4C,UACJrC,MAAOA,EACPgJ,WAAYuB,EAAMI,KAAK,KACvBlK,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,oBACF,IAAI8G,EAAYxK,OAAS,EAAG,CAElC,GAAIuC,GAAMhD,EAAK+C,MAAMC,GACrBA,GAAIC,MACHlC,MAAOf,EAAK+C,MAAMc,UAClBX,QAASlD,EAAK+C,MAAMwG,WACpBpG,UACCtB,KAAM,aACNrB,OAAQyK,EAAYC,KAAK,WAG3BlL,EAAK4C,UACJiB,UAAW7D,EAAK8D,YAChBd,IAAKA,EACLhC,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,mBAMXrF,KAAA+G,WAAa,WACiB,GAA1B7F,EAAK+C,MAAM8F,aACb7I,EAAK4C,UACJ5B,SAAU,KACV6H,YAAa,KAKhB/J,KAAAqI,cAAgB,WACf,GAAGnH,EAAK+C,MAAMF,YAAa,CAC1B7C,EAAKJ,MAAMsE,MAAM1D,MAAQ,EACzB,IAAIwC,GAAMhD,EAAK+C,MAAMC,GACrBA,GAAIC,MACHlC,MAAOf,EAAK+C,MAAMc,UAClBX,QAASlD,EAAK+C,MAAMwG,WACpBpG,aAEDnD,EAAK4C,UACJsB,MAAO,GACP3D,MAAO,EACPgJ,WAAY,GACZQ,YAAa,GACb/G,IAAKA,EACLgH,SAAU,EACVhJ,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,oBAERnE,GAAKM,MAAM6K,UAIbrM,KAAAkK,WAAa,SAACL,EAAgBtG,EAAcuG,EAAqBrI,GAChE,MAD2C,UAAAqI,MAAA,GAAqB,SAAArI,MAAgB8B,EAAK5B,QAC9E4B,EAAKxB,UAAU,EAAGN,EAAQqI,GAAWD,EAAStG,EAAKxB,UAAUN,IAErEzB,KAAAqK,cAAgB,SAACR,EAAgBC,GAAA,SAAAA,MAAA,EAChC,IAAIW,GAAavJ,EAAKgJ,WAAWL,EAAQ3I,EAAK+C,MAAMwG,WAAYX,EAAS5I,EAAK+C,MAAMxC,MACpF,QACCA,MAAOP,EAAKwJ,UAAUb,EAAOlI,OAASmI,EAASD,EAAOlI,OAASmI,EAAU5I,EAAK+C,MAAMwG,WAAW9I,QAC/F8I,WAAYA,EACZQ,YAAaR,EACbvI,SAAU,KACV6H,YAAa,IAGf/J,KAAA0K,UAAY,SAAC4B,EAAWC,GAAA,SAAAA,MAAcrL,EAAK+C,MAAMwG,WAAW9I,OAC3D,IAAI6K,GAAMtL,EAAK+C,MAAMxC,MAAQ6K,CAC7B,OAAIE,GAAM,EACF,EACFA,EAAMD,EACJA,EAEAC,GAqBTxM,KAAA+L,WAAa,SAACO,EAAWG,EAAeC,EAAcC,GACrD,MADqD,UAAAA,OAAA,GAC1C,GAARD,EAAkB,EAClBC,GACMD,GAAQD,EAAQH,GAAKI,GAAQA,GAErCD,GAAgBH,EACbG,EAAQ,EACH,EACGA,GAASC,EACZA,EAEAD,IAIVzM,KAAAoL,cAAgB,SAACkB,GAChB,GAAIpB,GAAWhK,EAAK6K,WAAWO,EAAGpL,EAAK+C,MAAMiH,SAAUhK,EAAK+C,MAAM+G,QAAQrJ,QAAQ,EAClF,IAAe,GAAZuJ,EACFhK,EAAK4C,UACJrC,MAAOP,EAAK+C,MAAMgH,YAAYtJ,OAC9B8I,WAAYvJ,EAAK+C,MAAMgH,YACvBC,SAAUA,EACVhJ,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,oBACF,CACN,GAAIoF,GAAavJ,EAAK+C,MAAM+G,QAAQ9J,EAAK+C,MAAM+G,QAAQrJ,OAAOuJ,EAC9DhK,GAAK4C,UACJrC,MAAOgJ,EAAW9I,OAClB8I,WAAYA,EACZS,SAAUA,EACVhJ,SAAU,KACV6H,YAAa,GACX7I,EAAKmE,kBAGVrF,KAAAsL,cAAgB,SAACsB,EAAyDC,GAAzD,SAAAD,MAA6B1L,EAAK+C,MAAMoH,iBAAiB,SAAAwB,OAAA,EACzE,IAAI1K,GAAMjB,EAAK+C,MAAMiH,SACjB4B,EAAoB,GAAbF,EAAsC,GAAE,CAInD,KAHGC,IACF1K,GAAY2K,GAER3K,EAAM,GAAKA,GAAOjB,EAAK+C,MAAM+G,QAAQrJ,OAAQQ,GAAY2K,EAAK,CAClE,GAAIC,GAAQ7L,EAAK+C,MAAM+G,QAAQ9J,EAAK+C,MAAM+G,QAAQrJ,OAAOQ,GACrDV,EAAQsL,EAAMC,QAAQ9L,EAAK+C,MAAM+F,WACrC,IAAGvI,GAAQ,EACV,OACCA,MAAOA,EACPgJ,WAAYsC,EACZ1B,gBAAiBuB,EACjB3C,YAAY,EACZiB,SAAU/I,GAIb,OACCkJ,gBAAiBuB,EACjB3C,YAAY,IAIdjK,KAAAiN,gBAAkB,EAClBjN,KAAA0E,eAAiB,WAChB,MAAGxD,GAAK+L,gBAAkB,GAAK/L,EAAKJ,MAAMoM,UAAUC,WAAajM,EAAKJ,MAAMoM,UAAUE,aAAelM,EAAKJ,MAAMoM,UAAUG,cACzHnM,EAAK+L,kBACE/L,EAAKoM,oBAEL,MAGTtN,KAAAsN,mBAAqB,WACpBpM,EAAKmE,iBACLnE,EAAK+L,mBAENjN,KAAAqF,eAAiB,WAChBnE,EAAKJ,MAAMoM,UAAUC,UAAYjM,EAAKJ,MAAMoM,UAAUE,YACtD,IAAIG,GAAOrM,EAAKJ,MAAMmE,MAAMuI,yBACzBD,EAAKE,IAAM,GAAKF,EAAKG,KAAO,GAC9BH,EAAKI,QAAUtM,OAAOuM,aAAeC,SAASC,gBAAgBC,eAC9DR,EAAKS,OAAS3M,OAAO4M,YAAcJ,SAASC,gBAAgBI,eACzDhN,EAAKJ,MAAMsE,MAAM+I,gBAAe,IAErCnO,KAAAgF,UAAY,WACX,MAAqC,gBAA3B9D,GAAKM,MAAM4M,YACblN,EAAKM,MAAM4M,YAEVlN,EAAKM,MAAM4M,eA10BpBpO,KAAKiE,OACJgB,OAAO,EACPlB,aAAa,EACbqB,MAAO,GACP3D,MAAO,EACPsD,UAAW/E,KAAKgF,YAChByF,WAAY,GACZQ,YAAa,GACbjB,WAAY,GACZqB,gBAAiB,KACjBpB,YAAY,EACZ/F,OACA8G,WACAE,SAAU,EACVS,QACAE,MAAO,EACP3J,SAAU,KACV6H,YAAa,GAg3BhB,MAp4B6BhK,GAAA6D,EAAAjD,GAsF5BiD,EAAAtD,UAAAU,kBAAA,WACIhB,KAAKwB,MAAM6M,WACbrO,KAAKiF,SA6oBPrB,EAAAtD,UAAAqK,SAAA,WAEC,GAAI2D,GAAS,OAAOC,KAAKvO,KAAKiE,MAAMwG,WAAW1I,UAAU/B,KAAKiE,MAAMxC,OACpE,OAAG6M,GACKA,EAAOpL,MAAQlD,KAAKiE,MAAMxC,MAAQ,EAElCzB,KAAKiE,MAAMwG,WAAW9I,QAG/BiC,EAAAtD,UAAAsK,aAAA,WAEC,GAAI0D,GAAS,iBAAiBC,KAAKvO,KAAKiE,MAAMwG,WAAW1I,UAAU,EAAE/B,KAAKiE,MAAMxC,MAAM,GACtF,OAAG6M,GACKA,EAAOpL,MAAQ,EAEf,GA4FTU,EAAAtD,UAAA0B,OAAA,cAAAd,GAAAlB,IACC,OAAOS,GAAAmB,cAAA,OAAKC,IAAK,SAAAA,GAAO,MAAAX,GAAKJ,MAAMoM,UAAYrL,GAC7CT,UAAW,4BAA8BpB,KAAKiE,MAAMgB,MAAM,sBAAsB,yBAChFuJ,QAASxO,KAAKiF,OAEdjF,KAAKwB,MAAMiN,eACXhO,EAAAmB,cAAA,OAAKR,UAAU,+CACbpB,KAAKwB,MAAMiN,gBAEX,KAEFzO,KAAKiE,MAAMC,IAAIzB,IAAK,SAACiB,GACrB,OACCjD,EAAAmB,cAAClB,GAAcuB,MAAOyB,EAAIzB,MAAOP,MAAOgC,EAAIU,WF9DlCsK,OE+DPhL,EAAIW,QAAQ5B,IAAK,SAACiB,EAAiBvB,GACrC,MAAO1B,GAAAmB,cAACgB,GAAed,IAAKK,EAAKY,KAAMW,EAAIX,KAAMrB,MAAOgC,EAAIhC,MAAOmB,QAASa,EAAIb,eAIlF7C,KAAKiE,MAAMF,YACXtD,EAAAmB,cAAClB,GACAuB,MAAOjC,KAAKiE,MAAMc,UAClBrD,MAAO1B,KAAKiE,MAAMwG,WAClBhJ,MAAOzB,KAAKiE,MAAMxC,MAClBS,SAAUlC,KAAKiE,MAAM/B,WAEpB,KAEHzB,EAAAmB,cAAA,OAAK+M,OAASC,SAAU,SAAUC,OAAQ,EAAGC,MAAO,IACnDrO,EAAAmB,cAAA,YACCC,IAAK,SAAAA,GAAO,MAAAX,GAAKJ,MAAMsE,MAAQvD,GAC/BT,UAAU,sBACV2N,aAAa,MACbC,YAAY,MACZC,eAAe,MACfC,WAAW,QACXP,OAASQ,QAAS,OACjBC,MAAO,cACPC,gBAAiB,cACjBC,OAAQ,OACRC,OAAQ,OACRX,SAAU,UAEXY,OAAQxP,KAAKsF,KACbmK,UAAWzP,KAAKuF,QAChBmK,SAAU1P,KAAK4J,OACf+F,QAAS3P,KAAKsK,SAGhB7J,EAAAmB,cAAA,OAAKC,IAAK,SAAAA,GAAO,MAAAX,GAAKJ,MAAMmE,MAAQpD,IAAI,OA12BnC+B,EAAAvB,cACN+L,YAAa,KACbvD,SAAU,WAAa,OAAO,GAC9BwB,OAAQ,cA02BVzI,GAp4B6BnD,EAAM6B,UAAnC/B,QAAAqP,eAAArQ,EAAA,cAAAmC,OAAA,IFozBCnC,EAAQsQ,QAAUjM,GAKb,SAAUpE,EAAQD,KAMlB,SAAUC,EAAQD,GGjgCxBC,EAAAD,QAAAkB","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // componentDidUpdate() {\n\t // \tthis.idle();\n\t // }\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.setBusy = function () {\n\t _this.setState({ acceptInput: false });\n\t };\n\t this.getSafeLog = function () {\n\t if (!_this.state.log.length) {\n\t _this.state.log.push({ label: '', command: '', message: [] });\n\t }\n\t return _this.state.log;\n\t };\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData, type) {\n\t var log = _this.getSafeLog();\n\t if (type) {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] });\n\t }\n\t else {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t }\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode !== 86) {\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4ae538134ccc1572bbcb","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/dist.tar.gz b/dist/dist.tar.gz index 45f02bf390aafa916f91b51e055739bd74efffa7..de6fd0e2f2ba2a8ded8261e72d865d113eefa134 100644 GIT binary patch delta 24538 zcmV)gK%~F6%>l&C0e>Hh2mk;8000C7?S1Kb8#k7A|4m;-MKj%&W0G3D%ds;OrNnMW zvB!32Y0Hm?B1;luie$K0R@A^SE8TPz3OG1B4h~SLQQm4# z>g_>)Jm}?(pT~dt2!HGA>o=}l%l?Fa@fZEOvAMo^{d%@>b$@eXef|3Njcc3P`o`wf zjT@-<5pXGioQ@~05l|~VSh64{Zpr4qSM}GeQPx!HXLtX+_J#bdWvfTietXg#^jA*@ zooO#0U(PPFwYBUlKODB&uXYB5$#^nq4SkEx@buY9o@xE8-D;oY!Bh6r?St37Uf$VP znAzRz;_V$*$$wpB7S<^LW!fF(nMEe3VT-btFAYvFP3@O24bBfbK-x8N7ujb7-#p3N zud?ou#kV^KdL^ts>mIGfSU*<^A9P+^4q<*a$|uuNzeJ?3-pJn!2cyY2NwMHG%3G5> zYi0fX%;L4$>UXl?bdq)Pzy4&9O~7MeZlQOw*Kq#s41W~J@dDBYr7Z}eR(R0uY#D$L zI>jfwL93JF=~1gU4ki3qT9hPg?@ivGf->T6u(a|EJJmtgc|w)yqk=sc_qXrDu2>wxS9=)f-XY9Mpu+zOM!=+efHMX zE?cO`kP7izC_RC>wa`N(JfQGN(Q6Hj*m6a-(-$GflygwP8Tg9V28TK171s#|NiGEhs z16|7AI)Z1Mq#H=`uzJslE?8zO+nz6dVkXGb$}TMRrdt$w+)O3eKgtacK$x>V2mkt zf-0X0fNrOUN5#fQH0%WRb|39$`>lTKI426e7im5f*iZA**6?J2Vf${jZeST80MN9! zWZ!m=^7eVVmn)P46TBoFA@ci!X`igOgGW}RqfCQkL=|unTn$f5hd@z<{}dUs(|_ys zUuEs-XbderJIOKh1DaS~pk2kw<>vqcGJqupzb$KSP1Ny-Wg z#0T_s?UjCjP3>PGQx*xtsQ)WhqBdvUerIsj80V8`-P3$9odo)y#PekeY`q?VW&h+s zvNjw5ydiv*KAp)(0^(n}>U{oSKz}GRtxj>qoMR6W_uker%v?A;I3AlC^R#aSmzYL zD9O{)5)zgbA1R?^XG6i<^S;T!#j+9k~*q zNsy7_5i^Z6l+`TYOP8wK2cV2nCpEIueNCgRwk7Zs(NO(x@P_u3gkddvE)c<+VC3TR z`+~EQB*Z}HZ1MZTcVGiAjℜ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 DCWf}p diff --git a/dist/dist.zip b/dist/dist.zip index 15eacb0c98324d015852703acc06a9e229db0cd1..a34bf86529789b5facd5094add0dfcb148c309c8 100644 GIT binary patch delta 24251 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�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 x;{Q35_WTVv(|(uH!1P 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 AH2?qr diff --git a/dist/dist/react-console.js b/dist/dist/react-console.js index b8778eb..bf42955 100644 --- a/dist/dist/react-console.js +++ b/dist/dist/react-console.js @@ -58,6 +58,9 @@ var Console = function ConsolePrompt() { _super.apply(this, arguments); this.child = {}; + // componentDidUpdate() { + // this.idle(); + // } // DOM Management this.updateSemaphore = 0; } @@ -65,9 +68,6 @@ var Console = ConsolePrompt.prototype.componentDidMount = function () { this.idle(); }; - ConsolePrompt.prototype.componentDidUpdate = function () { - this.idle(); - }; ConsolePrompt.prototype.idle = function () { var _this = this; // Blink cursor when idle diff --git a/dist/dist/react-console.js.map b/dist/dist/react-console.js.map index 51f4bce..242b6af 100644 --- a/dist/dist/react-console.js.map +++ b/dist/dist/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 35aed3f43a312734276a","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 35aed3f43a312734276a","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 1f989b3b715e98f3766d","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1f989b3b715e98f3766d","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index e8ea74b..1d7bf17 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -17,7 +17,8 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ './node_modules/phantomjs-polyfill-object-assign/object-assign-polyfill.js', //HOPE one day ditch PhantomJS polyfill - 'test/*.tsx' + './node_modules/babel-polyfill/dist/polyfill.js', + 'test/*.tsx', ], diff --git a/lib/react-console.js b/lib/react-console.js index 4349f36..a6f47d7 100644 --- a/lib/react-console.js +++ b/lib/react-console.js @@ -58,6 +58,9 @@ module.exports = function ConsolePrompt() { _super.apply(this, arguments); this.child = {}; + // componentDidUpdate() { + // this.idle(); + // } // DOM Management this.updateSemaphore = 0; } @@ -65,9 +68,6 @@ module.exports = ConsolePrompt.prototype.componentDidMount = function () { this.idle(); }; - ConsolePrompt.prototype.componentDidUpdate = function () { - this.idle(); - }; ConsolePrompt.prototype.idle = function () { var _this = this; // Blink cursor when idle diff --git a/lib/react-console.js.map b/lib/react-console.js.map index ff074f9..55c078d 100644 --- a/lib/react-console.js.map +++ b/lib/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap ba1d849425263bb271b5","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ba1d849425263bb271b5","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap aac435dc0b3f10677a79","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap aac435dc0b3f10677a79","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7be67a3..ef54f85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,101 +4,134 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@types/node": { + "version": "8.0.53", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.53.tgz", + "integrity": "sha512-54Dm6NwYeiSQmRB1BLXKr5GELi0wFapR1npi8bnZhEcu84d/yQKqnwwXQ56hZ0RUbTG6L5nqDZaN3dgByQXQRQ==", + "dev": true + }, "abbrev": { - "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", "dev": true }, "accepts": { - "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "mime-types": "2.1.17", + "negotiator": "0.6.1" } }, "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true }, "after": { - "version": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, "agent-base": { - "version": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", "dev": true, "requires": { - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + "extend": "3.0.1", + "semver": "5.0.3" }, "dependencies": { "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", "dev": true } } }, + "ajv": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz", + "integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, "align-text": { - "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "alphanum-sort": { - "version": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, "amdefine": { - "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-align": { - "version": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz", "integrity": "sha1-LwwWWIKXOa3V67FeawxuNCPwFro=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "string-width": "1.0.2" } }, "ansi-escapes": { - "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", "dev": true }, "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "any-promise": { - "version": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", "dev": true }, "anymatch": { - "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "aproba": { @@ -108,74 +141,80 @@ "dev": true }, "archiver": { - "version": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", "dev": true, "requires": { - "archiver-utils": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "async": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "tar-stream": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", - "walkdir": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "zip-stream": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz" + "archiver-utils": "1.3.0", + "async": "2.6.0", + "buffer-crc32": "0.2.13", + "glob": "7.1.2", + "lodash": "4.17.4", + "readable-stream": "2.3.3", + "tar-stream": "1.5.5", + "walkdir": "0.0.11", + "zip-stream": "1.2.0" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha1-hDGQ/WtzV6C54clW7d3V7IRitU0=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "lodash": "4.17.4" } }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "archiver-utils": { - "version": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "lazystream": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lazystream": "1.0.0", + "lodash": "4.17.4", + "normalize-path": "2.1.1", + "readable-stream": "2.3.3" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "archy": { - "version": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, @@ -186,100 +225,117 @@ "dev": true, "requires": { "delegates": "1.0.0", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "readable-stream": "2.3.3" } }, "argparse": { - "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "sprintf-js": "1.0.3" } }, "arr-diff": { - "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + "arr-flatten": "1.1.0" } }, "arr-flatten": { - "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-find-index": { - "version": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, "array-flatten": { - "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, "array-slice": { - "version": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", "dev": true }, "array-uniq": { - "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, "array-unique": { - "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arraybuffer.slice": { - "version": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", "dev": true }, "arrify": { - "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asap": { - "version": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, "assert": { - "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "util": "0.10.3" } }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, "assertion-error": { - "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", "dev": true }, "async": { - "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "async-each": { - "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, @@ -290,95 +346,139 @@ "dev": true }, "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "autoprefixer": { - "version": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz", - "normalize-range": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "num2fraction": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000775", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true }, "aws4": { - "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + } + } + }, "backo2": { - "version": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", "dev": true }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, "base64-arraybuffer": { - "version": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, "base64-js": { - "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, "base64id": { - "version": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "tweetnacl": "0.14.5" } }, "better-assert": { - "version": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true, "requires": { - "callsite": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + "callsite": "1.0.0" } }, "big.js": { - "version": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, "binary-extensions": { - "version": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz", - "integrity": "sha1-ZlBsFs5vTWkopbPNajPKQelB43s=", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, "bl": { - "version": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "readable-stream": "2.3.3" } }, "blob": { - "version": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", "dev": true }, @@ -388,539 +488,586 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3" } }, "bluebird": { - "version": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", "dev": true }, "body-parser": { - "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", - "dev": true, - "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz" - }, - "dependencies": { - "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true - } + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" } }, "boolbase": { - "version": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.16.3" } }, "boxen": { - "version": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", "integrity": "sha1-g2TUJIrDT/DvGy8r9JpsYM4NgbY=", "dev": true, "requires": { - "ansi-align": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz", - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "cli-boxes": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "filled-array": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "widest-line": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz" + "ansi-align": "1.1.0", + "camelcase": "2.1.1", + "chalk": "1.1.3", + "cli-boxes": "1.0.0", + "filled-array": "1.1.0", + "object-assign": "4.1.1", + "repeating": "2.0.1", + "string-width": "1.0.2", + "widest-line": "1.0.0" }, "dependencies": { "camelcase": { - "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true } } }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "balanced-match": "1.0.0", + "concat-map": "0.0.1" }, "dependencies": { "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true } } }, "braces": { - "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { - "version": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", "dev": true }, "browserify-aes": { - "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3" } }, "browserify-zlib": { - "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz" + "pako": "0.2.9" } }, "browserslist": { - "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz", - "electron-to-chromium": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz" + "caniuse-db": "1.0.30000775", + "electron-to-chromium": "1.3.27" } }, "buffer": { - "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" } }, "buffer-crc32": { - "version": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, "builtin-modules": { - "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "builtin-status-codes": { - "version": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, "bytes": { - "version": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "callsite": { - "version": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", "dev": true }, "camelcase": { - "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true }, "camelcase-keys": { - "version": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + "camelcase": "2.1.1", + "map-obj": "1.0.1" }, "dependencies": { "camelcase": { - "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true } } }, "caniuse-api": { - "version": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz", - "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "lodash.uniq": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000775", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" } }, "caniuse-db": { - "version": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz", - "integrity": "sha1-wuc2vTt/xfbBTkxt/mK5jtFeils=", + "version": "1.0.30000775", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000775.tgz", + "integrity": "sha1-BLzN0CFO3yW5f2GglmCfetaQQzM=", "dev": true }, "capture-stack-trace": { - "version": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", "dev": true }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", "dev": true }, "center-align": { - "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chai": { - "version": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true, "requires": { - "assertion-error": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", - "deep-eql": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" + "assertion-error": "1.0.2", + "deep-eql": "0.1.3", + "type-detect": "1.0.0" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" }, "dependencies": { "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } } }, "changelog-parser": { - "version": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.0.5.tgz", - "integrity": "sha1-YBHlmIIcFRZKi1zWJRO9b01AMi0=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.0.5.tgz", + "integrity": "sha512-m9dZPPH6VpvQ/LlD85KS4j03Hv7ZSQ/qbCyiGHfScPa+SHcDEGs0D5KXBzl0HnoSgtLKzfEHMgcdzgjMaTpYTQ==", "dev": true, "requires": { - "line-reader": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz" + "line-reader": "0.2.4" } }, "cheerio": { - "version": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "dev": true, - "requires": { - "css-select": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "lodash.assignin": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "lodash.bind": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "lodash.defaults": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "lodash.filter": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "lodash.flatten": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "lodash.foreach": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "lodash.map": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "lodash.merge": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", - "lodash.pick": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "lodash.reduce": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "lodash.reject": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "lodash.some": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz" + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash": "4.17.4", + "parse5": "3.0.3" } }, "chokidar": { - "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "async-each": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "fsevents": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "is-binary-path": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "clap": { - "version": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", - "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + "chalk": "1.1.3" } }, "cli-boxes": { - "version": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, "cli-cursor": { - "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" + "restore-cursor": "1.0.1" } }, "cli-truncate": { - "version": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", "dev": true, "requires": { - "slice-ansi": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "slice-ansi": "0.0.4", + "string-width": "1.0.2" } }, "cliui": { - "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "requires": { - "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true } } }, "clone": { - "version": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "coa": { - "version": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "https://registry.npmjs.org/q/-/q-1.5.0.tgz" + "q": "1.5.1" } }, "code-point-at": { - "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "color": { - "version": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "color-string": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" } }, "color-convert": { - "version": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "color-name": { - "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-string": { - "version": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "colormin": { - "version": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "css-color-names": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" } }, "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "columnify": { - "version": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "wcwidth": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "strip-ansi": "3.0.1", + "wcwidth": "1.0.1" } }, "combine-lists": { - "version": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "lodash": "4.17.4" } }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "1.0.0" } }, "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM=", + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", "dev": true }, "component-bind": { - "version": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", "dev": true }, "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", "dev": true }, "component-inherit": { - "version": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, "compress-commons": { - "version": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", - "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", "dev": true, "requires": { - "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "crc32-stream": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "buffer-crc32": "0.2.13", + "crc32-stream": "2.0.0", + "normalize-path": "2.1.1", + "readable-stream": "2.3.3" } }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "concat-stream": { - "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "dependencies": { - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" } }, "configstore": { - "version": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", "integrity": "sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=", "dev": true, "requires": { - "dot-prop": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "write-file-atomic": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz" + "dot-prop": "3.0.0", + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1", + "os-tmpdir": "1.0.2", + "osenv": "0.1.4", + "uuid": "2.0.3", + "write-file-atomic": "1.3.4", + "xdg-basedir": "2.0.0" }, "dependencies": { "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "dev": true } } }, "connect": { - "version": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "integrity": "sha1-aU6NIGgb/kkCgsiriGvpjwn0L+c=", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", + "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + "debug": "2.6.9", + "finalhandler": "1.0.6", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "finalhandler": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + } } }, "console-browserify": { - "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + "date-now": "0.1.4" } }, "console-control-strings": { @@ -930,98 +1077,101 @@ "dev": true }, "constants-browserify": { - "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "content-disposition": { - "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", "dev": true }, "content-type": { - "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "cookie-signature": { - "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, "core-js": { - "version": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", "dev": true }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "coveralls": { - "version": "https://registry.npmjs.org/coveralls/-/coveralls-2.11.16.tgz", + "version": "2.11.16", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.11.16.tgz", "integrity": "sha1-2pBhJlFC3e6VT2g3kSK+l76KtLE=", "dev": true, "requires": { - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "lcov-parse": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "log-driver": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz" + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" }, "dependencies": { "js-yaml": { - "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", "dev": true, "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + "argparse": "1.0.9", + "esprima": "2.7.3" } }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "crc": { - "version": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", - "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", "dev": true }, "crc32-stream": { - "version": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", "dev": true, "requires": { - "crc": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "crc": "3.5.0", + "readable-stream": "2.3.3" } }, "create-error-class": { - "version": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz" - } - }, - "create-react-class": { - "version": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", - "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=", - "dev": true, - "requires": { - "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -1031,7 +1181,7 @@ "dev": true, "requires": { "lru-cache": "4.1.1", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "which": "1.3.0" }, "dependencies": { "lru-cache": { @@ -1047,229 +1197,255 @@ } }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + "boom": "2.10.1" } }, "crypto-browserify": { - "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", "dev": true, "requires": { - "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", - "pbkdf2-compat": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" } }, "css-color-names": { - "version": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, "css-loader": { - "version": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", "integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=", "dev": true, "requires": { - "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", - "cssnano": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "lodash.camelcase": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-modules-extract-imports": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "postcss-modules-local-by-default": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "postcss-modules-scope": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "postcss-modules-values": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz" + "css-selector-tokenizer": "0.5.4", + "cssnano": "3.10.0", + "loader-utils": "0.2.17", + "lodash.camelcase": "3.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "source-list-map": "0.1.8" } }, "css-select": { - "version": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "css-what": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "nth-check": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz" + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" } }, "css-selector-tokenizer": { - "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=", "dev": true, "requires": { - "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz" + "cssesc": "0.1.0", + "fastparse": "1.1.1" } }, "css-what": { - "version": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", "dev": true }, "cssesc": { - "version": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, "cssnano": { - "version": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-calc": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "postcss-colormin": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "postcss-convert-values": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "postcss-discard-comments": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "postcss-discard-duplicates": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "postcss-discard-empty": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "postcss-discard-overridden": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "postcss-discard-unused": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "postcss-filter-plugins": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "postcss-merge-idents": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "postcss-merge-longhand": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "postcss-merge-rules": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "postcss-minify-font-values": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "postcss-minify-gradients": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "postcss-minify-params": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "postcss-minify-selectors": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "postcss-normalize-charset": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "postcss-normalize-url": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "postcss-ordered-values": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "postcss-reduce-idents": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "postcss-reduce-initial": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "postcss-reduce-transforms": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "postcss-svgo": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "postcss-unique-selectors": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "postcss-zindex": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz" + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" } }, "csso": { - "version": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "clap": "1.2.3", + "source-map": "0.5.7" } }, "currently-unhandled": { - "version": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + "array-find-index": "1.0.2" } }, "custom-event": { - "version": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "date-now": { - "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", "dev": true }, "dateformat": { - "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + "get-stdin": "4.0.1", + "meow": "3.7.0" } }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "ms": "2.0.0" } }, "decamelize": { - "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "deep-eql": { - "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, "requires": { - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" + "type-detect": "0.1.1" }, "dependencies": { "type-detect": { - "version": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", "dev": true } } }, "deep-extend": { - "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true }, "deep-is": { - "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "defaults": { - "version": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + "clone": "1.0.3" } }, "define-properties": { - "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" + "foreach": "2.0.5", + "object-keys": "1.0.11" } }, "defined": { - "version": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, @@ -1280,1745 +1456,884 @@ "dev": true }, "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", "dev": true }, "destroy": { - "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, "detect-indent": { - "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "repeating": "2.0.1" } }, "di": { - "version": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", "dev": true }, + "discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=", + "dev": true + }, "dom-serialize": { - "version": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "ent": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "void-elements": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" } }, "dom-serializer": { - "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { - "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", "dev": true } } }, "domain-browser": { - "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", "dev": true }, "domelementtype": { - "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", "dev": true }, "domhandler": { - "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + "domelementtype": "1.3.0" } }, "domutils": { - "version": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-prop": { - "version": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "is-obj": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + "is-obj": "1.0.1" } }, "duplexer2": { - "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "readable-stream": "2.3.3" } }, "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "0.1.1" } }, "ee-first": { - "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, "electron-to-chromium": { - "version": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz", - "integrity": "sha1-0OAmc1dUdwkBrjAaIWZMukXZL30=", + "version": "1.3.27", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", + "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", "dev": true }, "elegant-spinner": { - "version": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", "dev": true }, "emojis-list": { - "version": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, "encodeurl": { - "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "dev": true }, "encoding": { - "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "dev": true, "requires": { - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz" + "iconv-lite": "0.4.19" } }, "end-of-stream": { - "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "dev": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "once": "1.4.0" } }, "engine.io": { - "version": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", "dev": true, "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "base64id": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-parser": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "ws": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz" + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" }, "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "engine.io-client": { - "version": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", "dev": true, "requires": { - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "component-inherit": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-parser": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "has-cors": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "parsejson": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "parseqs": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "parseuri": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "ws": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "xmlhttprequest-ssl": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "yeast": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz" + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" }, "dependencies": { "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "engine.io-parser": { - "version": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", "dev": true, "requires": { - "after": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "arraybuffer.slice": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "base64-arraybuffer": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "blob": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "wtf-8": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz" + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" } }, "enhanced-resolve": { - "version": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "memory-fs": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "tapable": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz" + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" }, "dependencies": { "memory-fs": { - "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", "dev": true } } }, "ent": { - "version": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, "entities": { - "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", "dev": true }, "enzyme": { - "version": "https://registry.npmjs.org/enzyme/-/enzyme-2.9.1.tgz", - "integrity": "sha1-B9XOaRJBJA+4F78sSxjW5TAkDfY=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.2.0.tgz", + "integrity": "sha512-l0HcjycivXjB4IXkwuRc1K5z8hzWIVZB2b/Y/H2bao9eFTpBz4ACOwAQf44SgG5Nu3d1jF41LasxDgFWZeeysA==", + "dev": true, + "requires": { + "cheerio": "1.0.0-rc.2", + "function.prototype.name": "1.0.3", + "has": "1.0.1", + "is-subset": "0.1.1", + "lodash": "4.17.4", + "object-is": "1.0.1", + "object.assign": "4.0.4", + "object.entries": "1.0.4", + "object.values": "1.0.4", + "raf": "3.4.0", + "rst-selector-parser": "2.2.3" + } + }, + "enzyme-adapter-react-16": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.0.tgz", + "integrity": "sha512-OlZJn5PJUJ91EOQQRuISZpXgPlqT9fYR2yBZQPu9UYok+wS19Rn4teXywF34LMcyw2AzE1s0ZRDtcI952/vQHg==", + "dev": true, + "requires": { + "enzyme-adapter-utils": "1.2.0", + "lodash": "4.17.4", + "object.assign": "4.0.4", + "object.values": "1.0.4", + "prop-types": "15.6.0", + "react-test-renderer": "16.2.0" + } + }, + "enzyme-adapter-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.2.0.tgz", + "integrity": "sha512-6CeIrmymLWoQgvH5m/ixJLaCsa6pSoWU2nlMeO0nHCZR8LQ+tKzP/jPh4qceTPlB4oFfyMRFeqr0+IryY4gAxg==", "dev": true, "requires": { - "cheerio": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "function.prototype.name": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", - "is-subset": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "object-is": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "object.assign": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", - "object.entries": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "object.values": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" + "lodash": "4.17.4", + "object.assign": "4.0.4", + "prop-types": "15.6.0" } }, "errno": { - "version": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "dev": true, "requires": { - "prr": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" + "prr": "0.0.0" } }, "error-ex": { - "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "is-arrayish": "0.2.1" } }, "es-abstract": { - "version": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", "dev": true, "requires": { - "es-to-primitive": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "is-regex": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" } }, "es-to-primitive": { - "version": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "is-date-object": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "is-symbol": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz" + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "es6-promise": { - "version": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", "dev": true }, "escape-html": { - "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, "escape-string-regexp": { - "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "escodegen": { - "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" }, "dependencies": { "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, "optional": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, "estraverse": { - "version": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", "dev": true }, "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "etag": { - "version": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "eventemitter3": { - "version": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", "dev": true }, "events": { - "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", "dev": true }, "exit-hook": { - "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", "dev": true }, "expand-braces": { - "version": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", "dev": true, "requires": { - "array-slice": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "braces": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz" + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" }, "dependencies": { "braces": { - "version": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz" + "expand-range": "0.1.1" } }, "expand-range": { - "version": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz" + "is-number": "0.1.1", + "repeat-string": "0.2.2" } }, "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", "dev": true }, "repeat-string": { - "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", "dev": true } } }, "expand-brackets": { - "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz" + "is-posix-bracket": "0.1.1" } }, "expand-range": { - "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" + "fill-range": "2.2.3" } }, "exports-loader": { - "version": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", "dev": true, "requires": { - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "loader-utils": "1.1.0", + "source-map": "0.5.7" }, "dependencies": { "loader-utils": { - "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" } } } }, "express": { - "version": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", - "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", - "dev": true, - "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "array-flatten": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "content-disposition": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "proxy-addr": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "serve-static": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "vary": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz" + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, "extglob": { - "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + "is-extglob": "1.0.0" } }, "extract-text-webpack-plugin": { - "version": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz", "integrity": "sha1-yVvzy6rEnclvHcbgclSfu2VMzSw=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "webpack-sources": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz" + "async": "1.5.2", + "loader-utils": "0.2.17", + "webpack-sources": "0.1.5" } }, "extract-zip": { - "version": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", "dev": true, "requires": { - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "yauzl": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz" + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" }, "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", - "dev": true - }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" } } } }, "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "fast-levenshtein": { - "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastparse": { - "version": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", "dev": true }, "fbjs": { - "version": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=", - "dev": true, - "requires": { - "core-js": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "isomorphic-fetch": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "promise": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "ua-parser-js": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz" + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "dev": true, + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } } }, "fd-slicer": { - "version": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + "pend": "1.2.0" } }, "filename-regex": { - "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { - "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "filled-array": { - "version": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz", "integrity": "sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q=", "dev": true }, "finalhandler": { - "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" } }, "find-up": { - "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flatten": { - "version": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", "dev": true }, "follow-redirects": { - "version": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "stream-consume": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz" + "debug": "2.6.9", + "stream-consume": "0.1.0" } }, "for-in": { - "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { - "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + "for-in": "1.0.2" } }, "foreach": { - "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz" + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" } }, "forwarded": { - "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, "fresh": { - "version": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "fs-access": { - "version": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "null-check": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz" + "null-check": "1.0.0" } }, "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" - } - }, - "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha1-MoK3E/s62A7eDp/PRhG1qm/AM/Q=", - "dev": true, - "optional": true, - "requires": { - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "node-pre-gyp": "0.6.36" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", - "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz" + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" } }, "function-bind": { - "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "function.prototype.name": { - "version": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", - "integrity": "sha1-AJmuVXLp3W8DyX0CP9krzF5jnqw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.0.3.tgz", + "integrity": "sha512-5EblxZUdioXi2JiMZ9FUbwYj40eQ9MFHyzFLBSPdlRl3SO8l7SLWuAnQ/at/1Wi4hjJwME/C5WpF2ZfAc8nGNw==", "dev": true, "requires": { - "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "is-callable": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz" + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "is-callable": "1.1.3" } }, "gauge": { @@ -3029,11 +2344,11 @@ "requires": { "aproba": "1.2.0", "console-control-strings": "1.1.0", - "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", "wide-align": "1.1.2" } }, @@ -3047,16 +2362,18 @@ } }, "generate-function": { - "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", "dev": true }, "generate-object-property": { - "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + "is-property": "1.0.2" } }, "get-caller-file": { @@ -3066,62 +2383,69 @@ "dev": true }, "get-stdin": { - "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "github": { - "version": "https://registry.npmjs.org/github/-/github-2.6.0.tgz", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/github/-/github-2.6.0.tgz", "integrity": "sha1-QM00FKWZ86Y+nRCiRrqFjRWzj8w=", "dev": true, "requires": { - "follow-redirects": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", - "https-proxy-agent": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + "follow-redirects": "0.0.7", + "https-proxy-agent": "1.0.0", + "mime": "1.4.1" } }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { - "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { - "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "is-glob": "2.0.1" } }, "globule": { @@ -3131,8 +2455,8 @@ "dev": true, "requires": { "glob": "7.1.2", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "lodash": "4.17.4", + "minimatch": "3.0.4" }, "dependencies": { "glob": { @@ -3141,251 +2465,301 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "got": { - "version": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", "dev": true, "requires": { - "create-error-class": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "is-redirect": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "is-retry-allowed": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "lowercase-keys": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "node-status-codes": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "timed-out": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", - "unzip-response": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "url-parse-lax": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" + "create-error-class": "3.0.2", + "duplexer2": "0.1.4", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "node-status-codes": "1.0.0", + "object-assign": "4.1.1", + "parse-json": "2.2.0", + "pinkie-promise": "2.0.1", + "read-all-stream": "3.1.0", + "readable-stream": "2.3.3", + "timed-out": "3.1.3", + "unzip-response": "1.0.2", + "url-parse-lax": "1.0.0" } }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "graceful-readlink": { - "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", "dev": true }, "growl": { - "version": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", "dev": true }, "handlebars": { - "version": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, "har-validator": { - "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "chalk": "1.1.3", + "commander": "2.12.2", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" } }, "has": { - "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" + "function-bind": "1.1.1" } }, "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "2.1.1" } }, "has-binary": { - "version": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", "dev": true, "requires": { - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "isarray": "0.0.1" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } } }, "has-cors": { - "version": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-unicode": { - "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "hasha": { - "version": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" } }, "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" } }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "hosted-git-info": { - "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "html-comment-regex": { - "version": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", "dev": true }, "htmlparser2": { - "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", "dev": true, "requires": { - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } } }, "http-proxy": { - "version": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, "requires": { - "eventemitter3": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "requires-port": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" } }, "http-proxy-agent": { - "version": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", "dev": true, "requires": { - "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" } }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" } }, "https-browserify": { - "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", "dev": true }, "https-proxy-agent": { - "version": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "dev": true, "requires": { - "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "3.0.1" } }, "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha1-I9hlaxaq5nQqwpcy6o8DNqR4nPI=", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "icss-replace-symbols": { - "version": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", "dev": true }, "ieee754": { - "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", "dev": true }, "imurmurhash": { - "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, @@ -3396,53 +2770,61 @@ "dev": true }, "indent-string": { - "version": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "repeating": "2.0.1" } }, "indexes-of": { - "version": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "indexof": { - "version": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "dev": true }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "interpret": { - "version": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", "dev": true }, "invariant": { - "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -3452,621 +2834,761 @@ "dev": true }, "ipaddr.js": { - "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", - "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "dev": true }, "is-absolute": { - "version": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "dev": true, "requires": { - "is-relative": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", - "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + "is-relative": "0.2.1", + "is-windows": "0.2.0" } }, "is-absolute-url": { - "version": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "dev": true }, "is-arrayish": { - "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { - "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz" + "binary-extensions": "1.11.0" } }, "is-buffer": { - "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { - "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "builtin-modules": "1.1.1" } }, "is-callable": { - "version": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", "dev": true }, "is-date-object": { - "version": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, "is-dotfile": { - "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { - "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + "is-primitive": "2.0.0" } }, "is-extendable": { - "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { - "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { - "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "number-is-nan": "1.0.1" } }, "is-glob": { - "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + "is-extglob": "1.0.0" } }, "is-my-json-valid": { - "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", "dev": true, "requires": { - "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" } }, "is-npm": { - "version": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true }, "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "kind-of": "3.2.2" } }, "is-obj": { - "version": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-plain-obj": { - "version": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-posix-bracket": { - "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { - "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-property": { - "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", "dev": true }, "is-redirect": { - "version": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, "is-regex": { - "version": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" + "has": "1.0.1" } }, "is-relative": { - "version": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "dev": true, "requires": { - "is-unc-path": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz" + "is-unc-path": "0.1.2" } }, "is-retry-allowed": { - "version": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", "dev": true }, "is-stream": { - "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-subset": { - "version": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", "dev": true }, "is-svg": { - "version": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz" + "html-comment-regex": "1.1.1" } }, "is-symbol": { - "version": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-unc-path": { - "version": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "dev": true, "requires": { - "unc-path-regex": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + "unc-path-regex": "0.1.2" } }, "is-utf8": { - "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { - "version": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", "dev": true }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isbinaryfile": { - "version": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", "dev": true }, "isexe": { - "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { - "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "isarray": "1.0.0" } }, "isomorphic-fetch": { - "version": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "dev": true, "requires": { - "node-fetch": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "whatwg-fetch": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz" + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" } }, "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "istanbul": { - "version": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "handlebars": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + "abbrev": "1.0.9", + "async": "1.5.2", + "escodegen": "1.8.1", + "esprima": "2.7.3", + "glob": "5.0.15", + "handlebars": "4.0.11", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "once": "1.4.0", + "resolve": "1.1.7", + "supports-color": "3.2.3", + "which": "1.3.0", + "wordwrap": "1.0.0" } }, "istanbul-instrumenter-loader": { - "version": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-0.2.0.tgz", "integrity": "sha1-ZD5OXk6PlGaGOimpd9KDqzcsAZw=", "dev": true, "requires": { - "istanbul": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "istanbul": "0.4.5", + "loader-utils": "0.2.17", + "object-assign": "4.1.1" } }, "js-base64": { - "version": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz", + "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA==", "dev": true }, "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { - "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + "argparse": "1.0.9", + "esprima": "2.7.3" } }, "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "jsesc": { - "version": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json3": { - "version": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", "dev": true }, "json5": { - "version": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "jsonfile": { - "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "graceful-fs": "4.1.11" } }, "jsonpointer": { - "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", "dev": true }, "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "karma": { - "version": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", - "integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=", - "dev": true, - "requires": { - "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "body-parser": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "combine-lists": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "connect": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "core-js": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "di": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "dom-serialize": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "expand-braces": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "http-proxy": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "isbinaryfile": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "log4js": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "qjobs": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "socket.io": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "useragent": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "body-parser": "1.18.2", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.5", + "core-js": "2.5.1", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.4.1", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.1.5", + "range-parser": "1.2.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "socket.io": "1.7.3", + "source-map": "0.5.7", + "tmp": "0.0.31", + "useragent": "2.2.1" }, "dependencies": { - "core-js": { - "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", - "dev": true - }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "karma-chrome-launcher": { - "version": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, "requires": { - "fs-access": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "fs-access": "1.0.1", + "which": "1.3.0" } }, "karma-coverage": { - "version": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz", "integrity": "sha1-Wv+LOc9plNwi3kyENix2ABtjfPY=", "dev": true, "requires": { - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "istanbul": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "dateformat": "1.0.12", + "istanbul": "0.4.5", + "lodash": "3.10.1", + "minimatch": "3.0.4", + "source-map": "0.5.7" }, "dependencies": { "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "karma-coveralls": { - "version": "https://registry.npmjs.org/karma-coveralls/-/karma-coveralls-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-coveralls/-/karma-coveralls-1.1.2.tgz", "integrity": "sha1-b5YO5zh5Owh7qZKEqFTva+TTKuA=", "dev": true, "requires": { - "coveralls": "https://registry.npmjs.org/coveralls/-/coveralls-2.11.16.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + "coveralls": "2.11.16", + "glob": "5.0.15" } }, "karma-detect-browsers": { - "version": "https://registry.npmjs.org/karma-detect-browsers/-/karma-detect-browsers-2.2.5.tgz", - "integrity": "sha1-d/b82sUm8Cu2iGCE7wMiXnIKqH4=", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/karma-detect-browsers/-/karma-detect-browsers-2.2.6.tgz", + "integrity": "sha512-nJ9ZhsIf72FJN1bt+pk1JmVf9TcEzsMNe61K42gGhAhJRS+5dTpwz/R26TiCai/2o84ti4jOMb0jdhAuVbUmJQ==", "dev": true, "requires": { - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "which": "1.3.0" } }, "karma-firefox-launcher": { - "version": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.0.1.tgz", "integrity": "sha1-zlj0fCATqIFW1VpdYTN8CZz1u1E=", "dev": true }, "karma-ie-launcher": { - "version": "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz", "integrity": "sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw=", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "lodash": "4.17.4" } }, "karma-mocha": { - "version": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz", "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "minimist": "1.2.0" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "karma-mocha-reporter": { - "version": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.3.tgz", - "integrity": "sha1-BP3aRaHZaXpzhxx0ciI8WBcBqyA=", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", + "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + "chalk": "2.3.0", + "log-symbols": "2.1.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } } }, "karma-opera-launcher": { - "version": "https://registry.npmjs.org/karma-opera-launcher/-/karma-opera-launcher-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-opera-launcher/-/karma-opera-launcher-1.0.0.tgz", "integrity": "sha1-+lFihTGh0L6EstjcDX7iCfyP+Ro=", "dev": true }, "karma-phantomjs-launcher": { - "version": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "phantomjs-prebuilt": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz" + "lodash": "4.17.4", + "phantomjs-prebuilt": "2.1.16" } }, "karma-safari-launcher": { - "version": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz", "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=", "dev": true }, "karma-sourcemap-loader": { - "version": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "graceful-fs": "4.1.11" } }, "karma-webpack": { - "version": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.1.tgz", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-1.8.1.tgz", "integrity": "sha1-OdX9Lt7qPMPvW0BZibN9Ww5qO04=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "webpack-dev-middleware": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz" + "async": "0.9.2", + "loader-utils": "0.2.17", + "lodash": "3.10.1", + "source-map": "0.1.43", + "webpack-dev-middleware": "1.12.2" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "kew": { - "version": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", "dev": true }, "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } }, "klaw": { - "version": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "graceful-fs": "4.1.11" } }, "latest-version": { - "version": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz", "integrity": "sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=", "dev": true, "requires": { - "package-json": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz" + "package-json": "2.4.0" } }, "lazy-cache": { - "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, "lazy-req": { - "version": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=", "dev": true }, "lazystream": { - "version": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "readable-stream": "2.3.3" } }, "lcid": { @@ -4079,102 +3601,117 @@ } }, "lcov-parse": { - "version": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, "levn": { - "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "line-reader": { - "version": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", "integrity": "sha1-xDkrWH3qOFgMlnhXDm6OSfzlJiI=", "dev": true }, "listify": { - "version": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz", "integrity": "sha1-A8p7otFQ1CZ3c/dOV1WNEFPSvuM=", "dev": true }, "load-json-file": { - "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "loader-utils": { - "version": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "emojis-list": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "json5": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" } }, "lockfile": { - "version": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz", "integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=", "dev": true }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "lodash._baseassign": { - "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" } }, "lodash._basecopy": { - "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", "dev": true }, "lodash._basecreate": { - "version": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", "dev": true }, "lodash._createcompounder": { - "version": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=", "dev": true, "requires": { - "lodash.deburr": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", - "lodash.words": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz" + "lodash.deburr": "3.2.0", + "lodash.words": "3.2.0" } }, "lodash._getnative": { - "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", "dev": true }, "lodash._isiterateecall": { - "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", "dev": true }, "lodash._root": { - "version": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", "dev": true }, @@ -4184,22 +3721,13 @@ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", "dev": true }, - "lodash.assignin": { - "version": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=", - "dev": true - }, - "lodash.bind": { - "version": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=", - "dev": true - }, "lodash.camelcase": { - "version": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=", "dev": true, "requires": { - "lodash._createcompounder": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz" + "lodash._createcompounder": "3.0.0" } }, "lodash.clonedeep": { @@ -4209,419 +3737,475 @@ "dev": true }, "lodash.create": { - "version": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "lodash._basecreate": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", - "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + "lodash._baseassign": "3.2.0", + "lodash._basecreate": "3.0.3", + "lodash._isiterateecall": "3.0.9" } }, "lodash.deburr": { - "version": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=", "dev": true, "requires": { - "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" + "lodash._root": "3.0.1" } }, - "lodash.defaults": { - "version": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.filter": { - "version": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=", - "dev": true - }, - "lodash.flatten": { - "version": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.foreach": { - "version": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, "lodash.isarguments": { - "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, "lodash.isarray": { - "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, "lodash.keys": { - "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" } }, - "lodash.map": { - "version": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", - "dev": true - }, "lodash.memoize": { - "version": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.merge": { - "version": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", - "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=", - "dev": true - }, "lodash.mergewith": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", "dev": true }, - "lodash.pick": { - "version": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.reduce": { - "version": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=", - "dev": true - }, - "lodash.reject": { - "version": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=", - "dev": true - }, - "lodash.some": { - "version": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, "lodash.uniq": { - "version": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, "lodash.words": { - "version": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=", "dev": true, "requires": { - "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" + "lodash._root": "3.0.1" } }, "log-driver": { - "version": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", "dev": true }, + "log-symbols": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz", + "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", + "dev": true, + "requires": { + "chalk": "2.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, "log-update": { - "version": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "dev": true, "requires": { - "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz" + "ansi-escapes": "1.4.0", + "cli-cursor": "1.0.2" } }, "log4js": { - "version": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" + "readable-stream": "1.0.34", + "semver": "4.3.6" }, "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", "dev": true }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, "longest": { - "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { - "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + "js-tokens": "3.0.2" } }, "loud-rejection": { - "version": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lowercase-keys": { - "version": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", "dev": true }, "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", "dev": true }, "macaddress": { - "version": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", "dev": true }, "make-error": { - "version": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", "dev": true }, "make-error-cause": { - "version": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", "dev": true, "requires": { - "make-error": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz" + "make-error": "1.3.0" } }, "map-obj": { - "version": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "math-expression-evaluator": { - "version": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "memory-fs": { - "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "errno": "0.1.4", + "readable-stream": "2.3.3" } }, "meow": { - "version": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "loud-rejection": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "redent": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "trim-newlines": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "merge-descriptors": { - "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "methods": { - "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, "micromatch": { - "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, "mime-db": { - "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", "dev": true }, "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz" + "mime-db": "1.30.0" } }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" + "brace-expansion": "1.1.8" } }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "minimist": "0.0.8" } }, "mocha": { - "version": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz", - "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=", - "dev": true, - "requires": { - "browser-stdout": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "growl": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "lodash.create": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.8", + "diff": "3.2.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.1", + "growl": "1.9.2", + "he": "1.1.1", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" }, "dependencies": { "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + "graceful-readlink": "1.0.1" } }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", - "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "2.0.0" } }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + "has-flag": "1.0.0" } } } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nan": { - "version": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", "dev": true }, + "nearley": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.11.0.tgz", + "integrity": "sha512-clqqhEuP0ZCJQ85Xv2I/4o2Gs/fvSR6fCg5ZHVE2c8evWyNk2G++ih4JOO3lMb/k/09x6ihQ2nzKUlB/APCWjg==", + "dev": true, + "requires": { + "nomnom": "1.6.2", + "railroad-diagrams": "1.0.0", + "randexp": "0.4.6" + } + }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, "node-fetch": { - "version": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "integrity": "sha1-iZyz0KPJL5UsR/G4dvTIrqvUANU=", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "dev": true, "requires": { - "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "encoding": "0.1.12", + "is-stream": "1.1.0" } }, "node-gyp": { @@ -4632,17 +4216,17 @@ "requires": { "fstream": "1.0.11", "glob": "7.1.2", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", "npmlog": "4.1.2", - "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "osenv": "0.1.4", + "request": "2.79.0", + "rimraf": "2.6.2", "semver": "5.3.0", "tar": "2.2.1", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "which": "1.3.0" }, "dependencies": { "glob": { @@ -4651,12 +4235,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "semver": { @@ -4668,37 +4252,39 @@ } }, "node-libs-browser": { - "version": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", "dev": true, "requires": { - "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", - "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "stream-http": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" }, "dependencies": { "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } @@ -4711,21 +4297,21 @@ "dev": true, "requires": { "async-foreach": "0.1.3", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "chalk": "1.1.3", "cross-spawn": "3.0.1", "gaze": "1.1.2", - "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "get-stdin": "4.0.1", "glob": "7.1.2", "in-publish": "2.0.0", "lodash.assign": "4.2.0", "lodash.clonedeep": "4.5.0", "lodash.mergewith": "4.6.0", - "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "nan": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.8.0", "node-gyp": "3.6.2", "npmlog": "4.1.2", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "request": "2.79.0", "sass-graph": "2.2.4", "stdout-stream": "1.4.0", "true-case-path": "1.0.2" @@ -4737,62 +4323,86 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "node-status-codes": { - "version": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=", "dev": true }, + "nomnom": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", + "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", + "dev": true, + "requires": { + "colors": "0.5.1", + "underscore": "1.4.4" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "dev": true + } + } + }, "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + "abbrev": "1.0.9" } }, "normalize-package-data": { - "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" } }, "normalize-path": { - "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz" + "remove-trailing-separator": "1.1.0" } }, "normalize-range": { - "version": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-url": { - "version": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "query-string": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "sort-keys": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" } }, "npmlog": { @@ -4808,164 +4418,195 @@ } }, "nth-check": { - "version": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + "boolbase": "1.0.0" } }, "null-check": { - "version": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", "dev": true }, "num2fraction": { - "version": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { - "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-component": { - "version": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", "dev": true }, "object-is": { - "version": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", "dev": true }, "object-keys": { - "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, "object.assign": { - "version": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", "dev": true, "requires": { - "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "object-keys": "1.0.11" } }, "object.entries": { - "version": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "dev": true, "requires": { - "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" } }, "object.omit": { - "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { - "version": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz", - "integrity": "sha1-tTkr7peC2m2ft9avr1OXefEjTCs=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "object.values": { - "version": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", "dev": true, "requires": { - "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "es-abstract": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" + "define-properties": "1.1.2", + "es-abstract": "1.10.0", + "function-bind": "1.1.1", + "has": "1.0.1" } }, "on-finished": { - "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "requires": { - "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "ee-first": "1.1.1" } }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "wrappy": "1.0.2" } }, "onetime": { - "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + "minimist": "0.0.8", + "wordwrap": "0.0.3" }, "dependencies": { "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true } } }, "optionator": { - "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "options": { - "version": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", "dev": true }, "os-browserify": { - "version": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", "dev": true }, "os-homedir": { - "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, @@ -4979,768 +4620,1048 @@ } }, "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { - "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "package-json": { - "version": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz", "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=", "dev": true, "requires": { - "got": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", - "registry-auth-token": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", - "registry-url": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" + "got": "5.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.4.1" } }, "pako": { - "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, "parse-glob": { - "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { - "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz" + "error-ex": "1.3.1" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "8.0.53" } }, "parsejson": { - "version": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseqs": { - "version": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseuri": { - "version": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + "better-assert": "1.0.2" } }, "parseurl": { - "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, "path-browserify": { - "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, "path-exists": { - "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-to-regexp": { - "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "path-type": { - "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pbkdf2-compat": { - "version": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", "dev": true }, "pend": { - "version": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "phantomjs-polyfill-object-assign": { - "version": "https://registry.npmjs.org/phantomjs-polyfill-object-assign/-/phantomjs-polyfill-object-assign-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/phantomjs-polyfill-object-assign/-/phantomjs-polyfill-object-assign-0.0.2.tgz", "integrity": "sha1-gymlx/eeAiUvp+/Da27QVdaC7ZE=", "dev": true }, - "phantomjs-prebuilt": { - "version": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", - "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", - "dev": true, - "requires": { - "es6-promise": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "extract-zip": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "hasha": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "kew": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "request-progress": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "4.1.1", + "extract-zip": "1.6.6", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.83.0", + "request-progress": "2.0.1", + "which": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.0", + "har-schema": "2.0.0" + } + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } } }, "pify": { - "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { - "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "pinkie": "2.0.4" } }, "popsicle": { - "version": "https://registry.npmjs.org/popsicle/-/popsicle-8.2.0.tgz", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/popsicle/-/popsicle-8.2.0.tgz", "integrity": "sha1-/0QBAFyrQ6lBipFBBhHAAZdxLSE=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "make-error-cause": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "throwback": "https://registry.npmjs.org/throwback/-/throwback-1.1.1.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "any-promise": "1.3.0", + "arrify": "1.0.1", + "concat-stream": "1.6.0", + "form-data": "2.1.4", + "make-error-cause": "1.2.2", + "throwback": "1.1.1", + "tough-cookie": "2.3.3", + "xtend": "4.0.1" } }, "popsicle-proxy-agent": { - "version": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz", "integrity": "sha1-uRM8VdlFdZq37mG3cRNkYg066tw=", "dev": true, "requires": { - "http-proxy-agent": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", - "https-proxy-agent": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz" + "http-proxy-agent": "1.0.0", + "https-proxy-agent": "1.0.0" } }, "popsicle-retry": { - "version": "https://registry.npmjs.org/popsicle-retry/-/popsicle-retry-3.2.1.tgz", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/popsicle-retry/-/popsicle-retry-3.2.1.tgz", "integrity": "sha1-4G6GZTO0KnoSPrMwy+Y6fOvLoQw=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "any-promise": "1.3.0", + "xtend": "4.0.1" } }, "popsicle-rewrite": { - "version": "https://registry.npmjs.org/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz", "integrity": "sha1-HdTo6pwxgjUfuCD4eTTZkvf7kAc=", "dev": true }, "popsicle-status": { - "version": "https://registry.npmjs.org/popsicle-status/-/popsicle-status-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/popsicle-status/-/popsicle-status-2.0.1.tgz", "integrity": "sha1-jdcMT+fGlBCa3XhP/oDqysHnso0=", "dev": true }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + "chalk": "1.1.3", + "js-base64": "2.4.0", + "source-map": "0.5.7", + "supports-color": "3.2.3" } }, "postcss-calc": { - "version": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-message-helpers": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "reduce-css-calc": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz" + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" } }, "postcss-colormin": { - "version": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-convert-values": { - "version": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-discard-comments": { - "version": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-discard-duplicates": { - "version": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-discard-empty": { - "version": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-discard-overridden": { - "version": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-discard-unused": { - "version": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "postcss": "5.2.18", + "uniqs": "2.0.0" } }, "postcss-filter-plugins": { - "version": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "uniqid": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz" + "postcss": "5.2.18", + "uniqid": "4.1.1" } }, "postcss-merge-idents": { - "version": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-merge-longhand": { - "version": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-merge-rules": { - "version": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "caniuse-api": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-selector-parser": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "vendors": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz" + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" } }, "postcss-message-helpers": { - "version": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", "dev": true }, "postcss-minify-font-values": { - "version": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-minify-gradients": { - "version": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-minify-params": { - "version": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" } }, "postcss-minify-selectors": { - "version": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-selector-parser": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz" + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" } }, "postcss-modules-extract-imports": { - "version": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz" + "postcss": "6.0.14" }, "dependencies": { "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "color-convert": "1.9.1" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "integrity": "sha1-iQZ6nOixH4qEy8URfvwwQZoIV7M=", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "has-flag": "2.0.0" } } } }, "postcss-modules-local-by-default": { - "version": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { - "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz" + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" }, "dependencies": { "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "color-convert": "1.9.1" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, "css-selector-tokenizer": { - "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz" + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" } }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "integrity": "sha1-iQZ6nOixH4qEy8URfvwwQZoIV7M=", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "has-flag": "2.0.0" } } } }, "postcss-modules-scope": { - "version": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "css-selector-tokenizer": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz" + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" }, "dependencies": { "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "color-convert": "1.9.1" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, "css-selector-tokenizer": { - "version": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "fastparse": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "regexpu-core": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz" + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" } }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "integrity": "sha1-iQZ6nOixH4qEy8URfvwwQZoIV7M=", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "has-flag": "2.0.0" } } } }, "postcss-modules-values": { - "version": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, "requires": { - "icss-replace-symbols": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz" + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.14" }, "dependencies": { "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "color-convert": "1.9.1" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "integrity": "sha1-iQZ6nOixH4qEy8URfvwwQZoIV7M=", + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", "dev": true, "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "has-flag": "2.0.0" } } } }, "postcss-normalize-charset": { - "version": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-normalize-url": { - "version": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "normalize-url": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-ordered-values": { - "version": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-reduce-idents": { - "version": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-reduce-initial": { - "version": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz" + "postcss": "5.2.18" } }, "postcss-reduce-transforms": { - "version": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" } }, "postcss-selector-parser": { - "version": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "indexes-of": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "uniq": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" } }, "postcss-svgo": { - "version": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "svgo": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz" + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" } }, "postcss-unique-selectors": { - "version": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" } }, "postcss-value-parser": { - "version": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, "postcss-zindex": { - "version": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "uniqs": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" } }, "prelude-ls": { - "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "prepend-http": { - "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "preserve": { - "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "process": { - "version": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "progress": { - "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", "dev": true }, "promise": { - "version": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, "requires": { - "asap": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "asap": "2.0.6" } }, "promise-finally": { - "version": "https://registry.npmjs.org/promise-finally/-/promise-finally-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/promise-finally/-/promise-finally-2.2.1.tgz", "integrity": "sha1-ImFsS6kCkW6Yi9RsVNfKoIkQzXc=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + "any-promise": "1.3.0" } }, "prop-types": { - "version": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", - "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "dev": true, "requires": { - "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" } }, "proxy-addr": { - "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "dev": true, "requires": { - "forwarded": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "ipaddr.js": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz" + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" } }, "prr": { - "version": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", "dev": true }, @@ -5751,346 +5672,414 @@ "dev": true }, "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "q": { - "version": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "qjobs": { - "version": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", "dev": true }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, "query-string": { - "version": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "strict-uri-encode": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "querystring": { - "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { - "version": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", + "dev": true, + "requires": { + "performance-now": "2.1.0" + } + }, + "railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", + "dev": true + }, + "randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "requires": { + "discontinuous-range": "1.0.0", + "ret": "0.1.15" + } + }, "randomatic": { - "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { - "version": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } } } }, "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + "is-buffer": "1.1.6" } } } }, "range-parser": { - "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", "dev": true }, "raw-body": { - "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", "dev": true, "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "dependencies": { - "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true - } + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" } }, "rc": { - "version": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", "dev": true, "requires": { - "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "react": { - "version": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", - "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", + "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", "dev": true, "requires": { - "create-react-class": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", - "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz" + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" } }, - "react-addons-test-utils": { - "version": "https://registry.npmjs.org/react-addons-test-utils/-/react-addons-test-utils-15.6.0.tgz", - "integrity": "sha1-Bi02EX/o0Y87peBuszODsLhepbk=", - "dev": true - }, "react-dom": { - "version": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", - "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz", + "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", "dev": true, "requires": { - "fbjs": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz", - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "prop-types": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz" + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-test-renderer": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", + "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "object-assign": "4.1.1", + "prop-types": "15.6.0" } }, "read-all-stream": { - "version": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", "dev": true, "requires": { - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "pinkie-promise": "2.0.1", + "readable-stream": "2.3.3" } }, "read-pkg": { - "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "path-type": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { - "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "readdirp": { - "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "set-immediate-shim": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" } }, "redent": { - "version": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "strip-indent": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "reduce-css-calc": { - "version": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "math-expression-evaluator": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "reduce-function-call": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz" + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" } }, "reduce-function-call": { - "version": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" + "balanced-match": "0.4.2" } }, "regenerate": { - "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, "regex-cache": { - "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + "is-equal-shallow": "0.1.3" } }, "regexpu-core": { - "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "regjsgen": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "regjsparser": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { - "version": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", "dev": true, "requires": { - "rc": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "rc": "1.2.2", + "safe-buffer": "5.1.1" } }, "registry-url": { - "version": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz" + "rc": "1.2.2" } }, "regjsgen": { - "version": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "regjsparser": { - "version": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "jsesc": "0.5.0" } }, "remove-trailing-separator": { - "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { - "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { - "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { - "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" + "is-finite": "1.0.2" } }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.4.3", + "uuid": "3.1.0" }, "dependencies": { "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", "dev": true } } }, "request-progress": { - "version": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz" + "throttleit": "1.0.0" } }, "require-directory": { @@ -6106,63 +6095,87 @@ "dev": true }, "requires-port": { - "version": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, "resolve": { - "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, "restore-cursor": { - "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" + "exit-hook": "1.1.1", + "onetime": "1.1.0" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "right-align": { - "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "requires": { - "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" + "align-text": "0.1.4" } }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" + "glob": "7.1.2" }, "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "ripemd160": { - "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", "dev": true }, + "rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "dev": true, + "requires": { + "lodash.flattendeep": "4.4.0", + "nearley": "2.11.0" + } + }, "safe-buffer": { - "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "sass-graph": { @@ -6172,7 +6185,7 @@ "dev": true, "requires": { "glob": "7.1.2", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "lodash": "4.17.4", "scss-tokenizer": "0.2.3", "yargs": "7.1.0" }, @@ -6189,8 +6202,8 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", "wrap-ansi": "2.1.0" } }, @@ -6200,12 +6213,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "yargs": { @@ -6216,14 +6229,14 @@ "requires": { "camelcase": "3.0.0", "cliui": "3.2.0", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "decamelize": "1.2.0", "get-caller-file": "1.0.2", "os-locale": "1.4.0", - "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "read-pkg-up": "1.0.1", "require-directory": "2.1.1", "require-main-filename": "1.0.1", "set-blocking": "2.0.0", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "string-width": "1.0.2", "which-module": "1.0.0", "y18n": "3.2.1", "yargs-parser": "5.0.0" @@ -6232,28 +6245,31 @@ } }, "sass-loader": { - "version": "https://registry.npmjs.org/sass-loader/-/sass-loader-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-4.1.1.tgz", "integrity": "sha1-ee+UaM8L9kbClSnh8sumvW5Rx7w=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "async": "2.6.0", + "loader-utils": "0.2.17", + "object-assign": "4.1.1" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha1-hDGQ/WtzV6C54clW7d3V7IRitU0=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "lodash": "4.17.4" } } } }, "sax": { - "version": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "scss-tokenizer": { @@ -6262,7 +6278,7 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "js-base64": "2.4.0", "source-map": "0.4.4" }, "dependencies": { @@ -6272,53 +6288,57 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "semver-diff": { - "version": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" + "semver": "5.4.1" } }, "send": { - "version": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", - "dev": true, - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "destroy": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" } }, "serve-static": { - "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", - "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "dev": true, "requires": { - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.15.3.tgz" + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" } }, "set-blocking": { @@ -6328,265 +6348,301 @@ "dev": true }, "set-immediate-shim": { - "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, "setimmediate": { - "version": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "sha.js": { - "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", "dev": true }, "signal-exit": { - "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slice-ansi": { - "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", "dev": true }, "slide": { - "version": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.16.3" } }, "socket.io": { - "version": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "socket.io-adapter": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "socket.io-client": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz" + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", "dev": true } } }, "socket.io-adapter": { - "version": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz" + "debug": "2.3.3", + "socket.io-parser": "2.3.1" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "socket.io-client": { - "version": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", "dev": true, "requires": { - "backo2": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "component-bind": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "engine.io-client": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "has-binary": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "object-component": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "parseuri": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "socket.io-parser": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "to-array": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz" + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" }, "dependencies": { "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" + "ms": "0.7.2" } }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } } }, "socket.io-parser": { - "version": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", "dev": true, "requires": { - "component-emitter": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" }, "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "dev": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + "ms": "0.7.1" } }, "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true } } }, "sort-keys": { - "version": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + "is-plain-obj": "1.1.0" } }, "source-list-map": { - "version": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", "dev": true }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-loader": { - "version": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.1.6.tgz", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.1.6.tgz", "integrity": "sha1-wJkD2m1zueU7ftjuUkVZcFHpjpE=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + "async": "0.9.2", + "loader-utils": "0.2.17", + "source-map": "0.1.43" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "spdx-correct": { - "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { - "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { - "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "sprintf-js": { - "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true } } }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", "dev": true }, @@ -6596,121 +6652,136 @@ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "readable-stream": "2.3.3" } }, "stream-browserify": { - "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "inherits": "2.0.3", + "readable-stream": "2.3.3" } }, "stream-consume": { - "version": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", "dev": true }, "stream-http": { - "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "dev": true, "requires": { - "builtin-status-codes": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "to-arraybuffer": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "strict-uri-encode": { - "version": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, "string-template": { - "version": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=", "dev": true }, "string-width": { - "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "safe-buffer": "5.1.1" } }, "stringstream": { - "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true }, "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "ansi-regex": "2.1.1" } }, "strip-bom": { - "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "is-utf8": "0.2.1" } }, "strip-indent": { - "version": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + "get-stdin": "4.0.1" } }, "strip-json-comments": { - "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + "has-flag": "1.0.0" } }, "svgo": { - "version": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "csso": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "sax": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "whet.extend": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" } }, "tapable": { - "version": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", "dev": true }, @@ -6722,105 +6793,125 @@ "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "inherits": "2.0.3" } }, "tar-stream": { - "version": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", - "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "dev": true, "requires": { - "bl": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.3", + "xtend": "4.0.1" } }, "thenify": { - "version": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + "any-promise": "1.3.0" } }, "throat": { - "version": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", - "integrity": "sha1-UMsGcO28QCN7njR9fh+I5GIK+DY=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", + "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==", "dev": true }, "throttleit": { - "version": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", "dev": true }, "throwback": { - "version": "https://registry.npmjs.org/throwback/-/throwback-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/throwback/-/throwback-1.1.1.tgz", "integrity": "sha1-8AfnwXYEptFtegfEGqDo/txhhKQ=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + "any-promise": "1.3.0" } }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", + "dev": true + }, "timed-out": { - "version": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=", "dev": true }, "timers-browserify": { - "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", "dev": true, "requires": { - "setimmediate": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + "setimmediate": "1.0.5" } }, "tmp": { - "version": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", "dev": true, "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "os-tmpdir": "1.0.2" } }, "to-array": { - "version": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, "to-arraybuffer": { - "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "touch": { - "version": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", "integrity": "sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4=", "dev": true, "requires": { - "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + "nopt": "1.0.10" }, "dependencies": { "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + "abbrev": "1.0.9" } } } }, "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "punycode": "1.4.1" } }, "trim-newlines": { - "version": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, @@ -6839,410 +6930,474 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } } } }, "ts-loader": { - "version": "https://registry.npmjs.org/ts-loader/-/ts-loader-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-0.8.2.tgz", "integrity": "sha1-czEpbRPVsxBc2QXOvKORQ+7SslU=", "dev": true, "requires": { - "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "enhanced-resolve": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" + "arrify": "1.0.1", + "colors": "1.1.2", + "enhanced-resolve": "0.9.1", + "loader-utils": "0.2.17", + "object-assign": "2.1.1", + "semver": "5.4.1" }, "dependencies": { "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", "dev": true } } }, "tty-browserify": { - "version": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", "dev": true }, "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "type-check": { - "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "prelude-ls": "1.1.2" } }, "type-detect": { - "version": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", "dev": true }, "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "dev": true, "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz" + "media-typer": "0.3.0", + "mime-types": "2.1.17" } }, "typedarray": { - "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typescript": { - "version": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz", + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-1.8.10.tgz", "integrity": "sha1-tHXW4N/wv1DyluXKbvn7tccyDx4=", "dev": true }, "typings": { - "version": "https://registry.npmjs.org/typings/-/typings-1.5.0.tgz", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/typings/-/typings-1.5.0.tgz", "integrity": "sha1-udI2zx03RghU+MZx6kldlAW4ED8=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "archy": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "cli-truncate": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "columnify": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "elegant-spinner": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "listify": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz", - "log-update": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "promise-finally": "https://registry.npmjs.org/promise-finally/-/promise-finally-2.2.1.tgz", - "typings-core": "https://registry.npmjs.org/typings-core/-/typings-core-1.6.1.tgz", - "update-notifier": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "any-promise": "1.3.0", + "archy": "1.0.0", + "bluebird": "3.5.1", + "chalk": "1.1.3", + "cli-truncate": "0.2.1", + "columnify": "1.5.4", + "elegant-spinner": "1.0.1", + "has-unicode": "2.0.1", + "listify": "1.0.0", + "log-update": "1.0.2", + "minimist": "1.2.0", + "promise-finally": "2.2.1", + "typings-core": "1.6.1", + "update-notifier": "1.0.3", + "wordwrap": "1.0.0", + "xtend": "4.0.1" }, "dependencies": { "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "typings-core": { - "version": "https://registry.npmjs.org/typings-core/-/typings-core-1.6.1.tgz", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/typings-core/-/typings-core-1.6.1.tgz", "integrity": "sha1-zkspMeovGbuPPay+xpmDrE6WSjc=", "dev": true, "requires": { - "any-promise": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "configstore": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "detect-indent": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "is-absolute": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "listify": "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz", - "lockfile": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz", - "make-error-cause": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz", - "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "popsicle": "https://registry.npmjs.org/popsicle/-/popsicle-8.2.0.tgz", - "popsicle-proxy-agent": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz", - "popsicle-retry": "https://registry.npmjs.org/popsicle-retry/-/popsicle-retry-3.2.1.tgz", - "popsicle-rewrite": "https://registry.npmjs.org/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz", - "popsicle-status": "https://registry.npmjs.org/popsicle-status/-/popsicle-status-2.0.1.tgz", - "promise-finally": "https://registry.npmjs.org/promise-finally/-/promise-finally-2.2.1.tgz", - "rc": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "sort-keys": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "string-template": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", - "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "thenify": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", - "throat": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", - "touch": "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz", - "typescript": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "zip-object": "https://registry.npmjs.org/zip-object/-/zip-object-0.1.0.tgz" + "any-promise": "1.3.0", + "array-uniq": "1.0.3", + "configstore": "2.1.0", + "debug": "2.6.9", + "detect-indent": "4.0.0", + "graceful-fs": "4.1.11", + "has": "1.0.1", + "invariant": "2.2.2", + "is-absolute": "0.2.6", + "listify": "1.0.0", + "lockfile": "1.0.3", + "make-error-cause": "1.2.2", + "mkdirp": "0.5.1", + "object.pick": "1.3.0", + "parse-json": "2.2.0", + "popsicle": "8.2.0", + "popsicle-proxy-agent": "3.0.0", + "popsicle-retry": "3.2.1", + "popsicle-rewrite": "1.0.0", + "popsicle-status": "2.0.1", + "promise-finally": "2.2.1", + "rc": "1.2.2", + "rimraf": "2.6.2", + "sort-keys": "1.1.2", + "string-template": "1.0.0", + "strip-bom": "2.0.0", + "thenify": "3.3.0", + "throat": "3.2.0", + "touch": "1.0.0", + "typescript": "2.6.2", + "xtend": "4.0.1", + "zip-object": "0.1.0" }, "dependencies": { "typescript": { - "version": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", - "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", + "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", "dev": true } } }, "ua-parser-js": { - "version": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz", - "integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o=", + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", "dev": true }, "uglify-js": { - "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" } }, "uglify-to-browserify": { - "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true }, "ultron": { - "version": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", "dev": true }, "unc-path-regex": { - "version": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true + }, "uniq": { - "version": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "uniqid": { - "version": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", "dev": true, "requires": { - "macaddress": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz" + "macaddress": "0.2.8" } }, "uniqs": { - "version": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unzip-response": { - "version": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", "dev": true }, "update-notifier": { - "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", "integrity": "sha1-j5LFFUgr1oMbfJMBPnD4dVLHz1o=", "dev": true, "requires": { - "boxen": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "configstore": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", - "is-npm": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "latest-version": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz", - "lazy-req": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", - "semver-diff": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz" + "boxen": "0.6.0", + "chalk": "1.1.3", + "configstore": "2.1.0", + "is-npm": "1.0.0", + "latest-version": "2.0.0", + "lazy-req": "1.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "2.0.0" } }, "url": { - "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, "url-parse-lax": { - "version": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + "prepend-http": "1.0.4" } }, "useragent": { - "version": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", "dev": true, "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz" + "lru-cache": "2.2.4", + "tmp": "0.0.31" } }, "util": { - "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "inherits": "2.0.1" }, "dependencies": { "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true } } }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, "validate-npm-package-license": { - "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" } }, "vary": { - "version": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "vendors": { - "version": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", "dev": true }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "vm-browserify": { - "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { - "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + "indexof": "0.0.1" } }, "void-elements": { - "version": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, "walkdir": { - "version": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", "dev": true }, "watchpack": { - "version": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true } } }, "wcwidth": { - "version": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "defaults": "1.0.3" } }, "webpack": { - "version": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", "dev": true, "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "enhanced-resolve": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "interpret": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "loader-utils": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "memory-fs": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "node-libs-browser": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "tapable": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "watchpack": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "webpack-core": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz" + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.3", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.7.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" }, "dependencies": { "memory-fs": { - "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", "dev": true, "requires": { - "errno": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "errno": "0.1.4", + "readable-stream": "2.3.3" } }, "uglify-js": { - "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", "dev": true, "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", "dev": true } @@ -7251,78 +7406,97 @@ } }, "webpack-archive-plugin": { - "version": "https://registry.npmjs.org/webpack-archive-plugin/-/webpack-archive-plugin-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-archive-plugin/-/webpack-archive-plugin-2.0.0.tgz", "integrity": "sha1-YLahC8dqqbCp/+wFprF27NtXp/0=", "dev": true, "requires": { - "archiver": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz" + "archiver": "1.3.0" } }, "webpack-core": { - "version": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { - "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + "source-list-map": "0.1.8", + "source-map": "0.4.4" }, "dependencies": { "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, "webpack-dev-middleware": { - "version": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", - "integrity": "sha1-CWkdCXOjCtH4Ksc6EuIIfwpHVPk=", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "dev": true, "requires": { - "memory-fs": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + "memory-fs": "0.4.1", + "mime": "1.6.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } } }, "webpack-fail-plugin": { - "version": "https://registry.npmjs.org/webpack-fail-plugin/-/webpack-fail-plugin-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/webpack-fail-plugin/-/webpack-fail-plugin-1.0.6.tgz", "integrity": "sha1-oTXuBwolhUiDf5IdRSAExpWInuc=", "dev": true }, "webpack-node-externals": { - "version": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.6.0.tgz", "integrity": "sha1-Iyxi7GCSsQBjWj0p2DwXRxKN+b0=", "dev": true }, "webpack-sources": { - "version": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz", "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=", "dev": true, "requires": { - "source-list-map": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "source-list-map": "0.1.8", + "source-map": "0.5.7" } }, "whatwg-fetch": { - "version": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", "dev": true }, "whet.extend": { - "version": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", "dev": true }, "which": { - "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "isexe": "2.0.0" } }, "which-module": { @@ -7337,24 +7511,27 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "string-width": "1.0.2" } }, "widest-line": { - "version": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "string-width": "1.0.2" } }, "window-size": { - "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true }, "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, @@ -7364,54 +7541,61 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" } }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { - "version": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "ws": { - "version": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", "dev": true, "requires": { - "options": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "ultron": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" + "options": "0.0.6", + "ultron": "1.0.2" } }, "wtf-8": { - "version": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", "dev": true }, "xdg-basedir": { - "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "os-homedir": "1.0.2" } }, "xmlhttprequest-ssl": { - "version": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", "dev": true }, "xtend": { - "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, @@ -7428,14 +7612,15 @@ "dev": true }, "yargs": { - "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" } }, "yargs-parser": { @@ -7456,32 +7641,36 @@ } }, "yauzl": { - "version": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" + "fd-slicer": "1.0.1" } }, "yeast": { - "version": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true }, "zip-object": { - "version": "https://registry.npmjs.org/zip-object/-/zip-object-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zip-object/-/zip-object-0.1.0.tgz", "integrity": "sha1-waDaBMiMg3dW4khoCgP/kC7D9To=", "dev": true }, "zip-stream": { - "version": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", "dev": true, "requires": { - "archiver-utils": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "compress-commons": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz" + "archiver-utils": "1.3.0", + "compress-commons": "1.2.2", + "lodash": "4.17.4", + "readable-stream": "2.3.3" } } } diff --git a/package.json b/package.json index 7326a0d..88e3feb 100644 --- a/package.json +++ b/package.json @@ -24,10 +24,12 @@ "postversion": "git push && git push --tags && ./release.js" }, "devDependencies": { + "babel-polyfill": "^6.26.0", "chai": "^3.5.0", "changelog-parser": "^2.0.2", "css-loader": "^0.23.1", - "enzyme": "^2.4.1", + "enzyme": "^3.2.0", + "enzyme-adapter-react-16": "^1.1.0", "exports-loader": "^0.6.3", "express": "^4.14.0", "extract-text-webpack-plugin": "^1.0.1", @@ -50,9 +52,8 @@ "mocha": "^3.0.1", "node-sass": "^4.7.2", "phantomjs-polyfill-object-assign": "0.0.2", - "react": "^15.1.0", - "react-addons-test-utils": "^15.3.0", - "react-dom": "^15.1.0", + "react": "^16.2.0", + "react-dom": "^16.2.0", "sass-loader": "^4.0.0", "semver": "^5.3.0", "source-map-loader": "^0.1.5", @@ -65,7 +66,7 @@ "webpack-node-externals": "^1.3.3" }, "peerDependencies": { - "react": "^15.1.0", - "react-dom": "^15.1.0" + "react": "^16.2.0", + "react-dom": "^16.2.0" } } diff --git a/src/react-console.tsx b/src/react-console.tsx index 148e812..452986a 100644 --- a/src/react-console.tsx +++ b/src/react-console.tsx @@ -24,9 +24,9 @@ class ConsolePrompt extends React.Component { componentDidMount() { this.idle(); } - componentDidUpdate() { - this.idle(); - } + // componentDidUpdate() { + // this.idle(); + // } // DOM Management updateSemaphore: number = 0; idle() { diff --git a/test/test.tsx b/test/test.tsx index 3bdaf1d..b2afc0b 100644 --- a/test/test.tsx +++ b/test/test.tsx @@ -2,7 +2,10 @@ import * as React from 'react'; import { assert, expect } from 'chai'; -import * as enzyme from 'enzyme'; +// for some reason the latest version of enzyme can't do es6 imports properly and since we don't need fancy +// es6 module imports/tree shaking for test files we're just going to use es5 syntax which actually works. +const enzyme = require('enzyme'); +const adapter = require('enzyme-adapter-react-16'); import { ConsolePrompt, @@ -10,8 +13,10 @@ import { default as Console } from 'exports?ConsolePrompt&ConsoleMessage!../src/react-console.tsx'; +// configure the react 16 adapter for the latest version of enzyme +enzyme.configure({ adapter: new adapter() }); -describe('', function() { + describe('', function() { describe('[Property] point: ', function () { it('Has no cursor when point is not passed', function() { var wrapper = enzyme.shallow(); From 40e2d22101e86a306496b2940ea1882fc8307929 Mon Sep 17 00:00:00 2001 From: mike alfonse Date: Thu, 30 Nov 2017 14:27:53 -0500 Subject: [PATCH 2/2] Undo component did update idle test --- dist/dist-min.tar.gz | Bin 30800 -> 30814 bytes dist/dist-min.zip | Bin 31405 -> 31414 bytes dist/dist-min/react-console.min.js | 2 +- dist/dist-min/react-console.min.js.map | 2 +- dist/dist.tar.gz | Bin 26308 -> 26291 bytes dist/dist.zip | Bin 26707 -> 26690 bytes dist/dist/react-console.js | 6 +++--- dist/dist/react-console.js.map | 2 +- lib/react-console.js | 6 +++--- lib/react-console.js.map | 2 +- src/react-console.tsx | 6 +++--- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dist/dist-min.tar.gz b/dist/dist-min.tar.gz index 8f652878e09b44e0e0cfb4c46bfc01e5b9ab4336..5458a0f2115d362a73800fcf7bcf7cee7e37b37d 100644 GIT binary patch delta 29784 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 Q@IRu!-|3&po&eqf0Bk6n`~Uy| diff --git a/dist/dist-min.zip b/dist/dist-min.zip index 5bb4c2f52ac11945acd68dd50e07c23d1a09a2b3..53129e32130db2405aed73cd3faeb0be03d02b03 100644 GIT binary patch delta 28006 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 z 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 delta 28011 zcmV(*K;FN$^#QH*0Sr(}0|XQR2mlBG#hQ@}I)4{5q>AlqjWhPxWji~m(x^5N*%UE` z(5yz&vX^7Z;0E#3j!cY>_^i?q+7H zq<^XNyez}ot`OI8^O;5XqNin#Ce4E#ZNsyzTZknWnT%O7&p3Xsvml6BIEi-Qi3L5x z<@Ni^>Vx2GCgc^!c7J#n61o|~uV^NdwcwJ=t2N82O<87H#*W{g z{l?}pnG2Rn7P2S}x%V3IvQy%UT^{gg7lYK{<7mdiX{3;;ZekmNPV)7-yb1~UI2Y%e z3s%WGiZwE;qFjKU`rBr`005uZMZR8f!LrHD@Joa&mJw0dLXyn+#hO=G>UFVr$A34K zY#=a%Di$RR0jocY#{3tFbW$;5*1(g@H=^bOgqvjQS<(TFNJ?Cr6ZGcoWM1ZV{d0c7 zvH*0P%P}zu0zKBN1qS2JQln9PSyT&tnbb^vE-o0~$k2%ZQLi&$JdO#f?l9!21rCAO z8rTQl!4S}6qE`SKPT7;FLrMX0Wq;z&dAYfXqE^|6RAAg1zj;x~7n9=?MLs?Dl~y=S zy%F`6p}hA_QnKn?uKJUqpIUVPvt%S(VNkF0Du}m&EmKEJ7U8=x9Bsm6Y!`oFS7~7Q z6gx(y!;IX;!TH1BNeaC!--DHq-=#_i}S^M^W83w;r0gPD2 zjU_edh?Nf6UweR@e@p2);3kiaiAwz1h^U|n#!p2Gz~t9cnH z{g%X*9dI_lmn~pP2$Q1zoS&626jt;U4NfMfHg4$cv`45eSY7Amtbb!$C2bOnupznO z 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.substring(0,e+1):""}return s.createElement("div",{className:"react-console-prompt-box"},s.createElement("span",{className:"react-console-prompt-label"},t),s.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),s.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(s.Component),a=function(t){return t.headers?s.createElement("thead",null,s.createElement("tr",null,t.headers.map(function(t){return s.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return s.createElement("div",{className:"react-console-message react-console-table"+(t.type?" react-console-message-"+t.type:"")},s.createElement("table",null,s.createElement(a,{headers:e.headers}),s.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return s.createElement("tr",{key:e},t.map(function(t,e){return"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.setBusy=function(){o.setState({acceptInput:!1})},this.getSafeLog=function(){return o.state.log.length||o.state.log.push({label:"",command:"",message:[]}),o.state.log},this.updateLastLog=function(){for(var t=[],e=0;e0?r[o.state.log.length-1].message.length-1:0;r[o.state.log.length-1].message[s]={value:t},o.setState({log:r},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,r=t[0].length;r1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[s.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,r){return void 0===o&&(o=0),void 0===r&&(r=e.length),e.substring(0,r-o)+t+e.substring(r)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var r=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:r,restoreText:r,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var r=o.state.point+t;return r<0?0:r>e?e:r},this.rotateRing=function(t,e,o,r){return void 0===r&&(r=!0),0==o?0:r?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var r=o.state.history[o.state.history.length-e];o.setState({point:r.length,promptText:r,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var r=o.state.historyn,s=0==t?1:-1;for(e&&(r+=s);r>0&&r<=o.state.history.length;r+=s){var n=o.state.history[o.state.history.length-r],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:r}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return r(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return s.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?s.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[s.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return s.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?s.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,s.createElement("div",{style:{overflow:"hidden",height:1,width:1}},s.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),s.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(s.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); +var Console=function(t){function e(r){if(o[r])return o[r].exports;var s=o[r]={exports:{},id:r,loaded:!1};return t[r].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var r=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},s=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return r(e,t),e.prototype.componentDidMount=function(){this.idle()},e.prototype.componentDidUpdate=function(){this.idle()},e.prototype.idle=function(){var t=this;this.child.cursor&&(0==this.updateSemaphore&&(this.child.cursor.className="react-console-cursor"),this.updateSemaphore++,window.setTimeout(function(){t.updateSemaphore--,0==t.updateSemaphore&&t.child.cursor&&(t.child.cursor.className="react-console-cursor react-console-cursor-idle")},1e3))},e.prototype.renderValue=function(){var t=this;return this.props.point<0?[this.props.value]:this.props.point==this.props.value.length?[this.props.value,s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"},this.props.value.substring(this.props.point,this.props.point+1)),this.props.value.substring(this.props.point+1)]},e.prototype.render=function(){var t=this.props.label;if(this.props.argument){var e=t.lastIndexOf("\n");t=e>=0?t.substring(0,e+1):""}return s.createElement("div",{className:"react-console-prompt-box"},s.createElement("span",{className:"react-console-prompt-label"},t),s.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),s.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(s.Component),a=function(t){return t.headers?s.createElement("thead",null,s.createElement("tr",null,t.headers.map(function(t){return s.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return s.createElement("div",{className:"react-console-message react-console-table"+(t.type?" react-console-message-"+t.type:"")},s.createElement("table",null,s.createElement(a,{headers:e.headers}),s.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return s.createElement("tr",{key:e},t.map(function(t,e){return"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.setBusy=function(){o.setState({acceptInput:!1})},this.getSafeLog=function(){return o.state.log.length||o.state.log.push({label:"",command:"",message:[]}),o.state.log},this.updateLastLog=function(){for(var t=[],e=0;e0?r[o.state.log.length-1].message.length-1:0;r[o.state.log.length-1].message[s]={value:t},o.setState({log:r},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,r=t[0].length;r1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[s.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,r){return void 0===o&&(o=0),void 0===r&&(r=e.length),e.substring(0,r-o)+t+e.substring(r)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var r=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:r,restoreText:r,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var r=o.state.point+t;return r<0?0:r>e?e:r},this.rotateRing=function(t,e,o,r){return void 0===r&&(r=!0),0==o?0:r?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var r=o.state.history[o.state.history.length-e];o.setState({point:r.length,promptText:r,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var r=o.state.historyn,s=0==t?1:-1;for(e&&(r+=s);r>0&&r<=o.state.history.length;r+=s){var n=o.state.history[o.state.history.length-r],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:r}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return r(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return s.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?s.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[s.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return s.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?s.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,s.createElement("div",{style:{overflow:"hidden",height:1,width:1}},s.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),s.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(s.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); //# sourceMappingURL=react-console.min.js.map \ No newline at end of file diff --git a/dist/dist-min/react-console.min.js.map b/dist/dist-min/react-console.min.js.map index b14825a..509da0f 100644 --- a/dist/dist-min/react-console.min.js.map +++ b/dist/dist-min/react-console.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap 4ae538134ccc1572bbcb","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","type","rows","row","index","cell","cellIndex","href","target","text","JSON","stringify","val","i","default_1","setBusy","setState","acceptInput","getSafeLog","state","log","push","command","message","updateLastLog","messages","_i","indexToReplace","scrollIfBottom","logX","logTable","tableData","return","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","join","cancel","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"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","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // componentDidUpdate() {\n\t // \tthis.idle();\n\t // }\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.setBusy = function () {\n\t _this.setState({ acceptInput: false });\n\t };\n\t this.getSafeLog = function () {\n\t if (!_this.state.log.length) {\n\t _this.state.log.push({ label: '', command: '', message: [] });\n\t }\n\t return _this.state.log;\n\t };\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData, type) {\n\t var log = _this.getSafeLog();\n\t if (type) {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] });\n\t }\n\t else {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t }\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode !== 86) {\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4ae538134ccc1572bbcb","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap ab9bf24ceb80f1584ef4","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","componentDidUpdate","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","type","rows","row","index","cell","cellIndex","href","target","text","JSON","stringify","val","i","default_1","setBusy","setState","acceptInput","getSafeLog","state","log","push","command","message","updateLastLog","messages","_i","indexToReplace","scrollIfBottom","logX","logTable","tableData","return","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","join","cancel","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"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","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.componentDidUpdate = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.setBusy = function () {\n\t _this.setState({ acceptInput: false });\n\t };\n\t this.getSafeLog = function () {\n\t if (!_this.state.log.length) {\n\t _this.state.log.push({ label: '', command: '', message: [] });\n\t }\n\t return _this.state.log;\n\t };\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.getSafeLog();\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData, type) {\n\t var log = _this.getSafeLog();\n\t if (type) {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] });\n\t }\n\t else {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t }\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode !== 86) {\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ab9bf24ceb80f1584ef4","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/dist.tar.gz b/dist/dist.tar.gz index de6fd0e2f2ba2a8ded8261e72d865d113eefa134..0457df612e9df490365b6a7e0d1d47e83f8cf07b 100644 GIT binary patch delta 25522 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 F0RUZWe|`V} delta 25455 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 diff --git a/dist/dist.zip b/dist/dist.zip index a34bf86529789b5facd5094add0dfcb148c309c8..f4fb1c78cdfe521b4f84741bd31de948832d031b 100644 GIT binary patch delta 23781 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 delta 23833 zcmV)IK)k=g&;irX0Sr(}0|XQR2mlBG#hQ@}B!BC28#k8z?L0+?TRWm`k+Pgw$D_nf z#d1>i#)@6GXEIxgO4}lv5@V{H!){vED1MiDmU*)MKHM6OOE)Pg8IPBhSY$VFaByxo zI5+^_rHf>*$jf4uB@aK_zAZl6Nq@4;N7b~*`)9>?Im^n;k!&+p2TTT~Q zqLHym=ts%Xk;3Unl|DLBI6oT$X;Z~~Np2DR-f1>^n@lGf-)RZ-Jgjd`Cw&*|1KGo8 z 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 diff --git a/dist/dist/react-console.js b/dist/dist/react-console.js index bf42955..b8778eb 100644 --- a/dist/dist/react-console.js +++ b/dist/dist/react-console.js @@ -58,9 +58,6 @@ var Console = function ConsolePrompt() { _super.apply(this, arguments); this.child = {}; - // componentDidUpdate() { - // this.idle(); - // } // DOM Management this.updateSemaphore = 0; } @@ -68,6 +65,9 @@ var Console = ConsolePrompt.prototype.componentDidMount = function () { this.idle(); }; + ConsolePrompt.prototype.componentDidUpdate = function () { + this.idle(); + }; ConsolePrompt.prototype.idle = function () { var _this = this; // Blink cursor when idle diff --git a/dist/dist/react-console.js.map b/dist/dist/react-console.js.map index 242b6af..b7bab05 100644 --- a/dist/dist/react-console.js.map +++ b/dist/dist/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 1f989b3b715e98f3766d","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1f989b3b715e98f3766d","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn

\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 65b6cb1c4621a6a1b06b","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 65b6cb1c4621a6a1b06b","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-console.js b/lib/react-console.js index a6f47d7..4349f36 100644 --- a/lib/react-console.js +++ b/lib/react-console.js @@ -58,9 +58,6 @@ module.exports = function ConsolePrompt() { _super.apply(this, arguments); this.child = {}; - // componentDidUpdate() { - // this.idle(); - // } // DOM Management this.updateSemaphore = 0; } @@ -68,6 +65,9 @@ module.exports = ConsolePrompt.prototype.componentDidMount = function () { this.idle(); }; + ConsolePrompt.prototype.componentDidUpdate = function () { + this.idle(); + }; ConsolePrompt.prototype.idle = function () { var _this = this; // Blink cursor when idle diff --git a/lib/react-console.js.map b/lib/react-console.js.map index 55c078d..b103083 100644 --- a/lib/react-console.js.map +++ b/lib/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap aac435dc0b3f10677a79","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap aac435dc0b3f10677a79","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\t// componentDidUpdate() {\n\t// \tthis.idle();\n\t// }\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 81409570c3301dc27ff4","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 81409570c3301dc27ff4","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\n\tgetSafeLog = () => {\n\t\tif(!this.state.log.length){\n\t\t\tthis.state.log.push({label: '', command: '', message: [] });\n\t\t}\n\t\treturn this.state.log;\n\t}\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.getSafeLog();\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}else if(e.keyCode !== 86){ // allow ctrl+v for paste on windows\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/src/react-console.tsx b/src/react-console.tsx index 452986a..148e812 100644 --- a/src/react-console.tsx +++ b/src/react-console.tsx @@ -24,9 +24,9 @@ class ConsolePrompt extends React.Component { componentDidMount() { this.idle(); } - // componentDidUpdate() { - // this.idle(); - // } + componentDidUpdate() { + this.idle(); + } // DOM Management updateSemaphore: number = 0; idle() {