-1/0&&a<1/0){if(_){for(f=T(a/864e5),u=T(f/365.2425)+1970-1;_(u+1,0)<=f;u++);for(h=T((f-_(u,0))/30.42);_(u,h+1)<=f;h++);f=1+f-_(u,h),l=(a%864e5+864e5)%864e5,m=T(l/36e5)%24,b=T(l/6e4)%60,w=T(l/1e3)%60,S=l%1e3}else u=a.getUTCFullYear(),h=a.getUTCMonth(),f=a.getUTCDate(),m=a.getUTCHours(),b=a.getUTCMinutes(),w=a.getUTCSeconds(),S=a.getUTCMilliseconds();a=(u<=0||u>=1e4?(u<0?"-":"+")+O(6,u<0?-u:u):O(4,u))+"-"+O(2,h+1)+"-"+O(2,f)+"T"+O(2,m)+":"+O(2,b)+":"+O(2,w)+"."+O(3,S)+"Z"}else a=null;if(r&&(a=r.call(e,t,a)),null===a)return"null";if(c=v.call(a),c==C)return""+a;if(c==A)return a>-1/0&&a<1/0?""+a:"null";if(c==x)return R(""+a);if("object"==typeof a){for(P=s.length;P--;)if(s[P]===a)throw p();if(s.push(a),E=[],q=i,i+=o,c==B){for(j=0,P=a.length;j0)for(n="",r>10&&(r=10);n.length=48&&o<=57||o>=97&&o<=102||o>=65&&o<=70||I();t+=M("0x"+i.slice(e,q));break;default:I()}else{if(34==o)break;for(o=i.charCodeAt(q),e=q;o>=32&&92!=o&&34!=o;)o=i.charCodeAt(++q);t+=i.slice(e,q)}if(34==i.charCodeAt(q))return q++,t;I();default:if(e=q,45==o&&(n=!0,o=i.charCodeAt(++q)),o>=48&&o<=57){for(48==o&&(o=i.charCodeAt(q+1),o>=48&&o<=57)&&I(),n=!1;q=48&&o<=57);q++);if(46==i.charCodeAt(q)){for(r=++q;r=48&&o<=57);r++);r==q&&I(),q=r}if(o=i.charCodeAt(q),101==o||69==o){for(o=i.charCodeAt(++q),43!=o&&45!=o||q++,r=q;r=48&&o<=57);r++);r==q&&I(),q=r}return+i.slice(e,q)}if(n&&I(),"true"==i.slice(q,q+4))return q+=4,!0;if("false"==i.slice(q,q+5))return q+=5,!1;if("null"==i.slice(q,q+4))return q+=4,null;I()}return"$"},z=function(t){var e,r;if("$"==t&&I(),"string"==typeof t){if("@"==(S?t.charAt(0):t[0]))return t.slice(1);if("["==t){for(e=[];t=H(),"]"!=t;r||(r=!0))r&&(","==t?(t=H(),"]"==t&&I()):I()),","==t&&I(),e.push(z(t));return e}if("{"==t){for(e={};t=H(),"}"!=t;r||(r=!0))r&&(","==t?(t=H(),"}"==t&&I()):I()),","!=t&&"string"==typeof t&&"@"==(S?t.charAt(0):t[0])&&":"==H()||I(),e[t.slice(1)]=z(H());return e}I()}return t},J=function(t,e,r){var n=X(t,e,r);n===g?delete t[e]:t[e]=n},X=function(t,e,r){var n,o=t[e];if("object"==typeof o&&o)if(v.call(o)==B)for(n=o.length;n--;)J(o,n,r);else y(o,function(t){J(o,t,r)});return r.call(t,e,o)};e.parse=function(t,e){var r,n;return q=0,U=""+t,r=z(H()),"$"!=H()&&I(),q=U=null,e&&v.call(e)==w?X((n={},n[""]=r,n),"",e):r}}}return e.runInContext=o,e}var i="function"==typeof n&&n.amd,s={function:!0,object:!0},a=s[typeof e]&&e&&!e.nodeType&&e,c=s[typeof window]&&window||this,u=a&&s[typeof t]&&t&&!t.nodeType&&"object"==typeof r&&r;if(!u||u.global!==u&&u.window!==u&&u.self!==u||(c=u),a&&!i)o(c,a);else{var h=c.JSON,p=c.JSON3,f=!1,l=o(c,c.JSON3={noConflict:function(){return f||(f=!0,c.JSON=h,c.JSON3=p,h=p=null),l}});c.JSON={parse:l.parse,stringify:l.stringify}}i&&n(function(){return l})}).call(this)}).call(e,r(12)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function r(t){if(t)return n(t)}function n(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},r.prototype.once=function(t,e){function r(){n.off(t,r),e.apply(this,arguments)}var n=this;return this._callbacks=this._callbacks||{},r.fn=e,this.on(t,r),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r=this._callbacks[t];if(!r)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var n,o=0;o0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},n.prototype.cleanup=function(){p("cleanup");for(var t=this.subs.length,e=0;e=this._reconnectionAttempts)p("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var e=this.backoff.duration();p("will wait %dms before reconnect attempt",e),this.reconnecting=!0;var r=setTimeout(function(){t.skipReconnect||(p("attempting reconnect"),t.emitAll("reconnect_attempt",t.backoff.attempts),t.emitAll("reconnecting",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(p("reconnect attempt error"),t.reconnecting=!1,t.reconnect(),t.emitAll("reconnect_error",e.data)):(p("reconnect success"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(r)}})}},n.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",t)}},function(t,e,r){t.exports=r(19)},function(t,e,r){t.exports=r(20),t.exports.parser=r(27)},function(t,e,r){(function(e){function n(t,r){if(!(this instanceof n))return new n(t,r);r=r||{},t&&"object"==typeof t&&(r=t,t=null),t?(t=h(t),r.hostname=t.host,r.secure="https"===t.protocol||"wss"===t.protocol,r.port=t.port,t.query&&(r.query=t.query)):r.host&&(r.hostname=h(r.host).host),
- this.secure=null!=r.secure?r.secure:e.location&&"https:"===location.protocol,r.hostname&&!r.port&&(r.port=this.secure?"443":"80"),this.agent=r.agent||!1,this.hostname=r.hostname||(e.location?location.hostname:"localhost"),this.port=r.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=r.query||{},"string"==typeof this.query&&(this.query=f.decode(this.query)),this.upgrade=!1!==r.upgrade,this.path=(r.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!r.forceJSONP,this.jsonp=!1!==r.jsonp,this.forceBase64=!!r.forceBase64,this.enablesXDR=!!r.enablesXDR,this.timestampParam=r.timestampParam||"t",this.timestampRequests=r.timestampRequests,this.transports=r.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=r.policyPort||843,this.rememberUpgrade=r.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=r.onlyBinaryUpgrades,this.perMessageDeflate=!1!==r.perMessageDeflate&&(r.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=r.pfx||null,this.key=r.key||null,this.passphrase=r.passphrase||null,this.cert=r.cert||null,this.ca=r.ca||null,this.ciphers=r.ciphers||null,this.rejectUnauthorized=void 0===r.rejectUnauthorized?null:r.rejectUnauthorized,this.forceNode=!!r.forceNode;var o="object"==typeof e&&e;o.global===o&&(r.extraHeaders&&Object.keys(r.extraHeaders).length>0&&(this.extraHeaders=r.extraHeaders),r.localAddress&&(this.localAddress=r.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}var i=r(21),s=r(36),a=r(3)("engine.io-client:socket"),c=r(43),u=r(27),h=r(2),p=r(44),f=r(37);t.exports=n,n.priorWebsocketSuccess=!1,s(n.prototype),n.protocol=u.protocol,n.Socket=n,n.Transport=r(26),n.transports=r(21),n.parser=r(27),n.prototype.createTransport=function(t){a("creating transport \"%s\"",t);var e=o(this.query);e.EIO=u.protocol,e.transport=t,this.id&&(e.sid=this.id);var r=new i[t]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:e,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders,forceNode:this.forceNode,localAddress:this.localAddress});return r},n.prototype.open=function(){var t;if(this.rememberUpgrade&&n.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit("error","No transports available")},0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},n.prototype.setTransport=function(t){a("setting transport %s",t.name);var e=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on("drain",function(){e.onDrain()}).on("packet",function(t){e.onPacket(t)}).on("error",function(t){e.onError(t)}).on("close",function(){e.onClose("transport close")})},n.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;p=p||e}p||(a("probe transport \"%s\" opened",t),h.send([{type:"ping",data:"probe"}]),h.once("packet",function(e){if(!p)if("pong"===e.type&&"probe"===e.data){if(a("probe transport \"%s\" pong",t),f.upgrading=!0,f.emit("upgrading",h),!h)return;n.priorWebsocketSuccess="websocket"===h.name,a("pausing current transport \"%s\"",f.transport.name),f.transport.pause(function(){p||"closed"!==f.readyState&&(a("changing transport and sending upgrade packet"),u(),f.setTransport(h),h.send([{type:"upgrade"}]),f.emit("upgrade",h),h=null,f.upgrading=!1,f.flush())})}else{a("probe transport \"%s\" failed",t);var r=new Error("probe error");r.transport=h.name,f.emit("upgradeError",r)}}))}function r(){p||(p=!0,u(),h.close(),h=null)}function o(e){var n=new Error("probe error: "+e);n.transport=h.name,r(),a("probe transport \"%s\" failed because of error: %s",t,e),f.emit("upgradeError",n)}function i(){o("transport closed")}function s(){o("socket closed")}function c(t){h&&t.name!==h.name&&(a("\"%s\" works - aborting \"%s\"",t.name,h.name),r())}function u(){h.removeListener("open",e),h.removeListener("error",o),h.removeListener("close",i),f.removeListener("close",s),f.removeListener("upgrading",c)}a("probing transport \"%s\"",t);var h=this.createTransport(t,{probe:1}),p=!1,f=this;n.priorWebsocketSuccess=!1,h.once("open",e),h.once("error",o),h.once("close",i),this.once("close",s),this.once("upgrading",c),h.open()},n.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var t=0,e=this.upgrades.length;t1?{type:b[o],data:t.substring(1)}:{type:b[o]}:w}var i=new Uint8Array(t),o=i[0],s=f(t,1);return k&&"blob"===r&&(s=new k([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var r=b[t.charAt(0)];if(!u)return{type:r,data:{base64:!0,data:t.substr(1)}};var n=u.decode(t.substr(1));return"blob"===e&&k&&(n=new k([n])),{type:r,data:n}},e.encodePayload=function(t,r,n){function o(t){return t.length+":"+t}function i(t,n){e.encodePacket(t,!!s&&r,!0,function(t){n(null,o(t))})}"function"==typeof r&&(n=r,r=null);var s=p(t);return r&&s?k&&!m?e.encodePayloadAsBlob(t,n):e.encodePayloadAsArrayBuffer(t,n):t.length?void c(t,i,function(t,e){return n(e.join(""))}):n("0:")},e.decodePayload=function(t,r,n){if("string"!=typeof t)return e.decodePayloadAsBinary(t,r,n);"function"==typeof r&&(n=r,r=null);var o;if(""==t)return n(w,0,1);for(var i,s,a="",c=0,u=t.length;c0;){for(var a=new Uint8Array(o),c=0===a[0],u="",h=1;255!=a[h];h++){if(u.length>310){s=!0;break}u+=a[h]}if(s)return n(w,0,1);o=f(o,2+u.length),u=parseInt(u);var p=f(o,0,u);if(c)try{p=String.fromCharCode.apply(null,new Uint8Array(p))}catch(t){var l=new Uint8Array(p);p="";for(var h=0;hn&&(r=n),e>=n||e>=r||0===n)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(r-e),s=e,a=0;s=55296&&e<=56319&&o65535&&(e-=65536,o+=b(e>>>10&1023|55296),e=56320|1023&e),o+=b(e);return o}function c(t,e){return b(t>>e&63|128)}function u(t){if(0==(4294967168&t))return b(t);var e="";return 0==(4294965248&t)?e=b(t>>6&31|192):0==(4294901760&t)?(e=b(t>>12&15|224),e+=c(t,6)):0==(4292870144&t)&&(e=b(t>>18&7|240),e+=c(t,12),e+=c(t,6)),e+=b(63&t|128)}function h(t){for(var e,r=s(t),n=r.length,o=-1,i="";++o=m)throw Error("Invalid byte index");var t=255&g[v];if(v++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function f(){var t,e,r,n,o;if(v>m)throw Error("Invalid byte index");if(v==m)return!1;if(t=255&g[v],v++,0==(128&t))return t;if(192==(224&t)){var e=p();if(o=(31&t)<<6|e,o>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&t)){if(e=p(),r=p(),o=(15&t)<<12|e<<6|r,o>=2048)return o;throw Error("Invalid continuation byte")}if(240==(248&t)&&(e=p(),r=p(),n=p(),o=(15&t)<<18|e<<12|r<<6|n,o>=65536&&o<=1114111))return o;throw Error("Invalid WTF-8 detected")}function l(t){g=s(t),m=g.length,v=0;for(var e,r=[];(e=f())!==!1;)r.push(e);return a(r)}var d="object"==typeof e&&e,y=("object"==typeof t&&t&&t.exports==d&&t,"object"==typeof o&&o);y.global!==y&&y.window!==y||(i=y);var g,m,v,b=String.fromCharCode,w={version:"1.0.0",encode:h,decode:l};n=function(){return w}.call(e,r,e,t),!(void 0!==n&&(t.exports=n))}(this)}).call(e,r(12)(t),function(){return this}())},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=new Uint8Array(256),n=0;n>2],i+=t[(3&n[r])<<4|n[r+1]>>4],i+=t[(15&n[r+1])<<2|n[r+2]>>6],i+=t[63&n[r+2]];return o%3===2?i=i.substring(0,i.length-1)+"=":o%3===1&&(i=i.substring(0,i.length-2)+"=="),i},e.decode=function(t){var e,n,o,i,s,a=.75*t.length,c=t.length,u=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var h=new ArrayBuffer(a),p=new Uint8Array(h);for(e=0;e>4,p[u++]=(15&o)<<4|i>>2,p[u++]=(3&i)<<6|63&s;return h}}()},function(t,e){(function(e){function r(t){for(var e=0;e0);return e}function n(t){var e=0;for(h=0;h";i=document.createElement(t)}catch(t){i=document.createElement("iframe"),i.name=o.iframeId,i.src="javascript:0"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement("form"),a=document.createElement("textarea"),h=this.iframeId="eio_iframe_"+this.index;s.className="socketio",s.style.position="absolute",s.style.top="-1000px",s.style.left="-1000px",s.target=h,s.method="POST",s.setAttribute("accept-charset","utf-8"),a.name="d",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),n(),t=t.replace(u,"\\\n"),this.area.value=t.replace(c,"\\n");try{this.form.submit()}catch(t){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){
- "complete"===o.iframe.readyState&&r()}:this.iframe.onload=r}}).call(e,function(){return this}())},function(t,e,r){(function(e){function n(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=p&&!t.forceNode,this.usingBrowserWebSocket||(f=o),i.call(this,t)}var o,i=r(26),s=r(27),a=r(37),c=r(38),u=r(39),h=r(3)("engine.io-client:websocket"),p=e.WebSocket||e.MozWebSocket;if("undefined"==typeof window)try{o=r(42)}catch(t){}var f=p;f||"undefined"!=typeof window||(f=o),t.exports=n,c(n,i),n.prototype.name="websocket",n.prototype.supportsBinary=!0,n.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=void 0,r={agent:this.agent,perMessageDeflate:this.perMessageDeflate};r.pfx=this.pfx,r.key=this.key,r.passphrase=this.passphrase,r.cert=this.cert,r.ca=this.ca,r.ciphers=this.ciphers,r.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(r.headers=this.extraHeaders),this.localAddress&&(r.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?new f(t):new f(t,e,r)}catch(t){return this.emit("error",t)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},n.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError("websocket error",e)}},n.prototype.write=function(t){function r(){n.emit("flush"),setTimeout(function(){n.writable=!0,n.emit("drain")},0)}var n=this;this.writable=!1;for(var o=t.length,i=0,a=o;i0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=r,r.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),r=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-r:t+r}return 0|Math.min(t,this.max)},r.prototype.reset=function(){this.attempts=0},r.prototype.setMin=function(t){this.ms=t},r.prototype.setMax=function(t){this.max=t},r.prototype.setJitter=function(t){this.jitter=t}}])});
\ No newline at end of file
diff --git a/node_modules/browser-sync/lib/public/stream.js b/node_modules/browser-sync/lib/public/stream.js
deleted file mode 100644
index 145f7e1..0000000
--- a/node_modules/browser-sync/lib/public/stream.js
+++ /dev/null
@@ -1,98 +0,0 @@
-"use strict";
-
-var path = require("path");
-var micromatch = require("micromatch");
-var utils = require("./public-utils");
-
-/**
- * @param emitter
- * @returns {Function}
- */
-module.exports = function (emitter) {
-
- /**
- * Return a transform/through stream that listens to file
- * paths and fires internal Browsersync events.
- * @param {{once: boolean, match: string|array}} [opts]
- * @returns {Stream.Transform}
- */
- function browserSyncThroughStream (opts) {
-
- opts = opts || {};
- var emitted = false;
- var Transform = require("stream").Transform;
- var reload = new Transform({objectMode: true});
- var changed = [];
-
- reload._transform = function (file, encoding, next) {
-
- var stream = this;
-
- /**
- * End is always called to send the current file down
- * stream. Browsersync never acts upon a stream,
- * we only `listen` to it.
- */
- function end () {
- stream.push(file); // always send the file down-stream
- next();
- }
-
- /**
- * If {match: } was provided, test the
- * current filepath against it
- */
- if (opts.match) {
- if (!micromatch(file.path, opts.match, {dot: true}).length) {
- return end();
- }
- }
-
- /**
- * if {once: true} provided, emit the reload event for the
- * first file only
- */
- if (opts.once === true && !emitted) {
-
- utils.emitBrowserReload(emitter);
-
- emitted = true;
-
- } else { // handle multiple
-
- if (opts.once === true && emitted) {
-
- } else {
-
- if (file.path) {
-
- emitted = true;
- utils.emitChangeEvent(emitter, file.path, false);
- changed.push(path.basename(file.path));
- }
- }
- }
-
- end();
- };
-
- /**
- * When this current operation has finished, emit the
- * steam:changed event so that any loggers can pick up it
- * @param next
- * @private
- */
- reload._flush = function (next) {
-
- if (changed.length) {
- utils.emitStreamChangedEvent(emitter, changed);
- }
-
- next();
- };
-
- return reload;
- }
-
- return browserSyncThroughStream;
-};
diff --git a/node_modules/browser-sync/lib/server/certs/browsersync.pfx b/node_modules/browser-sync/lib/server/certs/browsersync.pfx
deleted file mode 100644
index f4bd754..0000000
Binary files a/node_modules/browser-sync/lib/server/certs/browsersync.pfx and /dev/null differ
diff --git a/node_modules/browser-sync/lib/server/certs/gen.sh b/node_modules/browser-sync/lib/server/certs/gen.sh
deleted file mode 100755
index 2f6cb4d..0000000
--- a/node_modules/browser-sync/lib/server/certs/gen.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-openssl genrsa -des3 -out server.key 1024
-openssl req -new -key server.key -out server.csr
-openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
-cp server.key server.key.copy
-openssl rsa -in server.key.copy -out server.key
-rm server.key.copy
diff --git a/node_modules/browser-sync/lib/server/certs/server.crt b/node_modules/browser-sync/lib/server/certs/server.crt
deleted file mode 100644
index 458a0bd..0000000
--- a/node_modules/browser-sync/lib/server/certs/server.crt
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICCzCCAXQCCQDpGwtUQOyjgjANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJH
-QjETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEChMJbG9jYWxob3N0MRIwEAYD
-VQQDEwlsb2NhbGhvc3QwHhcNMTUwOTAzMTQ0ODM3WhcNMjUwODMxMTQ0ODM3WjBK
-MQswCQYDVQQGEwJHQjETMBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEChMJbG9j
-YWxob3N0MRIwEAYDVQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
-MIGJAoGBAMK8WooQKZZWnUGbpQeddoDiLQF/DM8jyQLyPIpK3wOk6CDkeq59iga5
-v4AeeZ2ehocmC5fLRSby6D+EDVAD9p27KCiQAkpjtOsdqwAa1jJvKKU/M4mOc1CH
-hDztK3Fi734H+goe+NmbwM/hah0eTPr0vsn+CwSiP9vdss7qdVX9AgMBAAEwDQYJ
-KoZIhvcNAQEFBQADgYEATut3YjxGbVwupZvgGiVUOoyomMGBZp/3+qmF2q8gEu2c
-OwRql9VYvi0jXOfLY4QuydPsjV8V66js6RDzQkxbCME3l2iYjESiXrG/jtxsdaPS
-3ABtv5Sq+cNxdjat0ZPGqlxSAqMmzVoHNzvHON+zPUMpfg1B/nXE7w1tR34KRLo=
------END CERTIFICATE-----
diff --git a/node_modules/browser-sync/lib/server/certs/server.csr b/node_modules/browser-sync/lib/server/certs/server.csr
deleted file mode 100644
index d049c6e..0000000
--- a/node_modules/browser-sync/lib/server/certs/server.csr
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBiTCB8wIBADBKMQswCQYDVQQGEwJHQjETMBEGA1UECBMKU29tZS1TdGF0ZTES
-MBAGA1UEChMJbG9jYWxob3N0MRIwEAYDVQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZI
-hvcNAQEBBQADgY0AMIGJAoGBAMK8WooQKZZWnUGbpQeddoDiLQF/DM8jyQLyPIpK
-3wOk6CDkeq59iga5v4AeeZ2ehocmC5fLRSby6D+EDVAD9p27KCiQAkpjtOsdqwAa
-1jJvKKU/M4mOc1CHhDztK3Fi734H+goe+NmbwM/hah0eTPr0vsn+CwSiP9vdss7q
-dVX9AgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQBDIme5cEvn1NunHgbefe74cdqj
-TtE9Sjc9KpVRMffu+C2rD66L4jYfyWNnuVdPTaOrThvmYZSY+a2RFusLXFGFqH6Y
-0veE5UjPL1e+TX/QHORn/vmbZW/U6mK2B1C3AQePym4sBY5C8H7UmEinUpq80UH+
-HuxnHA5uWEi8ODEUtg==
------END CERTIFICATE REQUEST-----
diff --git a/node_modules/browser-sync/lib/server/certs/server.key b/node_modules/browser-sync/lib/server/certs/server.key
deleted file mode 100644
index 43c76cc..0000000
--- a/node_modules/browser-sync/lib/server/certs/server.key
+++ /dev/null
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQDCvFqKECmWVp1Bm6UHnXaA4i0BfwzPI8kC8jyKSt8DpOgg5Hqu
-fYoGub+AHnmdnoaHJguXy0Um8ug/hA1QA/aduygokAJKY7TrHasAGtYybyilPzOJ
-jnNQh4Q87StxYu9+B/oKHvjZm8DP4WodHkz69L7J/gsEoj/b3bLO6nVV/QIDAQAB
-AoGAWMs/0XJbNCTcYb0Ru+4tycjX0rXW5mCf2IsR1dEb7XJ1MgJcelHd7QEnc8jx
-lVBicR+E67sRFhhuk/+nflPAUBG6c2TPx9qPPAIXhnbSOw5T9TMWCWTn/nTRDMQN
-IUQWYB9HURxkG0rpLKZkewOAlej067q+S7hnZ+X3SZuKAzUCQQDtBf40PpIaX5Sa
-XffCeOKwk+liCXEaU4o6U1yeJSCUai1qPeyenThbC16dEUwPSl//HhVP/VaNsCUI
-gPiKPR83AkEA0lOjKhfSjJcQ0dPisP11kgZ2Hybr9VvTCrnNUuxmBlGsO1vxD0Q4
-PdFZHMsM+X5zgUaT6AqgUx+MFxJDmEIGawJBAMCu94lHOITCIM8hBtIMbdS4Wai+
-HjkVorBppkhVzFd6vXK55orHKtIwuvia4CcqAkImFZNSUrOad3CjT+kpaR8CQBpx
-yaIRPLfQhpzbNzVpqM6jYVapXiGLWg2PLvGuJ2XD/xO3i6ePvEKJf9rO7OKxs3Qd
-m5shOuc4oDSGZ1lNc+ECQQCqfEE4QJMn24YunYV2o2VzXQ/cz+co/43JGwbZdyz/
-/JxohJwtQk8Le3VOaWWZcaNcKFZXcbqnfnck1CXuWSZh
------END RSA PRIVATE KEY-----
diff --git a/node_modules/browser-sync/lib/server/index.js b/node_modules/browser-sync/lib/server/index.js
deleted file mode 100644
index 3ea9fef..0000000
--- a/node_modules/browser-sync/lib/server/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-"use strict";
-
-var enableDestroy = require("server-destroy");
-var _ = require("../../lodash.custom");
-
-/**
- * Browsersync server
- * Three available modes: Snippet, Server or Proxy
- */
-module.exports.plugin = function (bs) {
-
- var debug = bs.debug;
- var proxy = bs.options.get("proxy");
- var type = bs.options.get("mode");
-
- var bsServer = createServer(bs);
-
- if (type === "server" || type === "snippet") {
- debug("Static Server running ({magenta:%s}) ...", bs.options.get("scheme"));
- }
-
- if (proxy) {
- debug("Proxy running, proxing: {magenta:%s}", proxy.get("target"));
- }
-
- if (bsServer) {
-
- /**
- * Allow server to be destroyed gracefully
- */
- enableDestroy(bsServer.server);
-
- /**
- * Listen on the available port
- */
- bsServer.server.listen(bs.options.get("port"));
-
- /**
- * Hack to deal with https://github.com/socketio/socket.io/issues/1602#issuecomment-224270022
- */
- bs.registerCleanupTask(function () {
- if (bs.io && bs.io.sockets) {
- setCloseReceived(bs.io.sockets);
- }
- if (bs.ui && bs.ui.socket) {
- setCloseReceived(bs.ui.socket);
- }
- });
-
- /**
- * Destroy the server on cleanup
- */
- bs.registerCleanupTask(function () {
- bsServer.server.destroy();
- });
- }
-
- function setCloseReceived(io) {
- Object.keys(io.sockets).forEach(function (key) {
- _.set(io.sockets[key], "conn.transport.socket._closeReceived", true);
- });
- }
-
- debug("Running mode: %s", type.toUpperCase());
-
- return {
- server: bsServer.server,
- app: bsServer.app
- };
-};
-
-/**
- * Launch the server for serving the client JS plus static files
- * @param {BrowserSync} bs
- * @returns {{staticServer: (http.Server), proxyServer: (http.Server)}}
- */
-function createServer (bs) {
-
- var proxy = bs.options.get("proxy");
- var server = bs.options.get("server");
-
- if (!proxy && !server) {
- return require("./snippet-server")(bs);
- }
-
- if (proxy) {
- return require("./proxy-server")(bs);
- }
-
- if (server) {
- return require("./static-server")(bs);
- }
-}
-
-module.exports.createServer = createServer;
diff --git a/node_modules/browser-sync/lib/server/proxy-server.js b/node_modules/browser-sync/lib/server/proxy-server.js
deleted file mode 100644
index eb86cac..0000000
--- a/node_modules/browser-sync/lib/server/proxy-server.js
+++ /dev/null
@@ -1,195 +0,0 @@
-"use strict";
-
-var httpProxy = require("http-proxy");
-var utils = require("./utils");
-var proxyUtils = require("./proxy-utils");
-var Immutable = require("immutable");
-var Map = require("immutable").Map;
-var List = require("immutable").List;
-
-/**
- * Default options that are passed along to http-proxy
- */
-var defaultHttpProxyOptions = Map({
- /**
- * This ensures targets are more likely to
- * accept each request
- */
- changeOrigin: true,
- /**
- * This handles redirects
- */
- autoRewrite: true,
- /**
- * This allows our self-signed certs to be used for development
- */
- secure: false,
- ws: true
-});
-
-var defaultCookieOptions = Map({
- stripDomain: true
-});
-
-var ProxyOption = Immutable.Record({
- route: "",
- target: "",
- rewriteRules: true,
- /**
- * Functions to be called on proxy request
- * with args [proxyReq, req, res, options]
- */
- proxyReq: List([]),
- /**
- * Functions to be called on proxy response
- * with args [proxyRes, req, res]
- */
- proxyRes: List([]),
- /**
- * Functions to be called on proxy response
- * with args [proxyReq, req, socket, options, head]
- */
- proxyReqWs: List([]),
- errHandler: undefined,
- url: Map({}),
- proxyOptions: Map(defaultHttpProxyOptions),
- cookies: Map(defaultCookieOptions),
- ws: false,
- middleware: List([]),
- reqHeaders: undefined
-});
-
-/**
- * @param {BrowserSync} bs
- * @param {String} scripts
- * @returns {*}
- */
-module.exports = function createProxyServer (bs) {
-
- var opt = new ProxyOption().mergeDeep(bs.options.get("proxy"));
- var proxy = httpProxy.createProxyServer(opt.get("proxyOptions").set("target", opt.get("target")).toJS());
- var target = opt.get("target");
- var proxyReq = getProxyReqFunctions(opt.get("proxyReq"), opt, bs);
- var proxyRes = getProxyResFunctions(opt.get("proxyRes"), opt);
- var proxyResWs = opt.get("proxyReqWs");
- bs.options = bs.options.update("middleware", function (mw) {
- return mw.concat({
- id: "Browsersync Proxy",
- route: opt.get("route"),
- handle: function (req, res) {
- proxy.web(req, res, {
- target: target
- });
- }
- });
- });
-
- var app = utils.getBaseApp(bs);
-
- /**
- * @type {*|{server, app}}
- */
- var browserSyncServer = utils.getServer(app, bs.options);
- browserSyncServer.proxy = proxy;
-
- if (opt.get("ws")) {
- // debug(`+ ws upgrade for: ${x.get("target")}`);
- browserSyncServer.server.on("upgrade", function (req, socket, head) {
- proxy.ws(req, socket, head);
- });
- }
-
- /**
- * Add any user provided functions for proxyReq, proxyReqWs and proxyRes
- */
- applyFns("proxyReq", proxyReq);
- applyFns("proxyRes", proxyRes);
- applyFns("proxyReqWs", proxyResWs);
-
- /**
- * Handle Proxy errors
- */
- proxy.on("error", function (err) {
- if (typeof opt.get("errHandler") === "function") {
- opt.get("errHandler").call(null, err);
- }
- });
-
- /**
- * Apply functions to proxy events
- * @param {string} name - the name of the http-proxy event
- * @param {Array} fns - functions to call on each event
- */
- function applyFns (name, fns) {
- if (!List.isList(fns)) fns = [fns];
- proxy.on(name, function () {
- var args = arguments;
- fns.forEach(function(fn) {
- if (typeof fn === "function") {
- fn.apply(null, args);
- }
- });
- });
- }
-
- return browserSyncServer;
-};
-
-/**
- * @param resFns
- * @returns {*}
- */
-function getProxyResFunctions (resFns, opt) {
- if (opt.getIn(["cookies", "stripDomain"])) {
- return resFns.push(proxyUtils.checkCookies);
- }
- return resFns;
-}
-
-/**
- * @param reqFns
- * @returns {*}
- */
-function getProxyReqFunctions (reqFns, opt, bs) {
-
- var reqHeaders = opt.getIn(["reqHeaders"]);
-
- if (!reqHeaders) {
- return reqFns;
- }
-
- /**
- * Back-compat for old `reqHeaders` option here a
- * function was given that returned an object
- * where key:value was header-name:header-value
- * This didn't really work as it clobbered all other headers,
- * but it remains for the unlucky few who used it.
- */
- if (typeof reqHeaders === "function") {
- var output = reqHeaders.call(bs, opt.toJS());
- if (Object.keys(output).length) {
- return reqFns.concat(function (proxyReq) {
- Object.keys(output).forEach(function (key) {
- proxyReq.setHeader(key, output[key]);
- });
- });
- }
- }
-
- /**
- * Now, if {key:value} given, set the each header
- *
- * eg: reqHeaders: {
- * 'is-dev': 'true'
- * }
- */
- if (Map.isMap(reqHeaders)) {
- return reqFns.concat(function (proxyReq) {
- reqHeaders.forEach(function (value, key) {
- proxyReq.setHeader(key, value);
- });
- });
- }
-
- return reqFns;
-}
diff --git a/node_modules/browser-sync/lib/server/proxy-utils.js b/node_modules/browser-sync/lib/server/proxy-utils.js
deleted file mode 100644
index 6af28ca..0000000
--- a/node_modules/browser-sync/lib/server/proxy-utils.js
+++ /dev/null
@@ -1,138 +0,0 @@
-var url = require("url");
-
-module.exports.rewriteLinks = function (userServer) {
-
- var host = userServer.hostname;
- var string = host;
- var port = userServer.port;
-
- if (host && port) {
- if (parseInt(port, 10) !== 80) {
- string = host + ":" + port;
- }
- }
-
- return {
- match: new RegExp("https?:\\\\/\\\\/" + string + "|('|\")\\\/\\\/" + string + "|https?://" + string + "(\/)?|('|\")(https?://|/|\\.)?" + string + "(\/)?(.*?)(?=[ ,'\"\\s])", "g"),
- //match: new RegExp("https?:\\\\/\\\\/" + string + "|https?://" + string + "(\/)?|('|\")(https?://|/|\\.)?" + string + "(\/)?(.*?)(?=[ ,'\"\\s])", "g"),
- //match: new RegExp("https?:\\\\?/\\\\?/" + string + "(\/)?|('|\")(https?://|\\\\?/|\\.)?" + string + "(\/)?(.*?)(?=[ ,'\"\\s])", "g"),
- //match: new RegExp('https?://' + string + '(\/)?|(\'|")(https?://|/|\\.)?' + string + '(\/)?(.*?)(?=[ ,\'"\\s])', 'g'),
- //match: new RegExp("https?:\\\\/\\\\/" + string, "g"),
- fn: function (req, res, match) {
-
- var proxyUrl = req.headers["host"];
-
- /**
- * Reject subdomains
- */
- if (match[0] === ".") {
- return match;
- }
-
- var captured = match[0] === "'" || match[0] === "\"" ? match[0] : "";
-
- /**
- * allow http https
- * @type {string}
- */
- var pre = "//";
-
- if (match[0] === "'" || match[0] === "\"") {
- match = match.slice(1);
- }
-
- /**
- * parse the url
- * @type {number|*}
- */
- var out = url.parse(match);
-
- /**
- * If host not set, just do a simple replace
- */
- if (!out.host) {
- string = string.replace(/^(\/)/, "");
- return captured + match.replace(string, proxyUrl);
- }
-
- /**
- * Only add trailing slash if one was
- * present in the original match
- */
- if (out.path === "/") {
- if (match.slice(-1) === "/") {
- out.path = "/";
- } else {
- out.path = "";
- }
- }
-
- /**
- * Finally append all of parsed url
- */
- return [
- captured,
- pre,
- proxyUrl,
- out.path || "",
- out.hash || ""
- ].join("");
- }
- };
-};
-
-/**
- * Remove 'domain' from any cookies
- * @param {Object} res
- */
-module.exports.checkCookies = function checkCookies (res) {
- if (typeof(res.headers["set-cookie"]) !== "undefined") {
- res.headers["set-cookie"] = res.headers["set-cookie"].map(function (item) {
- return rewriteCookies(item);
- });
- }
-};
-
-/**
- * Remove the domain from any cookies.
- * @param rawCookie
- * @returns {string}
- */
-function rewriteCookies (rawCookie) {
-
- var objCookie = (function () {
- // simple parse function (does not remove quotes)
- var obj = {};
- var pairs = rawCookie.split(/; */);
-
- pairs.forEach( function( pair ) {
- var eqIndex = pair.indexOf("=");
-
- // skip things that don't look like key=value
- if (eqIndex < 0) {
- return;
- }
-
- var key = pair.substr(0, eqIndex).trim();
- obj[key] = pair.substr(eqIndex + 1, pair.length).trim();
- });
-
- return obj;
- })();
-
- var pairs = Object.keys(objCookie)
- .filter(function (item) {
- return item !== "domain";
- })
- .map(function (key) {
- return key + "=" + objCookie[key];
- });
-
- if (rawCookie.match(/httponly/i)) {
- pairs.push("HttpOnly");
- }
-
- return pairs.join("; ");
-}
-
-module.exports.rewriteCookies = rewriteCookies;
diff --git a/node_modules/browser-sync/lib/server/snippet-server.js b/node_modules/browser-sync/lib/server/snippet-server.js
deleted file mode 100644
index 4d79975..0000000
--- a/node_modules/browser-sync/lib/server/snippet-server.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var connect = require("connect");
-var serverUtils = require("./utils.js");
-
-/**
- * Create a server for the snippet
- * @param {BrowserSync} bs
- * @param scripts
- * @returns {*}
- */
-module.exports = function createSnippetServer (bs, scripts) {
-
- var app = serverUtils.getBaseApp(bs, bs.options, scripts);
- return serverUtils.getServer(app, bs.options);
-};
diff --git a/node_modules/browser-sync/lib/server/static-server.js b/node_modules/browser-sync/lib/server/static-server.js
deleted file mode 100644
index 5a0edf0..0000000
--- a/node_modules/browser-sync/lib/server/static-server.js
+++ /dev/null
@@ -1,79 +0,0 @@
-"use strict";
-
-var connect = require("connect");
-var serverUtils = require("./utils.js");
-var resolve = require("path").resolve;
-var utils = require("../utils.js");
-var serveStatic = require("serve-static");
-var serveIndex = require("serve-index");
-
-/**
- * @param {BrowserSync} bs
- * @param scripts
- * @returns {*}
- */
-module.exports = function createServer (bs) {
-
- var options = bs.options;
- var server = options.get("server");
- var basedirs = utils.arrayify(server.get("baseDir"));
- var serveStaticOptions = server.get("serveStaticOptions").toJS(); // passed to 3rd party
-
- var _serveStatic = 0;
- var _routes = 0;
- bs.options = bs.options
- /**
- * Add directory Middleware if given in server.directory
- */
- .update("middleware", function (mw) {
- if (!server.get("directory")) {
- return mw;
- }
-
- return mw.concat({
- route: "",
- handle: serveIndex(resolve(basedirs[0]), {icons:true}),
- id: "Browsersync Server Directory Middleware"
- });
- })
- /**
- * Add middleware for server.baseDir Option
- */
- .update("middleware", function (mw) {
- return mw.concat(basedirs.map(function (root) {
- return {
- route: "",
- id: "Browsersync Server ServeStatic Middleware - " + _serveStatic++,
- handle: serveStatic(resolve(root), serveStaticOptions)
- }
- }));
- })
- /**
- * Add middleware for server.routes
- */
- .update("middleware", function (mw) {
-
- if (!server.get("routes")) {
- return mw;
- }
-
- return mw.concat(server.get("routes").map(function (root, urlPath) {
- // strip trailing slash
- if (urlPath[urlPath.length - 1] === "/") {
- urlPath = urlPath.slice(0, -1);
- }
- return {
- route: urlPath,
- id: "Browsersync Server Routes Middleware - " + _routes++,
- handle: serveStatic(resolve(root))
- }
- }));
- });
-
- var app = serverUtils.getBaseApp(bs);
-
- /**
- * Finally, return the server + App
- */
- return serverUtils.getServer(app, bs.options);
-};
diff --git a/node_modules/browser-sync/lib/server/utils.js b/node_modules/browser-sync/lib/server/utils.js
deleted file mode 100644
index 13a5cb7..0000000
--- a/node_modules/browser-sync/lib/server/utils.js
+++ /dev/null
@@ -1,453 +0,0 @@
-"use strict";
-
-var fs = require("fs");
-var path = require("path");
-var join = require("path").join;
-var connect = require("connect");
-var Immutable = require("immutable");
-var http = require("http");
-var https = require("https");
-var Map = require("immutable").Map;
-var fromJS = require("immutable").fromJS;
-var List = require("immutable").List;
-var snippet = require("./../snippet").utils;
-var _ = require("./../../lodash.custom");
-var serveStatic = require("serve-static");
-var logger = require("../logger");
-var snippetUtils = require("../snippet").utils;
-var lrSnippet = require("resp-modifier");
-var utils = require("../utils");
-
-function getCa (options) {
- var caOption = options.getIn(["https", "ca"]);
- // if not provided, use Browsersync self-signed
- if (typeof caOption === "undefined") {
- return fs.readFileSync(join(__dirname, "certs", "server.csr"));
- }
- // if a string was given, read that file from disk
- if (typeof caOption === "string") {
- return fs.readFileSync(caOption);
- }
- // if an array was given, read all
- if (List.isList(caOption)) {
- return caOption.toArray().map(function (x) {
- return fs.readFileSync(x);
- });
- }
-}
-
-function getKey(options) {
- return fs.readFileSync(options.getIn(["https", "key"]) || join(__dirname, "certs", "server.key"));
-}
-
-function getCert(options) {
- return fs.readFileSync(options.getIn(["https", "cert"]) || join(__dirname, "certs", "server.crt"));
-}
-
-function getHttpsServerDefaults (options) {
- return fromJS({
- key: getKey(options),
- cert: getCert(options),
- ca: getCa(options),
- passphrase: ""
- });
-}
-
-function getPFXDefaults (options) {
- return fromJS({
- pfx: fs.readFileSync(options.getIn(["https", "pfx"]))
- });
-}
-
-var serverUtils = {
- /**
- * @param options
- * @returns {{key, cert}}
- */
- getHttpsOptions: function (options) {
- var userOption = options.get("https");
- if (Map.isMap(userOption)) {
- if (userOption.has("pfx")) {
- return userOption.mergeDeep(getPFXDefaults(options));
- }
- return userOption.mergeDeep(getHttpsServerDefaults(options));
- }
- return getHttpsServerDefaults(options);
- },
- /**
- * Get either http or https server
- * or use the httpModule provided in options if present
- */
- getServer: function (app, options) {
- return {
- server: (function () {
-
- var httpModule = serverUtils.getHttpModule(options);
-
- if (options.get("scheme") === "https") {
- var opts = serverUtils.getHttpsOptions(options);
- return httpModule.createServer(opts.toJS(), app);
- }
-
- return httpModule.createServer(app);
- })(),
- app: app
- };
- },
- getHttpModule: function (options) {
- /**
- * Users may provide a string to be used by nodes
- * require lookup.
- */
- var httpModule = options.get("httpModule");
-
- if (typeof httpModule === "string") {
- /**
- * Note, this could throw, but let that happen as
- * the error message good enough.
- */
- var maybe = path.resolve(process.cwd(), "node_modules", httpModule);
- return require(maybe);
- }
-
- if (options.get("scheme") === "https") {
- return https;
- }
-
- return http;
- },
- getMiddlewares: function (bs) {
-
- var clientJs = bs.pluginManager.hook("client:js", {
- port: bs.options.get("port"),
- options: bs.options
- });
-
- var scripts = bs.pluginManager.get("client:script")(
- bs.options.toJS(),
- clientJs,
- "middleware"
- );
-
- var defaultMiddlewares = [
- {
- id: "Browsersync HTTP Protocol",
- route: require("../config").httpProtocol.path,
- handle: require("../http-protocol").middleware(bs)
- },
- {
- id: "Browsersync IE8 Support",
- route: "",
- handle: snippet.isOldIe(bs.options.get("excludedFileTypes").toJS())
- },
- {
- id: "Browsersync Response Modifier",
- route: "",
- handle: serverUtils.getSnippetMiddleware(bs)
- },
- {
- id: "Browsersync Client - versioned",
- route: bs.options.getIn(["scriptPaths", "versioned"]),
- handle: scripts
- },
- {
- id: "Browsersync Client",
- route: bs.options.getIn(["scriptPaths", "path"]),
- handle: scripts
- }
- ];
-
- /**
- * Add cors middleware to the front of the stack
- * if a user provided a 'cors' flag
- */
- if (bs.options.get("cors")) {
- defaultMiddlewares.unshift({
- id: "Browsersync CORS support",
- route: "",
- handle: serverUtils.getCorsMiddlewware()
- })
- }
-
- /**
- * Add serve static middleware
- */
- if (bs.options.get("serveStatic")) {
-
- var ssMiddlewares = serverUtils.getServeStaticMiddlewares(bs.options.get("serveStatic"), bs.options.get("serveStaticOptions", Immutable.Map({})).toJS());
- var withErrors = ssMiddlewares.filter(function(x) { return x.get("errors").size > 0 });
- var withoutErrors = ssMiddlewares.filter(function(x) { return x.get("errors").size === 0 });
-
- if (withErrors.size) {
- withErrors.forEach(function (item) {
- logger.logger.error("{red:Warning!} %s", item.getIn(["errors", 0, "data", "message"]));
- });
- }
-
- if (withoutErrors.size) {
- withoutErrors.forEach(function (item) {
- defaultMiddlewares.push.apply(defaultMiddlewares, item.get("items").toJS());
- });
- }
- }
-
- /**
- * Add user-provided middlewares
- */
- var userMiddlewares = bs.options.get("middleware").map(normaliseMiddleware).toArray();
- var beforeMiddlewares = userMiddlewares.filter(function (x) { return x.override; });
- var afterMiddlewares = userMiddlewares.filter(function (x) { return !x.override; });
-
- return [].concat(beforeMiddlewares, defaultMiddlewares, afterMiddlewares);
-
- function normaliseMiddleware(item) {
- /**
- * Object given in options, which
- * ended up being a Map
- */
- if (Map.isMap(item)) {
- return item.toJS();
- }
- /**
- * Single function
- */
- if (typeof item === "function") {
- return {
- route: "",
- handle: item
- }
- }
- /**
- * Plain obj
- */
- if ((item.route !== undefined) && item.handle) {
- return item;
- }
- }
- },
- getBaseApp: function (bs) {
-
- var app = connect();
- var middlewares = serverUtils.getMiddlewares(bs);
-
- /**
- * Add all internal middlewares
- */
- middlewares.forEach(function (item) {
- app.stack.push(item);
- });
-
- return app;
- },
- getSnippetMiddleware: function (bs) {
-
- var rules = [];
- var blacklist = List([])
- .concat(bs.options.getIn(["snippetOptions", "ignorePaths"]))
- .concat(bs.options.getIn(["snippetOptions", "blacklist"]))
- .filter(Boolean);
-
- var whitelist = List([])
- .concat(bs.options.getIn(["snippetOptions", "whitelist"]));
-
- // Snippet
- rules.push(snippetUtils.getRegex(bs.options.get("snippet"), bs.options.get("snippetOptions")));
-
- // User
- bs.options.get("rewriteRules").forEach(function (rule) {
- if (Map.isMap(rule)) {
- rules.push(rule.toJS());
- }
- if (_.isPlainObject(rule)) {
- rules.push(rule);
- }
- });
-
- // Proxy
- if (bs.options.get("proxy")) {
- var proxyRule = require("./proxy-utils").rewriteLinks(bs.options.getIn(["proxy", "url"]).toJS());
- rules.push(proxyRule);
- }
-
- var lr = lrSnippet.create({
- rules: rules,
- blacklist: blacklist.toArray(),
- whitelist: whitelist.toArray()
- });
-
- return lr.middleware;
- },
- getCorsMiddlewware: function () {
-
- return function (req, res, next) {
- // Website you wish to allow to connect
- res.setHeader("Access-Control-Allow-Origin", "*");
-
- // Request methods you wish to allow
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, PATCH, DELETE");
-
- // Request headers you wish to allow
- res.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type");
-
- // Set to true if you need the website to include cookies in the requests sent
- // to the API (e.g. in case you use sessions)
- res.setHeader("Access-Control-Allow-Credentials", true);
- next();
- }
- },
- /**
- * @param ssOption
- * @param serveStaticOptions
- * @returns {*}
- */
- getServeStaticMiddlewares: function (ssOption, serveStaticOptions) {
-
- return ssOption.map(function (dir, i) {
-
- /**
- * When a user gives a plain string only, eg:
- * serveStatic: ['./temp']
- * ->
- * This means a middleware will be created with
- * route: ''
- * handle: serveStatic('./temp', options)
- */
- if (_.isString(dir)) {
- return getFromString(dir)
- }
-
- /**
- * If a user gave an object eg:
- * serveStatic: [{route: "", dir: ["test", "./tmp"]}]
- * ->
- * This means we need to create a middle for each route + dir combo
- */
- if (Immutable.Map.isMap(dir)) {
- return getFromMap(dir, i);
- }
-
- /**
- * At this point, an item in the serveStatic array was not a string
- * or an object so we return an error that can be logged
- */
- return fromJS({
- items: [],
- errors: [{
- type: "Invalid Type",
- data: {
- message: "Only strings and Objects (with route+dir) are supported for the ServeStatic option"
- }
- }]
- })
- });
-
- /**
- * @param {string} x
- * @returns {string}
- */
- function getRoute (x) {
- if (x === "") return "";
- return x[0] === "/" ? x : "/" + x;
- }
-
- /**
- * @param dir
- * @returns {Map}
- */
- function getFromString(dir) {
- return fromJS({
- items: [
- {
- route: "",
- handle: serveStatic(dir, serveStaticOptions)
- }
- ],
- errors: []
- })
- }
-
- /**
- * @param dir
- * @returns {Map}
- */
- function getFromMap(dir) {
-
- var ssOptions = (function () {
- if (dir.get("options")) {
- return dir.get("options").toJS();
- }
- return {}
- })();
-
- var route = Immutable.List([]).concat(dir.get("route")).filter(_.isString);
- var _dir = Immutable.List([]).concat(dir.get("dir")).filter(_.isString);
-
- if (_dir.size === 0) {
-
- return fromJS({
- items: [],
- errors: [{
- type: "Invalid Object",
- data: {
- message: "Serve Static requires a 'dir' property when using an Object"
- }
- }]
- })
- }
-
- var ssItems = (function () {
-
- /**
- * iterate over every 'route' item
- * @type {Immutable.List|Immutable.List<*>|Immutable.List|*}
- */
- var routeItems = (function () {
-
- /**
- * If no 'route' was given, assume we want to match all
- * paths
- */
- if (route.size === 0) {
- return _dir.map(function (dirString) {
- return Map({
- route: "",
- dir: dirString
- });
- });
- }
-
- return route.reduce(function (acc, routeString) {
- /**
- * For each 'route' item, also iterate through 'dirs'
- * @type {Immutable.Iterable}
- */
- var perDir = _dir.map(function (dirString) {
- return Map({
- route: getRoute(routeString),
- dir: dirString
- })
- });
- return acc.concat(perDir);
-
- }, List([]));
- })();
-
- /**
- * Now create a serverStatic Middleware for each item
- */
- return routeItems.map(function (routeItem) {
- return routeItem.merge({
- handle: serveStatic(routeItem.get("dir"), ssOptions)
- });
- });
- })();
-
- return fromJS({
- items: ssItems,
- errors: []
- });
- }
- }
-};
-
-module.exports = serverUtils;
diff --git a/node_modules/browser-sync/lib/snippet.js b/node_modules/browser-sync/lib/snippet.js
deleted file mode 100644
index 1de4275..0000000
--- a/node_modules/browser-sync/lib/snippet.js
+++ /dev/null
@@ -1,106 +0,0 @@
-"use strict";
-
-var connectUtils = require("./connect-utils");
-var config = require("./config");
-
-var lrSnippet = require("resp-modifier");
-var path = require("path");
-var _ = require("../lodash.custom");
-var utils = require("./utils");
-var fs = require("fs");
-
-/**
- * Utils for snippet injection
- */
-var snippetUtils = {
- /**
- * @param {String} url
- * @param {Array} excludeList
- * @returns {boolean}
- */
- isExcluded: function (url, excludeList) {
-
- var extension = path.extname(url);
-
- if (extension) {
-
- if (~url.indexOf("?")) {
- return true;
- }
- extension = extension.slice(1);
- return _.includes(excludeList, extension);
- }
- return false;
- },
- /**
- * @param {String} snippet
- * @param {Object} options
- * @returns {{match: RegExp, fn: Function}}
- */
- getRegex: function (snippet, options) {
-
- var fn = options.getIn(["rule", "fn"]);
-
- return {
- match: options.getIn(["rule", "match"]),
- fn: function (req, res, match) {
- return fn.apply(null, [snippet, match]);
- },
- once: true,
- id: "bs-snippet"
- };
- },
- getSnippetMiddleware: function (snippet, options, rewriteRules) {
- return lrSnippet.create(snippetUtils.getRules(snippet, options, rewriteRules));
- },
- getRules: function (snippet, options, rewriteRules) {
-
- var rules = [snippetUtils.getRegex(snippet, options)];
-
- if (rewriteRules) {
- rules = rules.concat(rewriteRules);
- }
-
- return {
- rules: rules,
- blacklist: utils.arrayify(options.get("blacklist")),
- whitelist: utils.arrayify(options.get("whitelist"))
- };
- },
- /**
- * @param {Object} req
- * @param {Array} [excludeList]
- * @returns {Object}
- */
- isOldIe: function (excludeList) {
- return function (req, res, next) {
- var ua = req.headers["user-agent"];
- var match = /MSIE (\d)\.\d/.exec(ua);
- if (match) {
- if (parseInt(match[1], 10) < 9) {
- if (!snippetUtils.isExcluded(req.url, excludeList)) {
- req.headers["accept"] = "text/html";
- }
- }
- }
- next();
- }
- },
- /**
- * @param {Number} port
- * @param {BrowserSync.options} options
- * @returns {String}
- */
- getClientJs: function (port, options) {
- var socket = snippetUtils.getSocketScript();
- var noConflictJs = "window.___browserSync___oldSocketIo = window.io;";
- return noConflictJs + socket + ";" + connectUtils.socketConnector(options);
- },
- /**
- * @returns {String}
- */
- getSocketScript: function () {
- return fs.readFileSync(path.join(__dirname, config.socketIoScript), "utf-8");
- }
-};
-module.exports.utils = snippetUtils;
diff --git a/node_modules/browser-sync/lib/sockets.js b/node_modules/browser-sync/lib/sockets.js
deleted file mode 100644
index 3238e0b..0000000
--- a/node_modules/browser-sync/lib/sockets.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-var socket = require("socket.io");
-var utils = require("./server/utils");
-var Steward = require("emitter-steward");
-
-/**
- * Plugin interface
- * @returns {*|function(this:exports)}
- */
-module.exports.plugin = function (server, clientEvents, bs) {
- return exports.init(server, clientEvents, bs);
-};
-
-/**
- * @param {http.Server} server
- * @param clientEvents
- * @param {BrowserSync} bs
- */
-module.exports.init = function (server, clientEvents, bs) {
-
- var emitter = bs.events;
-
- var socketConfig = bs.options
- .get("socket")
- .toJS();
-
- if (bs.options.get("mode") === "proxy" && bs.options.getIn(["proxy", "ws"])) {
- server = utils.getServer(null, bs.options).server;
- server.listen(bs.options.getIn(["socket", "port"]));
- bs.registerCleanupTask(function () {
- server.close();
- });
- }
-
- var socketIoConfig = socketConfig.socketIoOptions;
- socketIoConfig.path = socketConfig.path;
-
- var io = socket(server, socketIoConfig);
-
- // Override default namespace.
- io.sockets = io.of(socketConfig.namespace);
-
- io.set("heartbeat interval", socketConfig.clients.heartbeatTimeout);
-
- var steward = new Steward(emitter);
- bs.registerCleanupTask(steward.destroy.bind(steward));
-
- /**
- * Listen for new connections
- */
- io.sockets.on("connection", handleConnection);
-
- /**
- * Handle each new connection
- * @param {Object} client
- */
- function handleConnection (client) {
-
- // set ghostmode callbacks
- if (bs.options.get("ghostMode")) {
-
- addGhostMode(client);
- }
-
- client.emit("connection", bs.options.toJS()); //todo - trim the amount of options sent to clients
-
- emitter.emit("client:connected", {
- ua: client.handshake.headers["user-agent"]
- });
- }
-
- /**
- * @param {string} event
- * @param {Socket.client} client
- * @param {Object} data
- */
- function handleClientEvent(event, client, data) {
-
- if (steward.valid(client.id)) {
-
- client.broadcast.emit(event, data);
- }
- }
-
- /**
- * @param client
- */
- function addGhostMode (client) {
-
- clientEvents.forEach(addEvent);
-
- function addEvent(event) {
-
- client.on(event, handleClientEvent.bind(null, event, client));
- }
- }
-
- return io;
-};
diff --git a/node_modules/browser-sync/lib/templates/connector.tmpl b/node_modules/browser-sync/lib/templates/connector.tmpl
deleted file mode 100644
index 1de5a50..0000000
--- a/node_modules/browser-sync/lib/templates/connector.tmpl
+++ /dev/null
@@ -1,10 +0,0 @@
-window.___browserSync___ = {};
-___browserSync___.io = window.io;
-window.io = window.___browserSync___oldSocketIo;
-window.___browserSync___oldSocketIo=undefined;
-___browserSync___.socketConfig = %config%;
-___browserSync___.url = %url%;
-if (location.protocol == "https:" && /^http:/.test(___browserSync___.url)) {
- ___browserSync___.url = ___browserSync___.url.replace(/^http:/, "https:");
-}
-___browserSync___.socket = ___browserSync___.io(___browserSync___.url, ___browserSync___.socketConfig);
diff --git a/node_modules/browser-sync/lib/templates/script-tags-simple.tmpl b/node_modules/browser-sync/lib/templates/script-tags-simple.tmpl
deleted file mode 100644
index a04fa53..0000000
--- a/node_modules/browser-sync/lib/templates/script-tags-simple.tmpl
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/node_modules/browser-sync/lib/templates/script-tags.tmpl b/node_modules/browser-sync/lib/templates/script-tags.tmpl
deleted file mode 100644
index fed9de4..0000000
--- a/node_modules/browser-sync/lib/templates/script-tags.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/node_modules/browser-sync/lib/tunnel.js b/node_modules/browser-sync/lib/tunnel.js
deleted file mode 100644
index 45d4d54..0000000
--- a/node_modules/browser-sync/lib/tunnel.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var _ = require("../lodash.custom");
-var utils = require("util");
-
-/**
- * @param {BrowserSync} bs
- * @param {Function} cb
- */
-module.exports = function (bs, cb) {
-
- var opts = {};
- var options = bs.options;
- var port = options.get("port");
-
- if (_.isString(options.get("tunnel"))) {
- opts.subdomain = options.get("tunnel");
- }
-
- bs.debug("Requesting a tunnel connection on port: {magenta:%s}", port);
- bs.debug("Requesting a tunnel connection with options: {magenta:%s}", utils.inspect(opts));
-
- require("localtunnel")(port, opts, function (err, tunnel) {
- if (err) {
- return cb(err);
- }
-
- tunnel.on("error", function (err) {
- bs.logger.info("Localtunnel issue: " + err.message);
- bs.logger.info("Oops! The localtunnel appears to have disconnected. Reconnecting...");
- });
-
- return cb(null, tunnel);
- });
-};
diff --git a/node_modules/browser-sync/lib/utils.js b/node_modules/browser-sync/lib/utils.js
deleted file mode 100644
index 7c8a6d8..0000000
--- a/node_modules/browser-sync/lib/utils.js
+++ /dev/null
@@ -1,310 +0,0 @@
-"use strict";
-
-var _ = require("../lodash.custom");
-var devIp = require("dev-ip")();
-var Immutable = require("immutable");
-var portScanner = require("portscanner");
-var path = require("path");
-var List = require("immutable").List;
-var UAParser = require("ua-parser-js");
-var parser = new UAParser();
-
-var utils = {
- /**
- * @param {Object} options
- * @returns {String|boolean} - the IP address
- * @param devIp
- */
- getHostIp: function (options, devIp) {
-
- if (options) {
- var host = options.get("host");
- if (host && host !== "localhost") {
- return host;
- }
- if (options.get("detect") === false || !devIp.length) {
- return false;
- }
- }
-
- return devIp.length ? devIp[0] : false;
- },
- /**
- * Set URL Options
- */
- getUrlOptions: function (options) {
-
- var scheme = options.get("scheme");
-
- var port = options.get("port");
- var urls = {};
-
- if (options.get("online") === false) {
- urls.local = utils.getUrl(scheme + "://localhost:" + port, options);
- return Immutable.fromJS(urls);
- }
-
- var external = utils.xip(utils.getHostIp(options, devIp), options);
- var localhost = "localhost";
-
- if (options.get("xip")) {
- localhost = "127.0.0.1";
- }
-
- localhost = utils.xip(localhost, options);
-
- return Immutable.fromJS(utils.getUrls(external, localhost, scheme, options));
- },
- /**
- * Append a start path if given in options
- * @param {String} url
- * @param {Object} options
- * @returns {String}
- */
- getUrl: function (url, options) {
-
- var prefix = "/";
- var startPath = options.get("startPath");
-
- if (startPath) {
- if (startPath.charAt(0) === "/") {
- prefix = "";
- }
- url = url + prefix + startPath;
- }
-
- return url;
- },
- /**
- * @param {String} external
- * @param {String} local
- * @param {String} scheme
- * @param {Object} options
- * @returns {{local: string, external: string}}
- */
- getUrls: function (external, local, scheme, options) {
-
- var urls = {
- local: utils.getUrl(utils._makeUrl(scheme, local, options.get("port")), options)
- };
-
- if (external !== local) {
- urls.external = utils.getUrl(utils._makeUrl(scheme, external, options.get("port")), options);
- }
-
- return urls;
- },
- /**
- * @param {String} scheme
- * @param {String} host
- * @param {Number} port
- * @returns {String}
- * @private
- */
- _makeUrl: function (scheme, host, port) {
- return scheme + "://" + host + ":" + port;
- },
- /**
- * Get ports
- * @param {Object} options
- * @param {Function} cb
- */
- getPorts: function (options, cb) {
-
- var port = options.get("port");
- var ports = options.get("ports"); // backwards compatibility
- var max;
-
- if (ports) {
- port = ports.get("min");
- max = ports.get("max") || null;
- }
-
- utils.getPort(port, max, cb);
- },
- getPort: function (port, max, cb) {
- portScanner.findAPortNotInUse(port, max, {
- host: "localhost",
- timeout: 1000
- }, cb);
- },
- /**
- * @param {String} ua
- * @returns {Object}
- */
- getUaString: function (ua) {
- return parser.setUA(ua).getBrowser();
- },
- /**
- * Open the page in browser
- * @param {String} url
- * @param {Object} options
- * @param {BrowserSync} bs
- */
- openBrowser: function (url, options, bs) {
-
- var open = options.get("open");
- var browser = options.get("browser");
-
- if (_.isString(open)) {
- if (options.getIn(["urls", open])) {
- url = options.getIn(["urls", open]);
- }
- }
-
- if (open) {
- if (browser !== "default") {
- if (utils.isList(browser)) {
- browser.forEach(function (browser) {
- utils.open(url, browser, bs);
- });
- } else {
- utils.open(url, browser, bs); // single
- }
- } else {
- utils.open(url, null, bs);
- }
- }
- },
- /**
- * Wrapper for opn module
- * @param url
- * @param name
- * @param bs
- */
- open: function (url, name, bs) {
- var options = (function () {
- if (_.isString(name)) {
- return {app: name};
- }
- if (Immutable.Map.isMap(name)) {
- return name.toJS();
- }
- return {};
- })();
- var opn = require("opn");
- opn(url, options).catch(function() {
- bs.events.emit("browser:error");
- });
- },
- /**
- * @param {Boolean} kill
- * @param {String|Error} [errMessage]
- * @param {Function} [cb]
- */
- fail: function (kill, errMessage, cb) {
- if (kill) {
- if (_.isFunction(cb)) {
- if (errMessage.message) { // Is this an error object?
- cb(errMessage);
- } else {
- cb(new Error(errMessage));
- }
- }
- process.exit(1);
- }
- },
- /**
- * Add support for xip.io urls
- * @param {String} host
- * @param {Object} options
- * @returns {String}
- */
- xip: function (host, options) {
- var suffix = options.get("hostnameSuffix");
- if (options.get("xip")) {
- return host + ".xip.io";
- }
- if (suffix) {
- return host + suffix;
- }
- return host;
- },
- /**
- * Determine if an array of file paths will cause a full page reload.
- * @param {Array} needles - filepath such as ["core.css", "index.html"]
- * @param {Array} haystack
- * @returns {Boolean}
- */
- willCauseReload: function (needles, haystack) {
- return needles.some(function (needle) {
- return !_.includes(haystack, path.extname(needle).replace(".", ""));
- });
- },
- isList: Immutable.List.isList,
- isMap: Immutable.List.isMap,
- /**
- * @param {Map} options
- * @returns {Array}
- */
- getConfigErrors: function (options) {
-
- var messages = require("./config").errors;
-
- var errors = [];
-
- if (options.get("server") && options.get("proxy")) {
- errors.push(messages["server+proxy"]);
- }
-
- return errors;
- },
- /**
- * @param {Map} options
- * @param {Function} [cb]
- */
- verifyConfig: function (options, cb) {
- var errors = utils.getConfigErrors(options);
- if (errors.length) {
- utils.fail(true, errors.join("\n"), cb);
- return false;
- }
- return true;
- },
- /**
- * @param err
- */
- defaultCallback: function (err) {
- if (err && err.message) {
- console.error(err.message);
- }
- },
- eachSeries: function (arr, iterator, callback) {
- callback = callback || function () {};
- var completed = 0;
- var iterate = function () {
- iterator(arr[completed], function (err) {
- if (err) {
- callback(err);
- callback = function () {};
- } else {
- ++completed;
- if (completed >= arr.length) {
- callback();
- } else {
- iterate();
- }
- }
- });
- };
- iterate();
- },
- /**
- * @param {Immutable.List|Array|String} incoming
- * @returns {Array}
- */
- arrayify: function (incoming) {
- if (List.isList(incoming)) {
- return incoming.toArray();
- }
- return [].concat(incoming).filter(Boolean);
- }
-};
-
-module.exports = utils;
-module.exports.portscanner = portScanner;
-module.exports.UAParser = UAParser;
-module.exports.connect = require("connect");
-module.exports.devIp = devIp;
-module.exports.serveStatic = require("serve-static");
-module.exports.easyExtender = require("easy-extender");
diff --git a/node_modules/browser-sync/lodash.custom.js b/node_modules/browser-sync/lodash.custom.js
deleted file mode 100644
index a9cc489..0000000
--- a/node_modules/browser-sync/lodash.custom.js
+++ /dev/null
@@ -1,4314 +0,0 @@
-/**
- * @license
- * lodash (Custom Build)
- * Build: `lodash include="isUndefined,isFunction,toArray,includes,union,each,isString,merge,isObject,set" exports="node"`
- * Copyright jQuery Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */
-;(function() {
-
- /** Used as a safe reference for `undefined` in pre-ES5 environments. */
- var undefined;
-
- /** Used as the semantic version number. */
- var VERSION = '4.13.1';
-
- /** Used as the size to enable large array optimizations. */
- var LARGE_ARRAY_SIZE = 200;
-
- /** Used as the `TypeError` message for "Functions" methods. */
- var FUNC_ERROR_TEXT = 'Expected a function';
-
- /** Used to stand-in for `undefined` hash values. */
- var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
- /** Used to compose bitmasks for comparison styles. */
- var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
-
- /** Used as references for various `Number` constants. */
- var INFINITY = 1 / 0,
- MAX_SAFE_INTEGER = 9007199254740991,
- MAX_INTEGER = 1.7976931348623157e+308,
- NAN = 0 / 0;
-
- /** `Object#toString` result references. */
- var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- genTag = '[object GeneratorFunction]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- promiseTag = '[object Promise]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- symbolTag = '[object Symbol]',
- weakMapTag = '[object WeakMap]';
-
- var arrayBufferTag = '[object ArrayBuffer]',
- dataViewTag = '[object DataView]',
- float32Tag = '[object Float32Array]',
- float64Tag = '[object Float64Array]',
- int8Tag = '[object Int8Array]',
- int16Tag = '[object Int16Array]',
- int32Tag = '[object Int32Array]',
- uint8Tag = '[object Uint8Array]',
- uint8ClampedTag = '[object Uint8ClampedArray]',
- uint16Tag = '[object Uint16Array]',
- uint32Tag = '[object Uint32Array]';
-
- /** Used to match property names within property paths. */
- var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(\.|\[\])(?:\4|$))/g;
-
- /**
- * Used to match `RegExp`
- * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).
- */
- var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
-
- /** Used to match leading and trailing whitespace. */
- var reTrim = /^\s+|\s+$/g;
-
- /** Used to match backslashes in property paths. */
- var reEscapeChar = /\\(\\)?/g;
-
- /** Used to match `RegExp` flags from their coerced string values. */
- var reFlags = /\w*$/;
-
- /** Used to detect bad signed hexadecimal string values. */
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
-
- /** Used to detect binary string values. */
- var reIsBinary = /^0b[01]+$/i;
-
- /** Used to detect host constructors (Safari). */
- var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
- /** Used to detect octal string values. */
- var reIsOctal = /^0o[0-7]+$/i;
-
- /** Used to detect unsigned integer values. */
- var reIsUint = /^(?:0|[1-9]\d*)$/;
-
- /** Used to compose unicode character classes. */
- var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
- rsVarRange = '\\ufe0e\\ufe0f';
-
- /** Used to compose unicode capture groups. */
- var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
- rsFitz = '\\ud83c[\\udffb-\\udfff]',
- rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
- rsNonAstral = '[^' + rsAstralRange + ']',
- rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
- rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
- rsZWJ = '\\u200d';
-
- /** Used to compose unicode regexes. */
- var reOptMod = rsModifier + '?',
- rsOptVar = '[' + rsVarRange + ']?',
- rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
- rsSeq = rsOptVar + reOptMod + rsOptJoin,
- rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
-
- /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
- var reComplexSymbol = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
-
- /** Used to identify `toStringTag` values of typed arrays. */
- var typedArrayTags = {};
- typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
- typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
- typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
- typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
- typedArrayTags[uint32Tag] = true;
- typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
- typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
- typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
- typedArrayTags[errorTag] = typedArrayTags[funcTag] =
- typedArrayTags[mapTag] = typedArrayTags[numberTag] =
- typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
- typedArrayTags[setTag] = typedArrayTags[stringTag] =
- typedArrayTags[weakMapTag] = false;
-
- /** Used to identify `toStringTag` values supported by `_.clone`. */
- var cloneableTags = {};
- cloneableTags[argsTag] = cloneableTags[arrayTag] =
- cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
- cloneableTags[boolTag] = cloneableTags[dateTag] =
- cloneableTags[float32Tag] = cloneableTags[float64Tag] =
- cloneableTags[int8Tag] = cloneableTags[int16Tag] =
- cloneableTags[int32Tag] = cloneableTags[mapTag] =
- cloneableTags[numberTag] = cloneableTags[objectTag] =
- cloneableTags[regexpTag] = cloneableTags[setTag] =
- cloneableTags[stringTag] = cloneableTags[symbolTag] =
- cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
- cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
- cloneableTags[errorTag] = cloneableTags[funcTag] =
- cloneableTags[weakMapTag] = false;
-
- /** Built-in method references without a dependency on `root`. */
- var freeParseInt = parseInt;
-
- /** Detect free variable `exports`. */
- var freeExports = typeof exports == 'object' && exports;
-
- /** Detect free variable `module`. */
- var freeModule = freeExports && typeof module == 'object' && module;
-
- /** Detect the popular CommonJS extension `module.exports`. */
- var moduleExports = freeModule && freeModule.exports === freeExports;
-
- /** Detect free variable `global` from Node.js. */
- var freeGlobal = checkGlobal(typeof global == 'object' && global);
-
- /** Detect free variable `self`. */
- var freeSelf = checkGlobal(typeof self == 'object' && self);
-
- /** Detect `this` as the global object. */
- var thisGlobal = checkGlobal(typeof this == 'object' && this);
-
- /** Used as a reference to the global object. */
- var root = freeGlobal || freeSelf || thisGlobal || Function('return this')();
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * Adds the key-value `pair` to `map`.
- *
- * @private
- * @param {Object} map The map to modify.
- * @param {Array} pair The key-value pair to add.
- * @returns {Object} Returns `map`.
- */
- function addMapEntry(map, pair) {
- // Don't return `Map#set` because it doesn't return the map instance in IE 11.
- map.set(pair[0], pair[1]);
- return map;
- }
-
- /**
- * Adds `value` to `set`.
- *
- * @private
- * @param {Object} set The set to modify.
- * @param {*} value The value to add.
- * @returns {Object} Returns `set`.
- */
- function addSetEntry(set, value) {
- set.add(value);
- return set;
- }
-
- /**
- * A faster alternative to `Function#apply`, this function invokes `func`
- * with the `this` binding of `thisArg` and the arguments of `args`.
- *
- * @private
- * @param {Function} func The function to invoke.
- * @param {*} thisArg The `this` binding of `func`.
- * @param {Array} args The arguments to invoke `func` with.
- * @returns {*} Returns the result of `func`.
- */
- function apply(func, thisArg, args) {
- var length = args.length;
- switch (length) {
- case 0: return func.call(thisArg);
- case 1: return func.call(thisArg, args[0]);
- case 2: return func.call(thisArg, args[0], args[1]);
- case 3: return func.call(thisArg, args[0], args[1], args[2]);
- }
- return func.apply(thisArg, args);
- }
-
- /**
- * A specialized version of `_.forEach` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
- function arrayEach(array, iteratee) {
- var index = -1,
- length = array ? array.length : 0;
-
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
- }
- }
- return array;
- }
-
- /**
- * A specialized version of `_.includes` for arrays without support for
- * specifying an index to search from.
- *
- * @private
- * @param {Array} [array] The array to search.
- * @param {*} target The value to search for.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
- function arrayIncludes(array, value) {
- var length = array ? array.length : 0;
- return !!length && baseIndexOf(array, value, 0) > -1;
- }
-
- /**
- * This function is like `arrayIncludes` except that it accepts a comparator.
- *
- * @private
- * @param {Array} [array] The array to search.
- * @param {*} target The value to search for.
- * @param {Function} comparator The comparator invoked per element.
- * @returns {boolean} Returns `true` if `target` is found, else `false`.
- */
- function arrayIncludesWith(array, value, comparator) {
- var index = -1,
- length = array ? array.length : 0;
-
- while (++index < length) {
- if (comparator(value, array[index])) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * A specialized version of `_.map` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
- function arrayMap(array, iteratee) {
- var index = -1,
- length = array ? array.length : 0,
- result = Array(length);
-
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
- }
-
- /**
- * Appends the elements of `values` to `array`.
- *
- * @private
- * @param {Array} array The array to modify.
- * @param {Array} values The values to append.
- * @returns {Array} Returns `array`.
- */
- function arrayPush(array, values) {
- var index = -1,
- length = values.length,
- offset = array.length;
-
- while (++index < length) {
- array[offset + index] = values[index];
- }
- return array;
- }
-
- /**
- * A specialized version of `_.reduce` for arrays without support for
- * iteratee shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {*} [accumulator] The initial value.
- * @param {boolean} [initAccum] Specify using the first element of `array` as
- * the initial value.
- * @returns {*} Returns the accumulated value.
- */
- function arrayReduce(array, iteratee, accumulator, initAccum) {
- var index = -1,
- length = array ? array.length : 0;
-
- if (initAccum && length) {
- accumulator = array[++index];
- }
- while (++index < length) {
- accumulator = iteratee(accumulator, array[index], index, array);
- }
- return accumulator;
- }
-
- /**
- * A specialized version of `_.some` for arrays without support for iteratee
- * shorthands.
- *
- * @private
- * @param {Array} [array] The array to iterate over.
- * @param {Function} predicate The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check,
- * else `false`.
- */
- function arraySome(array, predicate) {
- var index = -1,
- length = array ? array.length : 0;
-
- while (++index < length) {
- if (predicate(array[index], index, array)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} value The value to search for.
- * @param {number} fromIndex The index to search from.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
- function baseIndexOf(array, value, fromIndex) {
- if (value !== value) {
- return indexOfNaN(array, fromIndex);
- }
- var index = fromIndex - 1,
- length = array.length;
-
- while (++index < length) {
- if (array[index] === value) {
- return index;
- }
- }
- return -1;
- }
-
- /**
- * The base implementation of `_.times` without support for iteratee shorthands
- * or max array length checks.
- *
- * @private
- * @param {number} n The number of times to invoke `iteratee`.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the array of results.
- */
- function baseTimes(n, iteratee) {
- var index = -1,
- result = Array(n);
-
- while (++index < n) {
- result[index] = iteratee(index);
- }
- return result;
- }
-
- /**
- * The base implementation of `_.values` and `_.valuesIn` which creates an
- * array of `object` property values corresponding to the property names
- * of `props`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array} props The property names to get values for.
- * @returns {Object} Returns the array of property values.
- */
- function baseValues(object, props) {
- return arrayMap(props, function(key) {
- return object[key];
- });
- }
-
- /**
- * Checks if a cache value for `key` exists.
- *
- * @private
- * @param {Object} cache The cache to query.
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function cacheHas(cache, key) {
- return cache.has(key);
- }
-
- /**
- * Checks if `value` is a global object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {null|Object} Returns `value` if it's a global object, else `null`.
- */
- function checkGlobal(value) {
- return (value && value.Object === Object) ? value : null;
- }
-
- /**
- * Gets the value at `key` of `object`.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {string} key The key of the property to get.
- * @returns {*} Returns the property value.
- */
- function getValue(object, key) {
- return object == null ? undefined : object[key];
- }
-
- /**
- * Gets the index at which the first occurrence of `NaN` is found in `array`.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {number} fromIndex The index to search from.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {number} Returns the index of the matched `NaN`, else `-1`.
- */
- function indexOfNaN(array, fromIndex, fromRight) {
- var length = array.length,
- index = fromIndex + (fromRight ? 1 : -1);
-
- while ((fromRight ? index-- : ++index < length)) {
- var other = array[index];
- if (other !== other) {
- return index;
- }
- }
- return -1;
- }
-
- /**
- * Checks if `value` is a host object in IE < 9.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
- */
- function isHostObject(value) {
- // Many host objects are `Object` objects that can coerce to strings
- // despite having improperly defined `toString` methods.
- var result = false;
- if (value != null && typeof value.toString != 'function') {
- try {
- result = !!(value + '');
- } catch (e) {}
- }
- return result;
- }
-
- /**
- * Converts `iterator` to an array.
- *
- * @private
- * @param {Object} iterator The iterator to convert.
- * @returns {Array} Returns the converted array.
- */
- function iteratorToArray(iterator) {
- var data,
- result = [];
-
- while (!(data = iterator.next()).done) {
- result.push(data.value);
- }
- return result;
- }
-
- /**
- * Converts `map` to its key-value pairs.
- *
- * @private
- * @param {Object} map The map to convert.
- * @returns {Array} Returns the key-value pairs.
- */
- function mapToArray(map) {
- var index = -1,
- result = Array(map.size);
-
- map.forEach(function(value, key) {
- result[++index] = [key, value];
- });
- return result;
- }
-
- /**
- * Converts `set` to an array of its values.
- *
- * @private
- * @param {Object} set The set to convert.
- * @returns {Array} Returns the values.
- */
- function setToArray(set) {
- var index = -1,
- result = Array(set.size);
-
- set.forEach(function(value) {
- result[++index] = value;
- });
- return result;
- }
-
- /**
- * Converts `string` to an array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the converted array.
- */
- function stringToArray(string) {
- return string.match(reComplexSymbol);
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Used for built-in method references. */
- var arrayProto = Array.prototype,
- objectProto = Object.prototype;
-
- /** Used to detect overreaching core-js shims. */
- var coreJsData = root['__core-js_shared__'];
-
- /** Used to detect methods masquerading as native. */
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
- return uid ? ('Symbol(src)_1.' + uid) : '';
- }());
-
- /** Used to resolve the decompiled source of functions. */
- var funcToString = Function.prototype.toString;
-
- /** Used to check objects for own properties. */
- var hasOwnProperty = objectProto.hasOwnProperty;
-
- /** Used to infer the `Object` constructor. */
- var objectCtorString = funcToString.call(Object);
-
- /**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
- var objectToString = objectProto.toString;
-
- /** Used to detect if a method is native. */
- var reIsNative = RegExp('^' +
- funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
- );
-
- /** Built-in value references. */
- var Buffer = moduleExports ? root.Buffer : undefined,
- Reflect = root.Reflect,
- Symbol = root.Symbol,
- Uint8Array = root.Uint8Array,
- enumerate = Reflect ? Reflect.enumerate : undefined,
- getOwnPropertySymbols = Object.getOwnPropertySymbols,
- iteratorSymbol = typeof (iteratorSymbol = Symbol && Symbol.iterator) == 'symbol' ? iteratorSymbol : undefined,
- objectCreate = Object.create,
- propertyIsEnumerable = objectProto.propertyIsEnumerable,
- splice = arrayProto.splice;
-
- /* Built-in method references for those with the same name as other `lodash` methods. */
- var nativeGetPrototype = Object.getPrototypeOf,
- nativeKeys = Object.keys,
- nativeMax = Math.max;
-
- /* Built-in method references that are verified to be native. */
- var DataView = getNative(root, 'DataView'),
- Map = getNative(root, 'Map'),
- Promise = getNative(root, 'Promise'),
- Set = getNative(root, 'Set'),
- WeakMap = getNative(root, 'WeakMap'),
- nativeCreate = getNative(Object, 'create');
-
- /** Used to lookup unminified function names. */
- var realNames = {};
-
- /** Used to detect maps, sets, and weakmaps. */
- var dataViewCtorString = toSource(DataView),
- mapCtorString = toSource(Map),
- promiseCtorString = toSource(Promise),
- setCtorString = toSource(Set),
- weakMapCtorString = toSource(WeakMap);
-
- /** Used to convert symbols to primitives and strings. */
- var symbolProto = Symbol ? Symbol.prototype : undefined,
- symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
- symbolToString = symbolProto ? symbolProto.toString : undefined;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates a `lodash` object which wraps `value` to enable implicit method
- * chain sequences. Methods that operate on and return arrays, collections,
- * and functions can be chained together. Methods that retrieve a single value
- * or may return a primitive value will automatically end the chain sequence
- * and return the unwrapped value. Otherwise, the value must be unwrapped
- * with `_#value`.
- *
- * Explicit chain sequences, which must be unwrapped with `_#value`, may be
- * enabled using `_.chain`.
- *
- * The execution of chained methods is lazy, that is, it's deferred until
- * `_#value` is implicitly or explicitly called.
- *
- * Lazy evaluation allows several methods to support shortcut fusion.
- * Shortcut fusion is an optimization to merge iteratee calls; this avoids
- * the creation of intermediate arrays and can greatly reduce the number of
- * iteratee executions. Sections of a chain sequence qualify for shortcut
- * fusion if the section is applied to an array of at least `200` elements
- * and any iteratees accept only one argument. The heuristic for whether a
- * section qualifies for shortcut fusion is subject to change.
- *
- * Chaining is supported in custom builds as long as the `_#value` method is
- * directly or indirectly included in the build.
- *
- * In addition to lodash methods, wrappers have `Array` and `String` methods.
- *
- * The wrapper `Array` methods are:
- * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
- *
- * The wrapper `String` methods are:
- * `replace` and `split`
- *
- * The wrapper methods that support shortcut fusion are:
- * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
- * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
- * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
- *
- * The chainable wrapper methods are:
- * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
- * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
- * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
- * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
- * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
- * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
- * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
- * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
- * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
- * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
- * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
- * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
- * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
- * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
- * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
- * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
- * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
- * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
- * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
- * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
- * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
- * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
- * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
- * `zipObject`, `zipObjectDeep`, and `zipWith`
- *
- * The wrapper methods that are **not** chainable by default are:
- * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
- * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `divide`, `each`,
- * `eachRight`, `endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`,
- * `findIndex`, `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`,
- * `floor`, `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`,
- * `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`,
- * `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`,
- * `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
- * `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
- * `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
- * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
- * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
- * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
- * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
- * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
- * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
- * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
- * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
- * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
- * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
- * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
- * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
- * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
- * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
- * `upperFirst`, `value`, and `words`
- *
- * @name _
- * @constructor
- * @category Seq
- * @param {*} value The value to wrap in a `lodash` instance.
- * @returns {Object} Returns the new `lodash` wrapper instance.
- * @example
- *
- * function square(n) {
- * return n * n;
- * }
- *
- * var wrapped = _([1, 2, 3]);
- *
- * // Returns an unwrapped value.
- * wrapped.reduce(_.add);
- * // => 6
- *
- * // Returns a wrapped value.
- * var squares = wrapped.map(square);
- *
- * _.isArray(squares);
- * // => false
- *
- * _.isArray(squares.value());
- * // => true
- */
- function lodash() {
- // No operation performed.
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates a hash object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function Hash(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
-
- /**
- * Removes all key-value entries from the hash.
- *
- * @private
- * @name clear
- * @memberOf Hash
- */
- function hashClear() {
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
- }
-
- /**
- * Removes `key` and its value from the hash.
- *
- * @private
- * @name delete
- * @memberOf Hash
- * @param {Object} hash The hash to modify.
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function hashDelete(key) {
- return this.has(key) && delete this.__data__[key];
- }
-
- /**
- * Gets the hash value for `key`.
- *
- * @private
- * @name get
- * @memberOf Hash
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function hashGet(key) {
- var data = this.__data__;
- if (nativeCreate) {
- var result = data[key];
- return result === HASH_UNDEFINED ? undefined : result;
- }
- return hasOwnProperty.call(data, key) ? data[key] : undefined;
- }
-
- /**
- * Checks if a hash value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Hash
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function hashHas(key) {
- var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
- }
-
- /**
- * Sets the hash `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Hash
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the hash instance.
- */
- function hashSet(key, value) {
- var data = this.__data__;
- data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
- return this;
- }
-
- // Add methods to `Hash`.
- Hash.prototype.clear = hashClear;
- Hash.prototype['delete'] = hashDelete;
- Hash.prototype.get = hashGet;
- Hash.prototype.has = hashHas;
- Hash.prototype.set = hashSet;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates an list cache object.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function ListCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
-
- /**
- * Removes all key-value entries from the list cache.
- *
- * @private
- * @name clear
- * @memberOf ListCache
- */
- function listCacheClear() {
- this.__data__ = [];
- }
-
- /**
- * Removes `key` and its value from the list cache.
- *
- * @private
- * @name delete
- * @memberOf ListCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function listCacheDelete(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- return false;
- }
- var lastIndex = data.length - 1;
- if (index == lastIndex) {
- data.pop();
- } else {
- splice.call(data, index, 1);
- }
- return true;
- }
-
- /**
- * Gets the list cache value for `key`.
- *
- * @private
- * @name get
- * @memberOf ListCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function listCacheGet(key) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- return index < 0 ? undefined : data[index][1];
- }
-
- /**
- * Checks if a list cache value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf ListCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function listCacheHas(key) {
- return assocIndexOf(this.__data__, key) > -1;
- }
-
- /**
- * Sets the list cache `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf ListCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the list cache instance.
- */
- function listCacheSet(key, value) {
- var data = this.__data__,
- index = assocIndexOf(data, key);
-
- if (index < 0) {
- data.push([key, value]);
- } else {
- data[index][1] = value;
- }
- return this;
- }
-
- // Add methods to `ListCache`.
- ListCache.prototype.clear = listCacheClear;
- ListCache.prototype['delete'] = listCacheDelete;
- ListCache.prototype.get = listCacheGet;
- ListCache.prototype.has = listCacheHas;
- ListCache.prototype.set = listCacheSet;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates a map cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function MapCache(entries) {
- var index = -1,
- length = entries ? entries.length : 0;
-
- this.clear();
- while (++index < length) {
- var entry = entries[index];
- this.set(entry[0], entry[1]);
- }
- }
-
- /**
- * Removes all key-value entries from the map.
- *
- * @private
- * @name clear
- * @memberOf MapCache
- */
- function mapCacheClear() {
- this.__data__ = {
- 'hash': new Hash,
- 'map': new (Map || ListCache),
- 'string': new Hash
- };
- }
-
- /**
- * Removes `key` and its value from the map.
- *
- * @private
- * @name delete
- * @memberOf MapCache
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function mapCacheDelete(key) {
- return getMapData(this, key)['delete'](key);
- }
-
- /**
- * Gets the map value for `key`.
- *
- * @private
- * @name get
- * @memberOf MapCache
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function mapCacheGet(key) {
- return getMapData(this, key).get(key);
- }
-
- /**
- * Checks if a map value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf MapCache
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function mapCacheHas(key) {
- return getMapData(this, key).has(key);
- }
-
- /**
- * Sets the map `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf MapCache
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the map cache instance.
- */
- function mapCacheSet(key, value) {
- getMapData(this, key).set(key, value);
- return this;
- }
-
- // Add methods to `MapCache`.
- MapCache.prototype.clear = mapCacheClear;
- MapCache.prototype['delete'] = mapCacheDelete;
- MapCache.prototype.get = mapCacheGet;
- MapCache.prototype.has = mapCacheHas;
- MapCache.prototype.set = mapCacheSet;
-
- /*------------------------------------------------------------------------*/
-
- /**
- *
- * Creates an array cache object to store unique values.
- *
- * @private
- * @constructor
- * @param {Array} [values] The values to cache.
- */
- function SetCache(values) {
- var index = -1,
- length = values ? values.length : 0;
-
- this.__data__ = new MapCache;
- while (++index < length) {
- this.add(values[index]);
- }
- }
-
- /**
- * Adds `value` to the array cache.
- *
- * @private
- * @name add
- * @memberOf SetCache
- * @alias push
- * @param {*} value The value to cache.
- * @returns {Object} Returns the cache instance.
- */
- function setCacheAdd(value) {
- this.__data__.set(value, HASH_UNDEFINED);
- return this;
- }
-
- /**
- * Checks if `value` is in the array cache.
- *
- * @private
- * @name has
- * @memberOf SetCache
- * @param {*} value The value to search for.
- * @returns {number} Returns `true` if `value` is found, else `false`.
- */
- function setCacheHas(value) {
- return this.__data__.has(value);
- }
-
- // Add methods to `SetCache`.
- SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
- SetCache.prototype.has = setCacheHas;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates a stack cache object to store key-value pairs.
- *
- * @private
- * @constructor
- * @param {Array} [entries] The key-value pairs to cache.
- */
- function Stack(entries) {
- this.__data__ = new ListCache(entries);
- }
-
- /**
- * Removes all key-value entries from the stack.
- *
- * @private
- * @name clear
- * @memberOf Stack
- */
- function stackClear() {
- this.__data__ = new ListCache;
- }
-
- /**
- * Removes `key` and its value from the stack.
- *
- * @private
- * @name delete
- * @memberOf Stack
- * @param {string} key The key of the value to remove.
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
- */
- function stackDelete(key) {
- return this.__data__['delete'](key);
- }
-
- /**
- * Gets the stack value for `key`.
- *
- * @private
- * @name get
- * @memberOf Stack
- * @param {string} key The key of the value to get.
- * @returns {*} Returns the entry value.
- */
- function stackGet(key) {
- return this.__data__.get(key);
- }
-
- /**
- * Checks if a stack value for `key` exists.
- *
- * @private
- * @name has
- * @memberOf Stack
- * @param {string} key The key of the entry to check.
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
- */
- function stackHas(key) {
- return this.__data__.has(key);
- }
-
- /**
- * Sets the stack `key` to `value`.
- *
- * @private
- * @name set
- * @memberOf Stack
- * @param {string} key The key of the value to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns the stack cache instance.
- */
- function stackSet(key, value) {
- var cache = this.__data__;
- if (cache instanceof ListCache && cache.__data__.length == LARGE_ARRAY_SIZE) {
- cache = this.__data__ = new MapCache(cache.__data__);
- }
- cache.set(key, value);
- return this;
- }
-
- // Add methods to `Stack`.
- Stack.prototype.clear = stackClear;
- Stack.prototype['delete'] = stackDelete;
- Stack.prototype.get = stackGet;
- Stack.prototype.has = stackHas;
- Stack.prototype.set = stackSet;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * This function is like `assignValue` except that it doesn't assign
- * `undefined` values.
- *
- * @private
- * @param {Object} object The object to modify.
- * @param {string} key The key of the property to assign.
- * @param {*} value The value to assign.
- */
- function assignMergeValue(object, key, value) {
- if ((value !== undefined && !eq(object[key], value)) ||
- (typeof key == 'number' && value === undefined && !(key in object))) {
- object[key] = value;
- }
- }
-
- /**
- * Assigns `value` to `key` of `object` if the existing value is not equivalent
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @private
- * @param {Object} object The object to modify.
- * @param {string} key The key of the property to assign.
- * @param {*} value The value to assign.
- */
- function assignValue(object, key, value) {
- var objValue = object[key];
- if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
- (value === undefined && !(key in object))) {
- object[key] = value;
- }
- }
-
- /**
- * Gets the index at which the `key` is found in `array` of key-value pairs.
- *
- * @private
- * @param {Array} array The array to search.
- * @param {*} key The key to search for.
- * @returns {number} Returns the index of the matched value, else `-1`.
- */
- function assocIndexOf(array, key) {
- var length = array.length;
- while (length--) {
- if (eq(array[length][0], key)) {
- return length;
- }
- }
- return -1;
- }
-
- /**
- * The base implementation of `_.assign` without support for multiple sources
- * or `customizer` functions.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @returns {Object} Returns `object`.
- */
- function baseAssign(object, source) {
- return object && copyObject(source, keys(source), object);
- }
-
- /**
- * The base implementation of `_.clone` and `_.cloneDeep` which tracks
- * traversed objects.
- *
- * @private
- * @param {*} value The value to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @param {boolean} [isFull] Specify a clone including symbols.
- * @param {Function} [customizer] The function to customize cloning.
- * @param {string} [key] The key of `value`.
- * @param {Object} [object] The parent object of `value`.
- * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
- * @returns {*} Returns the cloned value.
- */
- function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
- var result;
- if (customizer) {
- result = object ? customizer(value, key, object, stack) : customizer(value);
- }
- if (result !== undefined) {
- return result;
- }
- if (!isObject(value)) {
- return value;
- }
- var isArr = isArray(value);
- if (isArr) {
- result = initCloneArray(value);
- if (!isDeep) {
- return copyArray(value, result);
- }
- } else {
- var tag = getTag(value),
- isFunc = tag == funcTag || tag == genTag;
-
- if (isBuffer(value)) {
- return cloneBuffer(value, isDeep);
- }
- if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
- if (isHostObject(value)) {
- return object ? value : {};
- }
- result = initCloneObject(isFunc ? {} : value);
- if (!isDeep) {
- return copySymbols(value, baseAssign(result, value));
- }
- } else {
- if (!cloneableTags[tag]) {
- return object ? value : {};
- }
- result = initCloneByTag(value, tag, baseClone, isDeep);
- }
- }
- // Check for circular references and return its corresponding clone.
- stack || (stack = new Stack);
- var stacked = stack.get(value);
- if (stacked) {
- return stacked;
- }
- stack.set(value, result);
-
- if (!isArr) {
- var props = isFull ? getAllKeys(value) : keys(value);
- }
- // Recursively populate clone (susceptible to call stack limits).
- arrayEach(props || value, function(subValue, key) {
- if (props) {
- key = subValue;
- subValue = value[key];
- }
- assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
- });
- return result;
- }
-
- /**
- * The base implementation of `_.create` without support for assigning
- * properties to the created object.
- *
- * @private
- * @param {Object} prototype The object to inherit from.
- * @returns {Object} Returns the new object.
- */
- function baseCreate(proto) {
- return isObject(proto) ? objectCreate(proto) : {};
- }
-
- /**
- * The base implementation of `_.forEach` without support for iteratee shorthands.
- *
- * @private
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array|Object} Returns `collection`.
- */
- var baseEach = createBaseEach(baseForOwn);
-
- /**
- * The base implementation of `_.flatten` with support for restricting flattening.
- *
- * @private
- * @param {Array} array The array to flatten.
- * @param {number} depth The maximum recursion depth.
- * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
- * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
- * @param {Array} [result=[]] The initial result value.
- * @returns {Array} Returns the new flattened array.
- */
- function baseFlatten(array, depth, predicate, isStrict, result) {
- var index = -1,
- length = array.length;
-
- predicate || (predicate = isFlattenable);
- result || (result = []);
-
- while (++index < length) {
- var value = array[index];
- if (depth > 0 && predicate(value)) {
- if (depth > 1) {
- // Recursively flatten arrays (susceptible to call stack limits).
- baseFlatten(value, depth - 1, predicate, isStrict, result);
- } else {
- arrayPush(result, value);
- }
- } else if (!isStrict) {
- result[result.length] = value;
- }
- }
- return result;
- }
-
- /**
- * The base implementation of `baseForOwn` which iterates over `object`
- * properties returned by `keysFunc` and invokes `iteratee` for each property.
- * Iteratee functions may exit iteration early by explicitly returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
- var baseFor = createBaseFor();
-
- /**
- * The base implementation of `_.forOwn` without support for iteratee shorthands.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
- function baseForOwn(object, iteratee) {
- return object && baseFor(object, iteratee, keys);
- }
-
- /**
- * The base implementation of `_.get` without support for default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @returns {*} Returns the resolved value.
- */
- function baseGet(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
-
- var index = 0,
- length = path.length;
-
- while (object != null && index < length) {
- object = object[toKey(path[index++])];
- }
- return (index && index == length) ? object : undefined;
- }
-
- /**
- * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
- * `keysFunc` and `symbolsFunc` to get the enumerable property names and
- * symbols of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @param {Function} symbolsFunc The function to get the symbols of `object`.
- * @returns {Array} Returns the array of property names and symbols.
- */
- function baseGetAllKeys(object, keysFunc, symbolsFunc) {
- var result = keysFunc(object);
- return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
- }
-
- /**
- * The base implementation of `_.has` without support for deep paths.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {Array|string} key The key to check.
- * @returns {boolean} Returns `true` if `key` exists, else `false`.
- */
- function baseHas(object, key) {
- // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,
- // that are composed entirely of index properties, return `false` for
- // `hasOwnProperty` checks of them.
- return object != null &&
- (hasOwnProperty.call(object, key) ||
- (typeof object == 'object' && key in object && getPrototype(object) === null));
- }
-
- /**
- * The base implementation of `_.hasIn` without support for deep paths.
- *
- * @private
- * @param {Object} [object] The object to query.
- * @param {Array|string} key The key to check.
- * @returns {boolean} Returns `true` if `key` exists, else `false`.
- */
- function baseHasIn(object, key) {
- return object != null && key in Object(object);
- }
-
- /**
- * The base implementation of `_.isEqual` which supports partial comparisons
- * and tracks traversed objects.
- *
- * @private
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {boolean} [bitmask] The bitmask of comparison flags.
- * The bitmask may be composed of the following flags:
- * 1 - Unordered comparison
- * 2 - Partial comparison
- * @param {Object} [stack] Tracks traversed `value` and `other` objects.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- */
- function baseIsEqual(value, other, customizer, bitmask, stack) {
- if (value === other) {
- return true;
- }
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
- return value !== value && other !== other;
- }
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);
- }
-
- /**
- * A specialized version of `baseIsEqual` for arrays and objects which performs
- * deep comparisons and tracks traversed objects enabling objects with circular
- * references to be compared.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} [stack] Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
- function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
- var objIsArr = isArray(object),
- othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
-
- if (!objIsArr) {
- objTag = getTag(object);
- objTag = objTag == argsTag ? objectTag : objTag;
- }
- if (!othIsArr) {
- othTag = getTag(other);
- othTag = othTag == argsTag ? objectTag : othTag;
- }
- var objIsObj = objTag == objectTag && !isHostObject(object),
- othIsObj = othTag == objectTag && !isHostObject(other),
- isSameTag = objTag == othTag;
-
- if (isSameTag && !objIsObj) {
- stack || (stack = new Stack);
- return (objIsArr || isTypedArray(object))
- ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
- : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
- }
- if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
- var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
- othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
-
- if (objIsWrapped || othIsWrapped) {
- var objUnwrapped = objIsWrapped ? object.value() : object,
- othUnwrapped = othIsWrapped ? other.value() : other;
-
- stack || (stack = new Stack);
- return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);
- }
- }
- if (!isSameTag) {
- return false;
- }
- stack || (stack = new Stack);
- return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
- }
-
- /**
- * The base implementation of `_.isMatch` without support for iteratee shorthands.
- *
- * @private
- * @param {Object} object The object to inspect.
- * @param {Object} source The object of property values to match.
- * @param {Array} matchData The property names, values, and compare flags to match.
- * @param {Function} [customizer] The function to customize comparisons.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
- */
- function baseIsMatch(object, source, matchData, customizer) {
- var index = matchData.length,
- length = index,
- noCustomizer = !customizer;
-
- if (object == null) {
- return !length;
- }
- object = Object(object);
- while (index--) {
- var data = matchData[index];
- if ((noCustomizer && data[2])
- ? data[1] !== object[data[0]]
- : !(data[0] in object)
- ) {
- return false;
- }
- }
- while (++index < length) {
- data = matchData[index];
- var key = data[0],
- objValue = object[key],
- srcValue = data[1];
-
- if (noCustomizer && data[2]) {
- if (objValue === undefined && !(key in object)) {
- return false;
- }
- } else {
- var stack = new Stack;
- if (customizer) {
- var result = customizer(objValue, srcValue, key, object, source, stack);
- }
- if (!(result === undefined
- ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)
- : result
- )) {
- return false;
- }
- }
- }
- return true;
- }
-
- /**
- * The base implementation of `_.isNative` without bad shim checks.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function,
- * else `false`.
- */
- function baseIsNative(value) {
- if (!isObject(value) || isMasked(value)) {
- return false;
- }
- var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
- return pattern.test(toSource(value));
- }
-
- /**
- * The base implementation of `_.iteratee`.
- *
- * @private
- * @param {*} [value=_.identity] The value to convert to an iteratee.
- * @returns {Function} Returns the iteratee.
- */
- function baseIteratee(value) {
- // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
- // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
- if (typeof value == 'function') {
- return value;
- }
- if (value == null) {
- return identity;
- }
- if (typeof value == 'object') {
- return isArray(value)
- ? baseMatchesProperty(value[0], value[1])
- : baseMatches(value);
- }
- return property(value);
- }
-
- /**
- * The base implementation of `_.keys` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
- function baseKeys(object) {
- return nativeKeys(Object(object));
- }
-
- /**
- * The base implementation of `_.keysIn` which doesn't skip the constructor
- * property of prototypes or treat sparse arrays as dense.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
- function baseKeysIn(object) {
- object = object == null ? object : Object(object);
-
- var result = [];
- for (var key in object) {
- result.push(key);
- }
- return result;
- }
-
- // Fallback for IE < 9 with es6-shim.
- if (enumerate && !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf')) {
- baseKeysIn = function(object) {
- return iteratorToArray(enumerate(object));
- };
- }
-
- /**
- * The base implementation of `_.matches` which doesn't clone `source`.
- *
- * @private
- * @param {Object} source The object of property values to match.
- * @returns {Function} Returns the new spec function.
- */
- function baseMatches(source) {
- var matchData = getMatchData(source);
- if (matchData.length == 1 && matchData[0][2]) {
- return matchesStrictComparable(matchData[0][0], matchData[0][1]);
- }
- return function(object) {
- return object === source || baseIsMatch(object, source, matchData);
- };
- }
-
- /**
- * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
- *
- * @private
- * @param {string} path The path of the property to get.
- * @param {*} srcValue The value to match.
- * @returns {Function} Returns the new spec function.
- */
- function baseMatchesProperty(path, srcValue) {
- if (isKey(path) && isStrictComparable(srcValue)) {
- return matchesStrictComparable(toKey(path), srcValue);
- }
- return function(object) {
- var objValue = get(object, path);
- return (objValue === undefined && objValue === srcValue)
- ? hasIn(object, path)
- : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);
- };
- }
-
- /**
- * The base implementation of `_.merge` without support for multiple sources.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {number} srcIndex The index of `source`.
- * @param {Function} [customizer] The function to customize merged values.
- * @param {Object} [stack] Tracks traversed source values and their merged
- * counterparts.
- */
- function baseMerge(object, source, srcIndex, customizer, stack) {
- if (object === source) {
- return;
- }
- if (!(isArray(source) || isTypedArray(source))) {
- var props = keysIn(source);
- }
- arrayEach(props || source, function(srcValue, key) {
- if (props) {
- key = srcValue;
- srcValue = source[key];
- }
- if (isObject(srcValue)) {
- stack || (stack = new Stack);
- baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
- }
- else {
- var newValue = customizer
- ? customizer(object[key], srcValue, (key + ''), object, source, stack)
- : undefined;
-
- if (newValue === undefined) {
- newValue = srcValue;
- }
- assignMergeValue(object, key, newValue);
- }
- });
- }
-
- /**
- * A specialized version of `baseMerge` for arrays and objects which performs
- * deep merges and tracks traversed objects enabling objects with circular
- * references to be merged.
- *
- * @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {string} key The key of the value to merge.
- * @param {number} srcIndex The index of `source`.
- * @param {Function} mergeFunc The function to merge values.
- * @param {Function} [customizer] The function to customize assigned values.
- * @param {Object} [stack] Tracks traversed source values and their merged
- * counterparts.
- */
- function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
- var objValue = object[key],
- srcValue = source[key],
- stacked = stack.get(srcValue);
-
- if (stacked) {
- assignMergeValue(object, key, stacked);
- return;
- }
- var newValue = customizer
- ? customizer(objValue, srcValue, (key + ''), object, source, stack)
- : undefined;
-
- var isCommon = newValue === undefined;
-
- if (isCommon) {
- newValue = srcValue;
- if (isArray(srcValue) || isTypedArray(srcValue)) {
- if (isArray(objValue)) {
- newValue = objValue;
- }
- else if (isArrayLikeObject(objValue)) {
- newValue = copyArray(objValue);
- }
- else {
- isCommon = false;
- newValue = baseClone(srcValue, true);
- }
- }
- else if (isPlainObject(srcValue) || isArguments(srcValue)) {
- if (isArguments(objValue)) {
- newValue = toPlainObject(objValue);
- }
- else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
- isCommon = false;
- newValue = baseClone(srcValue, true);
- }
- else {
- newValue = objValue;
- }
- }
- else {
- isCommon = false;
- }
- }
- stack.set(srcValue, newValue);
-
- if (isCommon) {
- // Recursively merge objects and arrays (susceptible to call stack limits).
- mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
- }
- stack['delete'](srcValue);
- assignMergeValue(object, key, newValue);
- }
-
- /**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new accessor function.
- */
- function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
- }
-
- /**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new accessor function.
- */
- function basePropertyDeep(path) {
- return function(object) {
- return baseGet(object, path);
- };
- }
-
- /**
- * The base implementation of `_.set`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to set.
- * @param {*} value The value to set.
- * @param {Function} [customizer] The function to customize path creation.
- * @returns {Object} Returns `object`.
- */
- function baseSet(object, path, value, customizer) {
- path = isKey(path, object) ? [path] : castPath(path);
-
- var index = -1,
- length = path.length,
- lastIndex = length - 1,
- nested = object;
-
- while (nested != null && ++index < length) {
- var key = toKey(path[index]);
- if (isObject(nested)) {
- var newValue = value;
- if (index != lastIndex) {
- var objValue = nested[key];
- newValue = customizer ? customizer(objValue, key, nested) : undefined;
- if (newValue === undefined) {
- newValue = objValue == null
- ? (isIndex(path[index + 1]) ? [] : {})
- : objValue;
- }
- }
- assignValue(nested, key, newValue);
- }
- nested = nested[key];
- }
- return object;
- }
-
- /**
- * The base implementation of `_.toString` which doesn't convert nullish
- * values to empty strings.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
- function baseToString(value) {
- // Exit early for strings to avoid a performance hit in some environments.
- if (typeof value == 'string') {
- return value;
- }
- if (isSymbol(value)) {
- return symbolToString ? symbolToString.call(value) : '';
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
-
- /**
- * The base implementation of `_.uniqBy` without support for iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to inspect.
- * @param {Function} [iteratee] The iteratee invoked per element.
- * @param {Function} [comparator] The comparator invoked per element.
- * @returns {Array} Returns the new duplicate free array.
- */
- function baseUniq(array, iteratee, comparator) {
- var index = -1,
- includes = arrayIncludes,
- length = array.length,
- isCommon = true,
- result = [],
- seen = result;
-
- if (comparator) {
- isCommon = false;
- includes = arrayIncludesWith;
- }
- else if (length >= LARGE_ARRAY_SIZE) {
- var set = iteratee ? null : createSet(array);
- if (set) {
- return setToArray(set);
- }
- isCommon = false;
- includes = cacheHas;
- seen = new SetCache;
- }
- else {
- seen = iteratee ? [] : result;
- }
- outer:
- while (++index < length) {
- var value = array[index],
- computed = iteratee ? iteratee(value) : value;
-
- value = (comparator || value !== 0) ? value : 0;
- if (isCommon && computed === computed) {
- var seenIndex = seen.length;
- while (seenIndex--) {
- if (seen[seenIndex] === computed) {
- continue outer;
- }
- }
- if (iteratee) {
- seen.push(computed);
- }
- result.push(value);
- }
- else if (!includes(seen, computed, comparator)) {
- if (seen !== result) {
- seen.push(computed);
- }
- result.push(value);
- }
- }
- return result;
- }
-
- /**
- * Casts `value` to a path array if it's not one.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {Array} Returns the cast property path array.
- */
- function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
- }
-
- /**
- * Creates a clone of `buffer`.
- *
- * @private
- * @param {Buffer} buffer The buffer to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Buffer} Returns the cloned buffer.
- */
- function cloneBuffer(buffer, isDeep) {
- if (isDeep) {
- return buffer.slice();
- }
- var result = new buffer.constructor(buffer.length);
- buffer.copy(result);
- return result;
- }
-
- /**
- * Creates a clone of `arrayBuffer`.
- *
- * @private
- * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
- * @returns {ArrayBuffer} Returns the cloned array buffer.
- */
- function cloneArrayBuffer(arrayBuffer) {
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
- new Uint8Array(result).set(new Uint8Array(arrayBuffer));
- return result;
- }
-
- /**
- * Creates a clone of `dataView`.
- *
- * @private
- * @param {Object} dataView The data view to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned data view.
- */
- function cloneDataView(dataView, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
- return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
- }
-
- /**
- * Creates a clone of `map`.
- *
- * @private
- * @param {Object} map The map to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned map.
- */
- function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
- return arrayReduce(array, addMapEntry, new map.constructor);
- }
-
- /**
- * Creates a clone of `regexp`.
- *
- * @private
- * @param {Object} regexp The regexp to clone.
- * @returns {Object} Returns the cloned regexp.
- */
- function cloneRegExp(regexp) {
- var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
- result.lastIndex = regexp.lastIndex;
- return result;
- }
-
- /**
- * Creates a clone of `set`.
- *
- * @private
- * @param {Object} set The set to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned set.
- */
- function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
- return arrayReduce(array, addSetEntry, new set.constructor);
- }
-
- /**
- * Creates a clone of the `symbol` object.
- *
- * @private
- * @param {Object} symbol The symbol object to clone.
- * @returns {Object} Returns the cloned symbol object.
- */
- function cloneSymbol(symbol) {
- return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
- }
-
- /**
- * Creates a clone of `typedArray`.
- *
- * @private
- * @param {Object} typedArray The typed array to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the cloned typed array.
- */
- function cloneTypedArray(typedArray, isDeep) {
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
- }
-
- /**
- * Copies the values of `source` to `array`.
- *
- * @private
- * @param {Array} source The array to copy values from.
- * @param {Array} [array=[]] The array to copy values to.
- * @returns {Array} Returns `array`.
- */
- function copyArray(source, array) {
- var index = -1,
- length = source.length;
-
- array || (array = Array(length));
- while (++index < length) {
- array[index] = source[index];
- }
- return array;
- }
-
- /**
- * Copies properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy properties from.
- * @param {Array} props The property identifiers to copy.
- * @param {Object} [object={}] The object to copy properties to.
- * @param {Function} [customizer] The function to customize copied values.
- * @returns {Object} Returns `object`.
- */
- function copyObject(source, props, object, customizer) {
- object || (object = {});
-
- var index = -1,
- length = props.length;
-
- while (++index < length) {
- var key = props[index];
-
- var newValue = customizer
- ? customizer(object[key], source[key], key, object, source)
- : source[key];
-
- assignValue(object, key, newValue);
- }
- return object;
- }
-
- /**
- * Copies own symbol properties of `source` to `object`.
- *
- * @private
- * @param {Object} source The object to copy symbols from.
- * @param {Object} [object={}] The object to copy symbols to.
- * @returns {Object} Returns `object`.
- */
- function copySymbols(source, object) {
- return copyObject(source, getSymbols(source), object);
- }
-
- /**
- * Creates a function like `_.assign`.
- *
- * @private
- * @param {Function} assigner The function to assign values.
- * @returns {Function} Returns the new assigner function.
- */
- function createAssigner(assigner) {
- return rest(function(object, sources) {
- var index = -1,
- length = sources.length,
- customizer = length > 1 ? sources[length - 1] : undefined,
- guard = length > 2 ? sources[2] : undefined;
-
- customizer = (assigner.length > 3 && typeof customizer == 'function')
- ? (length--, customizer)
- : undefined;
-
- if (guard && isIterateeCall(sources[0], sources[1], guard)) {
- customizer = length < 3 ? undefined : customizer;
- length = 1;
- }
- object = Object(object);
- while (++index < length) {
- var source = sources[index];
- if (source) {
- assigner(object, source, index, customizer);
- }
- }
- return object;
- });
- }
-
- /**
- * Creates a `baseEach` or `baseEachRight` function.
- *
- * @private
- * @param {Function} eachFunc The function to iterate over a collection.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
- function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- if (collection == null) {
- return collection;
- }
- if (!isArrayLike(collection)) {
- return eachFunc(collection, iteratee);
- }
- var length = collection.length,
- index = fromRight ? length : -1,
- iterable = Object(collection);
-
- while ((fromRight ? index-- : ++index < length)) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
- }
-
- /**
- * Creates a base function for methods like `_.forIn` and `_.forOwn`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
- function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var index = -1,
- iterable = Object(object),
- props = keysFunc(object),
- length = props.length;
-
- while (length--) {
- var key = props[fromRight ? length : ++index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
- }
- }
- return object;
- };
- }
-
- /**
- * Creates a set of `values`.
- *
- * @private
- * @param {Array} values The values to add to the set.
- * @returns {Object} Returns the new set.
- */
- var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
- return new Set(values);
- };
-
- /**
- * A specialized version of `baseIsEqualDeep` for arrays with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Array} array The array to compare.
- * @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `array` and `other` objects.
- * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
- */
- function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- arrLength = array.length,
- othLength = other.length;
-
- if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
- return false;
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(array);
- if (stacked) {
- return stacked == other;
- }
- var index = -1,
- result = true,
- seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;
-
- stack.set(array, other);
-
- // Ignore non-index properties.
- while (++index < arrLength) {
- var arrValue = array[index],
- othValue = other[index];
-
- if (customizer) {
- var compared = isPartial
- ? customizer(othValue, arrValue, index, other, array, stack)
- : customizer(arrValue, othValue, index, array, other, stack);
- }
- if (compared !== undefined) {
- if (compared) {
- continue;
- }
- result = false;
- break;
- }
- // Recursively compare arrays (susceptible to call stack limits).
- if (seen) {
- if (!arraySome(other, function(othValue, othIndex) {
- if (!seen.has(othIndex) &&
- (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
- return seen.add(othIndex);
- }
- })) {
- result = false;
- break;
- }
- } else if (!(
- arrValue === othValue ||
- equalFunc(arrValue, othValue, customizer, bitmask, stack)
- )) {
- result = false;
- break;
- }
- }
- stack['delete'](array);
- return result;
- }
-
- /**
- * A specialized version of `baseIsEqualDeep` for comparing objects of
- * the same `toStringTag`.
- *
- * **Note:** This function only supports comparing values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {string} tag The `toStringTag` of the objects to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
- function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
- switch (tag) {
- case dataViewTag:
- if ((object.byteLength != other.byteLength) ||
- (object.byteOffset != other.byteOffset)) {
- return false;
- }
- object = object.buffer;
- other = other.buffer;
-
- case arrayBufferTag:
- if ((object.byteLength != other.byteLength) ||
- !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
- return false;
- }
- return true;
-
- case boolTag:
- case dateTag:
- // Coerce dates and booleans to numbers, dates to milliseconds and
- // booleans to `1` or `0` treating invalid dates coerced to `NaN` as
- // not equal.
- return +object == +other;
-
- case errorTag:
- return object.name == other.name && object.message == other.message;
-
- case numberTag:
- // Treat `NaN` vs. `NaN` as equal.
- return (object != +object) ? other != +other : object == +other;
-
- case regexpTag:
- case stringTag:
- // Coerce regexes to strings and treat strings, primitives and objects,
- // as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
- // for more details.
- return object == (other + '');
-
- case mapTag:
- var convert = mapToArray;
-
- case setTag:
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
- convert || (convert = setToArray);
-
- if (object.size != other.size && !isPartial) {
- return false;
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(object);
- if (stacked) {
- return stacked == other;
- }
- bitmask |= UNORDERED_COMPARE_FLAG;
- stack.set(object, other);
-
- // Recursively compare objects (susceptible to call stack limits).
- return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);
-
- case symbolTag:
- if (symbolValueOf) {
- return symbolValueOf.call(object) == symbolValueOf.call(other);
- }
- }
- return false;
- }
-
- /**
- * A specialized version of `baseIsEqualDeep` for objects with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
- * @param {Object} stack Tracks traversed `object` and `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
- function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- objProps = keys(object),
- objLength = objProps.length,
- othProps = keys(other),
- othLength = othProps.length;
-
- if (objLength != othLength && !isPartial) {
- return false;
- }
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isPartial ? key in other : baseHas(other, key))) {
- return false;
- }
- }
- // Assume cyclic values are equal.
- var stacked = stack.get(object);
- if (stacked) {
- return stacked == other;
- }
- var result = true;
- stack.set(object, other);
-
- var skipCtor = isPartial;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key],
- othValue = other[key];
-
- if (customizer) {
- var compared = isPartial
- ? customizer(othValue, objValue, key, other, object, stack)
- : customizer(objValue, othValue, key, object, other, stack);
- }
- // Recursively compare objects (susceptible to call stack limits).
- if (!(compared === undefined
- ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))
- : compared
- )) {
- result = false;
- break;
- }
- skipCtor || (skipCtor = key == 'constructor');
- }
- if (result && !skipCtor) {
- var objCtor = object.constructor,
- othCtor = other.constructor;
-
- // Non `Object` object instances with different constructors are not equal.
- if (objCtor != othCtor &&
- ('constructor' in object && 'constructor' in other) &&
- !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
- typeof othCtor == 'function' && othCtor instanceof othCtor)) {
- result = false;
- }
- }
- stack['delete'](object);
- return result;
- }
-
- /**
- * Creates an array of own enumerable property names and symbols of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names and symbols.
- */
- function getAllKeys(object) {
- return baseGetAllKeys(object, keys, getSymbols);
- }
-
- /**
- * Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
- * this function returns the custom method, otherwise it returns `baseIteratee`.
- * If arguments are provided, the chosen function is invoked with them and
- * its result is returned.
- *
- * @private
- * @param {*} [value] The value to convert to an iteratee.
- * @param {number} [arity] The arity of the created iteratee.
- * @returns {Function} Returns the chosen function or its result.
- */
- function getIteratee() {
- var result = lodash.iteratee || iteratee;
- result = result === iteratee ? baseIteratee : result;
- return arguments.length ? result(arguments[0], arguments[1]) : result;
- }
-
- /**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a
- * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects
- * Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
- var getLength = baseProperty('length');
-
- /**
- * Gets the data for `map`.
- *
- * @private
- * @param {Object} map The map to query.
- * @param {string} key The reference key.
- * @returns {*} Returns the map data.
- */
- function getMapData(map, key) {
- var data = map.__data__;
- return isKeyable(key)
- ? data[typeof key == 'string' ? 'string' : 'hash']
- : data.map;
- }
-
- /**
- * Gets the property names, values, and compare flags of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the match data of `object`.
- */
- function getMatchData(object) {
- var result = keys(object),
- length = result.length;
-
- while (length--) {
- var key = result[length],
- value = object[key];
-
- result[length] = [key, value, isStrictComparable(value)];
- }
- return result;
- }
-
- /**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
- function getNative(object, key) {
- var value = getValue(object, key);
- return baseIsNative(value) ? value : undefined;
- }
-
- /**
- * Gets the `[[Prototype]]` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {null|Object} Returns the `[[Prototype]]`.
- */
- function getPrototype(value) {
- return nativeGetPrototype(Object(value));
- }
-
- /**
- * Creates an array of the own enumerable symbol properties of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of symbols.
- */
- function getSymbols(object) {
- // Coerce `object` to an object to avoid non-object errors in V8.
- // See https://bugs.chromium.org/p/v8/issues/detail?id=3443 for more details.
- return getOwnPropertySymbols(Object(object));
- }
-
- // Fallback for IE < 11.
- if (!getOwnPropertySymbols) {
- getSymbols = stubArray;
- }
-
- /**
- * Gets the `toStringTag` of `value`.
- *
- * @private
- * @param {*} value The value to query.
- * @returns {string} Returns the `toStringTag`.
- */
- function getTag(value) {
- return objectToString.call(value);
- }
-
- // Fallback for data views, maps, sets, and weak maps in IE 11,
- // for data views in Edge, and promises in Node.js.
- if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
- (Map && getTag(new Map) != mapTag) ||
- (Promise && getTag(Promise.resolve()) != promiseTag) ||
- (Set && getTag(new Set) != setTag) ||
- (WeakMap && getTag(new WeakMap) != weakMapTag)) {
- getTag = function(value) {
- var result = objectToString.call(value),
- Ctor = result == objectTag ? value.constructor : undefined,
- ctorString = Ctor ? toSource(Ctor) : undefined;
-
- if (ctorString) {
- switch (ctorString) {
- case dataViewCtorString: return dataViewTag;
- case mapCtorString: return mapTag;
- case promiseCtorString: return promiseTag;
- case setCtorString: return setTag;
- case weakMapCtorString: return weakMapTag;
- }
- }
- return result;
- };
- }
-
- /**
- * Checks if `path` exists on `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @param {Function} hasFunc The function to check properties.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- */
- function hasPath(object, path, hasFunc) {
- path = isKey(path, object) ? [path] : castPath(path);
-
- var result,
- index = -1,
- length = path.length;
-
- while (++index < length) {
- var key = toKey(path[index]);
- if (!(result = object != null && hasFunc(object, key))) {
- break;
- }
- object = object[key];
- }
- if (result) {
- return result;
- }
- var length = object ? object.length : 0;
- return !!length && isLength(length) && isIndex(key, length) &&
- (isArray(object) || isString(object) || isArguments(object));
- }
-
- /**
- * Initializes an array clone.
- *
- * @private
- * @param {Array} array The array to clone.
- * @returns {Array} Returns the initialized clone.
- */
- function initCloneArray(array) {
- var length = array.length,
- result = array.constructor(length);
-
- // Add properties assigned by `RegExp#exec`.
- if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
- result.index = array.index;
- result.input = array.input;
- }
- return result;
- }
-
- /**
- * Initializes an object clone.
- *
- * @private
- * @param {Object} object The object to clone.
- * @returns {Object} Returns the initialized clone.
- */
- function initCloneObject(object) {
- return (typeof object.constructor == 'function' && !isPrototype(object))
- ? baseCreate(getPrototype(object))
- : {};
- }
-
- /**
- * Initializes an object clone based on its `toStringTag`.
- *
- * **Note:** This function only supports cloning values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} object The object to clone.
- * @param {string} tag The `toStringTag` of the object to clone.
- * @param {Function} cloneFunc The function to clone values.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @returns {Object} Returns the initialized clone.
- */
- function initCloneByTag(object, tag, cloneFunc, isDeep) {
- var Ctor = object.constructor;
- switch (tag) {
- case arrayBufferTag:
- return cloneArrayBuffer(object);
-
- case boolTag:
- case dateTag:
- return new Ctor(+object);
-
- case dataViewTag:
- return cloneDataView(object, isDeep);
-
- case float32Tag: case float64Tag:
- case int8Tag: case int16Tag: case int32Tag:
- case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
- return cloneTypedArray(object, isDeep);
-
- case mapTag:
- return cloneMap(object, isDeep, cloneFunc);
-
- case numberTag:
- case stringTag:
- return new Ctor(object);
-
- case regexpTag:
- return cloneRegExp(object);
-
- case setTag:
- return cloneSet(object, isDeep, cloneFunc);
-
- case symbolTag:
- return cloneSymbol(object);
- }
- }
-
- /**
- * Creates an array of index keys for `object` values of arrays,
- * `arguments` objects, and strings, otherwise `null` is returned.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array|null} Returns index keys, else `null`.
- */
- function indexKeys(object) {
- var length = object ? object.length : undefined;
- if (isLength(length) &&
- (isArray(object) || isString(object) || isArguments(object))) {
- return baseTimes(length, String);
- }
- return null;
- }
-
- /**
- * Checks if `value` is a flattenable `arguments` object or array.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
- */
- function isFlattenable(value) {
- return isArray(value) || isArguments(value);
- }
-
- /**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
- function isIndex(value, length) {
- length = length == null ? MAX_SAFE_INTEGER : length;
- return !!length &&
- (typeof value == 'number' || reIsUint.test(value)) &&
- (value > -1 && value % 1 == 0 && value < length);
- }
-
- /**
- * Checks if the given arguments are from an iteratee call.
- *
- * @private
- * @param {*} value The potential iteratee value argument.
- * @param {*} index The potential iteratee index or key argument.
- * @param {*} object The potential iteratee object argument.
- * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
- * else `false`.
- */
- function isIterateeCall(value, index, object) {
- if (!isObject(object)) {
- return false;
- }
- var type = typeof index;
- if (type == 'number'
- ? (isArrayLike(object) && isIndex(index, object.length))
- : (type == 'string' && index in object)
- ) {
- return eq(object[index], value);
- }
- return false;
- }
-
- /**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
- function isKey(value, object) {
- if (isArray(value)) {
- return false;
- }
- var type = typeof value;
- if (type == 'number' || type == 'symbol' || type == 'boolean' ||
- value == null || isSymbol(value)) {
- return true;
- }
- return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
- (object != null && value in Object(object));
- }
-
- /**
- * Checks if `value` is suitable for use as unique object key.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
- */
- function isKeyable(value) {
- var type = typeof value;
- return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
- ? (value !== '__proto__')
- : (value === null);
- }
-
- /**
- * Checks if `func` has its source masked.
- *
- * @private
- * @param {Function} func The function to check.
- * @returns {boolean} Returns `true` if `func` is masked, else `false`.
- */
- function isMasked(func) {
- return !!maskSrcKey && (maskSrcKey in func);
- }
-
- /**
- * Checks if `value` is likely a prototype object.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
- */
- function isPrototype(value) {
- var Ctor = value && value.constructor,
- proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
-
- return value === proto;
- }
-
- /**
- * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` if suitable for strict
- * equality comparisons, else `false`.
- */
- function isStrictComparable(value) {
- return value === value && !isObject(value);
- }
-
- /**
- * A specialized version of `matchesProperty` for source values suitable
- * for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @param {*} srcValue The value to match.
- * @returns {Function} Returns the new spec function.
- */
- function matchesStrictComparable(key, srcValue) {
- return function(object) {
- if (object == null) {
- return false;
- }
- return object[key] === srcValue &&
- (srcValue !== undefined || (key in Object(object)));
- };
- }
-
- /**
- * Converts `string` to a property path array.
- *
- * @private
- * @param {string} string The string to convert.
- * @returns {Array} Returns the property path array.
- */
- var stringToPath = memoize(function(string) {
- var result = [];
- toString(string).replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
- });
-
- /**
- * Converts `value` to a string key if it's not a string or symbol.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {string|symbol} Returns the key.
- */
- function toKey(value) {
- if (typeof value == 'string' || isSymbol(value)) {
- return value;
- }
- var result = (value + '');
- return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
- }
-
- /**
- * Converts `func` to its source code.
- *
- * @private
- * @param {Function} func The function to process.
- * @returns {string} Returns the source code.
- */
- function toSource(func) {
- if (func != null) {
- try {
- return funcToString.call(func);
- } catch (e) {}
- try {
- return (func + '');
- } catch (e) {}
- }
- return '';
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates an array of unique values, in order, from all given arrays using
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * for equality comparisons.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Array
- * @param {...Array} [arrays] The arrays to inspect.
- * @returns {Array} Returns the new array of combined values.
- * @example
- *
- * _.union([2], [1, 2]);
- * // => [2, 1]
- */
- var union = rest(function(arrays) {
- return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
- });
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Iterates over elements of `collection` and invokes `iteratee` for each element.
- * The iteratee is invoked with three arguments: (value, index|key, collection).
- * Iteratee functions may exit iteration early by explicitly returning `false`.
- *
- * **Note:** As with other "Collections" methods, objects with a "length"
- * property are iterated like arrays. To avoid this behavior use `_.forIn`
- * or `_.forOwn` for object iteration.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @alias each
- * @category Collection
- * @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
- * @returns {Array|Object} Returns `collection`.
- * @see _.forEachRight
- * @example
- *
- * _([1, 2]).forEach(function(value) {
- * console.log(value);
- * });
- * // => Logs `1` then `2`.
- *
- * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
- * console.log(key);
- * });
- * // => Logs 'a' then 'b' (iteration order is not guaranteed).
- */
- function forEach(collection, iteratee) {
- var func = isArray(collection) ? arrayEach : baseEach;
- return func(collection, getIteratee(iteratee, 3));
- }
-
- /**
- * Checks if `value` is in `collection`. If `collection` is a string, it's
- * checked for a substring of `value`, otherwise
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * is used for equality comparisons. If `fromIndex` is negative, it's used as
- * the offset from the end of `collection`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Collection
- * @param {Array|Object|string} collection The collection to search.
- * @param {*} value The value to search for.
- * @param {number} [fromIndex=0] The index to search from.
- * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
- * @returns {boolean} Returns `true` if `value` is found, else `false`.
- * @example
- *
- * _.includes([1, 2, 3], 1);
- * // => true
- *
- * _.includes([1, 2, 3], 1, 2);
- * // => false
- *
- * _.includes({ 'user': 'fred', 'age': 40 }, 'fred');
- * // => true
- *
- * _.includes('pebbles', 'eb');
- * // => true
- */
- function includes(collection, value, fromIndex, guard) {
- collection = isArrayLike(collection) ? collection : values(collection);
- fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
-
- var length = collection.length;
- if (fromIndex < 0) {
- fromIndex = nativeMax(length + fromIndex, 0);
- }
- return isString(collection)
- ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
- : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Creates a function that memoizes the result of `func`. If `resolver` is
- * provided, it determines the cache key for storing the result based on the
- * arguments provided to the memoized function. By default, the first argument
- * provided to the memoized function is used as the map cache key. The `func`
- * is invoked with the `this` binding of the memoized function.
- *
- * **Note:** The cache is exposed as the `cache` property on the memoized
- * function. Its creation may be customized by replacing the `_.memoize.Cache`
- * constructor with one whose instances implement the
- * [`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object)
- * method interface of `delete`, `get`, `has`, and `set`.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Function
- * @param {Function} func The function to have its output memoized.
- * @param {Function} [resolver] The function to resolve the cache key.
- * @returns {Function} Returns the new memoized function.
- * @example
- *
- * var object = { 'a': 1, 'b': 2 };
- * var other = { 'c': 3, 'd': 4 };
- *
- * var values = _.memoize(_.values);
- * values(object);
- * // => [1, 2]
- *
- * values(other);
- * // => [3, 4]
- *
- * object.a = 2;
- * values(object);
- * // => [1, 2]
- *
- * // Modify the result cache.
- * values.cache.set(object, ['a', 'b']);
- * values(object);
- * // => ['a', 'b']
- *
- * // Replace `_.memoize.Cache`.
- * _.memoize.Cache = WeakMap;
- */
- function memoize(func, resolver) {
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- var memoized = function() {
- var args = arguments,
- key = resolver ? resolver.apply(this, args) : args[0],
- cache = memoized.cache;
-
- if (cache.has(key)) {
- return cache.get(key);
- }
- var result = func.apply(this, args);
- memoized.cache = cache.set(key, result);
- return result;
- };
- memoized.cache = new (memoize.Cache || MapCache);
- return memoized;
- }
-
- // Assign cache to `_.memoize`.
- memoize.Cache = MapCache;
-
- /**
- * Creates a function that invokes `func` with the `this` binding of the
- * created function and arguments from `start` and beyond provided as
- * an array.
- *
- * **Note:** This method is based on the
- * [rest parameter](https://mdn.io/rest_parameters).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Function
- * @param {Function} func The function to apply a rest parameter to.
- * @param {number} [start=func.length-1] The start position of the rest parameter.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var say = _.rest(function(what, names) {
- * return what + ' ' + _.initial(names).join(', ') +
- * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
- * });
- *
- * say('hello', 'fred', 'barney', 'pebbles');
- * // => 'hello fred, barney, & pebbles'
- */
- function rest(func, start) {
- if (typeof func != 'function') {
- throw new TypeError(FUNC_ERROR_TEXT);
- }
- start = nativeMax(start === undefined ? (func.length - 1) : toInteger(start), 0);
- return function() {
- var args = arguments,
- index = -1,
- length = nativeMax(args.length - start, 0),
- array = Array(length);
-
- while (++index < length) {
- array[index] = args[start + index];
- }
- switch (start) {
- case 0: return func.call(this, array);
- case 1: return func.call(this, args[0], array);
- case 2: return func.call(this, args[0], args[1], array);
- }
- var otherArgs = Array(start + 1);
- index = -1;
- while (++index < start) {
- otherArgs[index] = args[index];
- }
- otherArgs[start] = array;
- return apply(func, this, otherArgs);
- };
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Performs a
- * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
- * comparison between two values to determine if they are equivalent.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- * @example
- *
- * var object = { 'user': 'fred' };
- * var other = { 'user': 'fred' };
- *
- * _.eq(object, object);
- * // => true
- *
- * _.eq(object, other);
- * // => false
- *
- * _.eq('a', 'a');
- * // => true
- *
- * _.eq('a', Object('a'));
- * // => false
- *
- * _.eq(NaN, NaN);
- * // => true
- */
- function eq(value, other) {
- return value === other || (value !== value && other !== other);
- }
-
- /**
- * Checks if `value` is likely an `arguments` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
- function isArguments(value) {
- // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.
- return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
- (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
- }
-
- /**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @type {Function}
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(document.body.children);
- * // => false
- *
- * _.isArray('abc');
- * // => false
- *
- * _.isArray(_.noop);
- * // => false
- */
- var isArray = Array.isArray;
-
- /**
- * Checks if `value` is array-like. A value is considered array-like if it's
- * not a function and has a `value.length` that's an integer greater than or
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- * @example
- *
- * _.isArrayLike([1, 2, 3]);
- * // => true
- *
- * _.isArrayLike(document.body.children);
- * // => true
- *
- * _.isArrayLike('abc');
- * // => true
- *
- * _.isArrayLike(_.noop);
- * // => false
- */
- function isArrayLike(value) {
- return value != null && isLength(getLength(value)) && !isFunction(value);
- }
-
- /**
- * This method is like `_.isArrayLike` except that it also checks if `value`
- * is an object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an array-like object,
- * else `false`.
- * @example
- *
- * _.isArrayLikeObject([1, 2, 3]);
- * // => true
- *
- * _.isArrayLikeObject(document.body.children);
- * // => true
- *
- * _.isArrayLikeObject('abc');
- * // => false
- *
- * _.isArrayLikeObject(_.noop);
- * // => false
- */
- function isArrayLikeObject(value) {
- return isObjectLike(value) && isArrayLike(value);
- }
-
- /**
- * Checks if `value` is a buffer.
- *
- * @static
- * @memberOf _
- * @since 4.3.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
- * @example
- *
- * _.isBuffer(new Buffer(2));
- * // => true
- *
- * _.isBuffer(new Uint8Array(2));
- * // => false
- */
- var isBuffer = !Buffer ? stubFalse : function(value) {
- return value instanceof Buffer;
- };
-
- /**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
- function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 8 which returns 'object' for typed array and weak map constructors,
- // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag;
- }
-
- /**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length,
- * else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
- function isLength(value) {
- return typeof value == 'number' &&
- value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
- }
-
- /**
- * Checks if `value` is the
- * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @since 0.1.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(_.noop);
- * // => true
- *
- * _.isObject(null);
- * // => false
- */
- function isObject(value) {
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
- }
-
- /**
- * Checks if `value` is object-like. A value is object-like if it's not `null`
- * and has a `typeof` result of "object".
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- * @example
- *
- * _.isObjectLike({});
- * // => true
- *
- * _.isObjectLike([1, 2, 3]);
- * // => true
- *
- * _.isObjectLike(_.noop);
- * // => false
- *
- * _.isObjectLike(null);
- * // => false
- */
- function isObjectLike(value) {
- return !!value && typeof value == 'object';
- }
-
- /**
- * Checks if `value` is a plain object, that is, an object created by the
- * `Object` constructor or one with a `[[Prototype]]` of `null`.
- *
- * @static
- * @memberOf _
- * @since 0.8.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object,
- * else `false`.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * }
- *
- * _.isPlainObject(new Foo);
- * // => false
- *
- * _.isPlainObject([1, 2, 3]);
- * // => false
- *
- * _.isPlainObject({ 'x': 0, 'y': 0 });
- * // => true
- *
- * _.isPlainObject(Object.create(null));
- * // => true
- */
- function isPlainObject(value) {
- if (!isObjectLike(value) ||
- objectToString.call(value) != objectTag || isHostObject(value)) {
- return false;
- }
- var proto = getPrototype(value);
- if (proto === null) {
- return true;
- }
- var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
- return (typeof Ctor == 'function' &&
- Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
- }
-
- /**
- * Checks if `value` is classified as a `String` primitive or object.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isString('abc');
- * // => true
- *
- * _.isString(1);
- * // => false
- */
- function isString(value) {
- return typeof value == 'string' ||
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
- }
-
- /**
- * Checks if `value` is classified as a `Symbol` primitive or object.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isSymbol(Symbol.iterator);
- * // => true
- *
- * _.isSymbol('abc');
- * // => false
- */
- function isSymbol(value) {
- return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
- }
-
- /**
- * Checks if `value` is classified as a typed array.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified,
- * else `false`.
- * @example
- *
- * _.isTypedArray(new Uint8Array);
- * // => true
- *
- * _.isTypedArray([]);
- * // => false
- */
- function isTypedArray(value) {
- return isObjectLike(value) &&
- isLength(value.length) && !!typedArrayTags[objectToString.call(value)];
- }
-
- /**
- * Checks if `value` is `undefined`.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
- * @example
- *
- * _.isUndefined(void 0);
- * // => true
- *
- * _.isUndefined(null);
- * // => false
- */
- function isUndefined(value) {
- return value === undefined;
- }
-
- /**
- * Converts `value` to an array.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {Array} Returns the converted array.
- * @example
- *
- * _.toArray({ 'a': 1, 'b': 2 });
- * // => [1, 2]
- *
- * _.toArray('abc');
- * // => ['a', 'b', 'c']
- *
- * _.toArray(1);
- * // => []
- *
- * _.toArray(null);
- * // => []
- */
- function toArray(value) {
- if (!value) {
- return [];
- }
- if (isArrayLike(value)) {
- return isString(value) ? stringToArray(value) : copyArray(value);
- }
- if (iteratorSymbol && value[iteratorSymbol]) {
- return iteratorToArray(value[iteratorSymbol]());
- }
- var tag = getTag(value),
- func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
-
- return func(value);
- }
-
- /**
- * Converts `value` to a finite number.
- *
- * @static
- * @memberOf _
- * @since 4.12.0
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted number.
- * @example
- *
- * _.toFinite(3.2);
- * // => 3.2
- *
- * _.toFinite(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toFinite(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toFinite('3.2');
- * // => 3.2
- */
- function toFinite(value) {
- if (!value) {
- return value === 0 ? value : 0;
- }
- value = toNumber(value);
- if (value === INFINITY || value === -INFINITY) {
- var sign = (value < 0 ? -1 : 1);
- return sign * MAX_INTEGER;
- }
- return value === value ? value : 0;
- }
-
- /**
- * Converts `value` to an integer.
- *
- * **Note:** This method is loosely based on
- * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {number} Returns the converted integer.
- * @example
- *
- * _.toInteger(3.2);
- * // => 3
- *
- * _.toInteger(Number.MIN_VALUE);
- * // => 0
- *
- * _.toInteger(Infinity);
- * // => 1.7976931348623157e+308
- *
- * _.toInteger('3.2');
- * // => 3
- */
- function toInteger(value) {
- var result = toFinite(value),
- remainder = result % 1;
-
- return result === result ? (remainder ? result - remainder : result) : 0;
- }
-
- /**
- * Converts `value` to a number.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {number} Returns the number.
- * @example
- *
- * _.toNumber(3.2);
- * // => 3.2
- *
- * _.toNumber(Number.MIN_VALUE);
- * // => 5e-324
- *
- * _.toNumber(Infinity);
- * // => Infinity
- *
- * _.toNumber('3.2');
- * // => 3.2
- */
- function toNumber(value) {
- if (typeof value == 'number') {
- return value;
- }
- if (isSymbol(value)) {
- return NAN;
- }
- if (isObject(value)) {
- var other = isFunction(value.valueOf) ? value.valueOf() : value;
- value = isObject(other) ? (other + '') : other;
- }
- if (typeof value != 'string') {
- return value === 0 ? value : +value;
- }
- value = value.replace(reTrim, '');
- var isBinary = reIsBinary.test(value);
- return (isBinary || reIsOctal.test(value))
- ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
- : (reIsBadHex.test(value) ? NAN : +value);
- }
-
- /**
- * Converts `value` to a plain object flattening inherited enumerable string
- * keyed properties of `value` to own properties of the plain object.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Lang
- * @param {*} value The value to convert.
- * @returns {Object} Returns the converted plain object.
- * @example
- *
- * function Foo() {
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.assign({ 'a': 1 }, new Foo);
- * // => { 'a': 1, 'b': 2 }
- *
- * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
- * // => { 'a': 1, 'b': 2, 'c': 3 }
- */
- function toPlainObject(value) {
- return copyObject(value, keysIn(value));
- }
-
- /**
- * Converts `value` to a string. An empty string is returned for `null`
- * and `undefined` values. The sign of `-0` is preserved.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- * @example
- *
- * _.toString(null);
- * // => ''
- *
- * _.toString(-0);
- * // => '-0'
- *
- * _.toString([1, 2, 3]);
- * // => '1,2,3'
- */
- function toString(value) {
- return value == null ? '' : baseToString(value);
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * Gets the value at `path` of `object`. If the resolved value is
- * `undefined`, the `defaultValue` is used in its place.
- *
- * @static
- * @memberOf _
- * @since 3.7.0
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path of the property to get.
- * @param {*} [defaultValue] The value returned for `undefined` resolved values.
- * @returns {*} Returns the resolved value.
- * @example
- *
- * var object = { 'a': [{ 'b': { 'c': 3 } }] };
- *
- * _.get(object, 'a[0].b.c');
- * // => 3
- *
- * _.get(object, ['a', '0', 'b', 'c']);
- * // => 3
- *
- * _.get(object, 'a.b.c', 'default');
- * // => 'default'
- */
- function get(object, path, defaultValue) {
- var result = object == null ? undefined : baseGet(object, path);
- return result === undefined ? defaultValue : result;
- }
-
- /**
- * Checks if `path` is a direct or inherited property of `object`.
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Object
- * @param {Object} object The object to query.
- * @param {Array|string} path The path to check.
- * @returns {boolean} Returns `true` if `path` exists, else `false`.
- * @example
- *
- * var object = _.create({ 'a': _.create({ 'b': 2 }) });
- *
- * _.hasIn(object, 'a');
- * // => true
- *
- * _.hasIn(object, 'a.b');
- * // => true
- *
- * _.hasIn(object, ['a', 'b']);
- * // => true
- *
- * _.hasIn(object, 'b');
- * // => false
- */
- function hasIn(object, path) {
- return object != null && hasPath(object, path, baseHasIn);
- }
-
- /**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
- function keys(object) {
- var isProto = isPrototype(object);
- if (!(isProto || isArrayLike(object))) {
- return baseKeys(object);
- }
- var indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- for (var key in object) {
- if (baseHas(object, key) &&
- !(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(isProto && key == 'constructor')) {
- result.push(key);
- }
- }
- return result;
- }
-
- /**
- * Creates an array of the own and inherited enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keysIn(new Foo);
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
- */
- function keysIn(object) {
- var index = -1,
- isProto = isPrototype(object),
- props = baseKeysIn(object),
- propsLength = props.length,
- indexes = indexKeys(object),
- skipIndexes = !!indexes,
- result = indexes || [],
- length = result.length;
-
- while (++index < propsLength) {
- var key = props[index];
- if (!(skipIndexes && (key == 'length' || isIndex(key, length))) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
- }
- }
- return result;
- }
-
- /**
- * This method is like `_.assign` except that it recursively merges own and
- * inherited enumerable string keyed properties of source objects into the
- * destination object. Source properties that resolve to `undefined` are
- * skipped if a destination value exists. Array and plain object properties
- * are merged recursively. Other objects and value types are overridden by
- * assignment. Source objects are applied from left to right. Subsequent
- * sources overwrite property assignments of previous sources.
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @since 0.5.0
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @returns {Object} Returns `object`.
- * @example
- *
- * var users = {
- * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
- * };
- *
- * var ages = {
- * 'data': [{ 'age': 36 }, { 'age': 40 }]
- * };
- *
- * _.merge(users, ages);
- * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
- */
- var merge = createAssigner(function(object, source, srcIndex) {
- baseMerge(object, source, srcIndex);
- });
-
- /**
- * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
- * it's created. Arrays are created for missing index properties while objects
- * are created for all other missing properties. Use `_.setWith` to customize
- * `path` creation.
- *
- * **Note:** This method mutates `object`.
- *
- * @static
- * @memberOf _
- * @since 3.7.0
- * @category Object
- * @param {Object} object The object to modify.
- * @param {Array|string} path The path of the property to set.
- * @param {*} value The value to set.
- * @returns {Object} Returns `object`.
- * @example
- *
- * var object = { 'a': [{ 'b': { 'c': 3 } }] };
- *
- * _.set(object, 'a[0].b.c', 4);
- * console.log(object.a[0].b.c);
- * // => 4
- *
- * _.set(object, ['x', '0', 'y', 'z'], 5);
- * console.log(object.x[0].y.z);
- * // => 5
- */
- function set(object, path, value) {
- return object == null ? object : baseSet(object, path, value);
- }
-
- /**
- * Creates an array of the own enumerable string keyed property values of `object`.
- *
- * **Note:** Non-object values are coerced to objects.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property values.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.values(new Foo);
- * // => [1, 2] (iteration order is not guaranteed)
- *
- * _.values('hi');
- * // => ['h', 'i']
- */
- function values(object) {
- return object ? baseValues(object, keys(object)) : [];
- }
-
- /*------------------------------------------------------------------------*/
-
- /**
- * This method returns the first argument given to it.
- *
- * @static
- * @since 0.1.0
- * @memberOf _
- * @category Util
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * console.log(_.identity(object) === object);
- * // => true
- */
- function identity(value) {
- return value;
- }
-
- /**
- * Creates a function that invokes `func` with the arguments of the created
- * function. If `func` is a property name, the created function returns the
- * property value for a given element. If `func` is an array or object, the
- * created function returns `true` for elements that contain the equivalent
- * source properties, otherwise it returns `false`.
- *
- * @static
- * @since 4.0.0
- * @memberOf _
- * @category Util
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @returns {Function} Returns the callback.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36, 'active': true },
- * { 'user': 'fred', 'age': 40, 'active': false }
- * ];
- *
- * // The `_.matches` iteratee shorthand.
- * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
- * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
- *
- * // The `_.matchesProperty` iteratee shorthand.
- * _.filter(users, _.iteratee(['user', 'fred']));
- * // => [{ 'user': 'fred', 'age': 40 }]
- *
- * // The `_.property` iteratee shorthand.
- * _.map(users, _.iteratee('user'));
- * // => ['barney', 'fred']
- *
- * // Create custom iteratee shorthands.
- * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
- * return !_.isRegExp(func) ? iteratee(func) : function(string) {
- * return func.test(string);
- * };
- * });
- *
- * _.filter(['abc', 'def'], /ef/);
- * // => ['def']
- */
- function iteratee(func) {
- return baseIteratee(typeof func == 'function' ? func : baseClone(func, true));
- }
-
- /**
- * A method that returns `undefined`.
- *
- * @static
- * @memberOf _
- * @since 2.3.0
- * @category Util
- * @example
- *
- * _.times(2, _.noop);
- * // => [undefined, undefined]
- */
- function noop() {
- // No operation performed.
- }
-
- /**
- * Creates a function that returns the value at `path` of a given object.
- *
- * @static
- * @memberOf _
- * @since 2.4.0
- * @category Util
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new accessor function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': 2 } },
- * { 'a': { 'b': 1 } }
- * ];
- *
- * _.map(objects, _.property('a.b'));
- * // => [2, 1]
- *
- * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
- * // => [1, 2]
- */
- function property(path) {
- return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
- }
-
- /**
- * A method that returns a new empty array.
- *
- * @static
- * @memberOf _
- * @since 4.13.0
- * @category Util
- * @returns {Array} Returns the new empty array.
- * @example
- *
- * var arrays = _.times(2, _.stubArray);
- *
- * console.log(arrays);
- * // => [[], []]
- *
- * console.log(arrays[0] === arrays[1]);
- * // => false
- */
- function stubArray() {
- return [];
- }
-
- /**
- * A method that returns `false`.
- *
- * @static
- * @memberOf _
- * @since 4.13.0
- * @category Util
- * @returns {boolean} Returns `false`.
- * @example
- *
- * _.times(2, _.stubFalse);
- * // => [false, false]
- */
- function stubFalse() {
- return false;
- }
-
- /*------------------------------------------------------------------------*/
-
- // Add methods that return wrapped values in chain sequences.
- lodash.iteratee = iteratee;
- lodash.keys = keys;
- lodash.keysIn = keysIn;
- lodash.memoize = memoize;
- lodash.merge = merge;
- lodash.property = property;
- lodash.rest = rest;
- lodash.set = set;
- lodash.toArray = toArray;
- lodash.toPlainObject = toPlainObject;
- lodash.union = union;
- lodash.values = values;
-
- /*------------------------------------------------------------------------*/
-
- // Add methods that return unwrapped values in chain sequences.
- lodash.eq = eq;
- lodash.forEach = forEach;
- lodash.get = get;
- lodash.hasIn = hasIn;
- lodash.identity = identity;
- lodash.includes = includes;
- lodash.isArguments = isArguments;
- lodash.isArray = isArray;
- lodash.isArrayLike = isArrayLike;
- lodash.isArrayLikeObject = isArrayLikeObject;
- lodash.isBuffer = isBuffer;
- lodash.isFunction = isFunction;
- lodash.isLength = isLength;
- lodash.isObject = isObject;
- lodash.isObjectLike = isObjectLike;
- lodash.isPlainObject = isPlainObject;
- lodash.isString = isString;
- lodash.isSymbol = isSymbol;
- lodash.isTypedArray = isTypedArray;
- lodash.isUndefined = isUndefined;
- lodash.stubArray = stubArray;
- lodash.stubFalse = stubFalse;
- lodash.noop = noop;
- lodash.toFinite = toFinite;
- lodash.toInteger = toInteger;
- lodash.toNumber = toNumber;
- lodash.toString = toString;
-
- // Add aliases.
- lodash.each = forEach;
-
- /*------------------------------------------------------------------------*/
-
- /**
- * The semantic version number.
- *
- * @static
- * @memberOf _
- * @type {string}
- */
- lodash.VERSION = VERSION;
-
- /*--------------------------------------------------------------------------*/
-
- if (freeModule) {
- // Export for Node.js.
- (freeModule.exports = lodash)._ = lodash;
- // Export for CommonJS support.
- freeExports._ = lodash;
- }
-}.call(this));
diff --git a/node_modules/browser-sync/node_modules/.bin/window-size b/node_modules/browser-sync/node_modules/.bin/window-size
deleted file mode 120000
index e84c8ec..0000000
--- a/node_modules/browser-sync/node_modules/.bin/window-size
+++ /dev/null
@@ -1 +0,0 @@
-../window-size/cli.js
\ No newline at end of file
diff --git a/node_modules/browser-sync/node_modules/camelcase/index.js b/node_modules/browser-sync/node_modules/camelcase/index.js
deleted file mode 100644
index 5670f73..0000000
--- a/node_modules/browser-sync/node_modules/camelcase/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-function preserveCamelCase(str) {
- var isLastCharLower = false;
-
- for (var i = 0; i < str.length; i++) {
- var c = str.charAt(i);
-
- if (isLastCharLower && (/[a-zA-Z]/).test(c) && c.toUpperCase() === c) {
- str = str.substr(0, i) + '-' + str.substr(i);
- isLastCharLower = false;
- i++;
- } else {
- isLastCharLower = (c.toLowerCase() === c);
- }
- }
-
- return str;
-}
-
-module.exports = function () {
- var str = [].map.call(arguments, function (str) {
- return str.trim();
- }).filter(function (str) {
- return str.length;
- }).join('-');
-
- if (!str.length) {
- return '';
- }
-
- if (str.length === 1) {
- return str.toLowerCase();
- }
-
- if (!(/[_.\- ]+/).test(str)) {
- if (str === str.toUpperCase()) {
- return str.toLowerCase();
- }
-
- if (str[0] !== str[0].toLowerCase()) {
- return str[0].toLowerCase() + str.slice(1);
- }
-
- return str;
- }
-
- str = preserveCamelCase(str);
-
- return str
- .replace(/^[_.\- ]+/, '')
- .toLowerCase()
- .replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
- return p1.toUpperCase();
- });
-};
diff --git a/node_modules/browser-sync/node_modules/camelcase/license b/node_modules/browser-sync/node_modules/camelcase/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/browser-sync/node_modules/camelcase/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/node_modules/browser-sync/node_modules/camelcase/package.json b/node_modules/browser-sync/node_modules/camelcase/package.json
deleted file mode 100644
index 2b940ec..0000000
--- a/node_modules/browser-sync/node_modules/camelcase/package.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "camelcase@^3.0.0",
- "scope": null,
- "escapedName": "camelcase",
- "name": "camelcase",
- "rawSpec": "^3.0.0",
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs"
- ]
- ],
- "_from": "camelcase@>=3.0.0 <4.0.0",
- "_id": "camelcase@3.0.0",
- "_inCache": true,
- "_location": "/browser-sync/camelcase",
- "_nodeVersion": "4.4.2",
- "_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/camelcase-3.0.0.tgz_1462383205197_0.03801905922591686"
- },
- "_npmUser": {
- "name": "sindresorhus",
- "email": "sindresorhus@gmail.com"
- },
- "_npmVersion": "3.8.9",
- "_phantomChildren": {},
- "_requested": {
- "raw": "camelcase@^3.0.0",
- "scope": null,
- "escapedName": "camelcase",
- "name": "camelcase",
- "rawSpec": "^3.0.0",
- "spec": ">=3.0.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/browser-sync/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "_shasum": "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a",
- "_shrinkwrap": null,
- "_spec": "camelcase@^3.0.0",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/camelcase/issues"
- },
- "dependencies": {},
- "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "directories": {},
- "dist": {
- "shasum": "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a",
- "tarball": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "gitHead": "d4de0e37b625e38a880efc6517194917a5beda01",
- "homepage": "https://github.com/sindresorhus/camelcase#readme",
- "keywords": [
- "camelcase",
- "camel-case",
- "camel",
- "case",
- "dash",
- "hyphen",
- "dot",
- "underscore",
- "separator",
- "string",
- "text",
- "convert"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "sindresorhus",
- "email": "sindresorhus@gmail.com"
- }
- ],
- "name": "camelcase",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/camelcase.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0"
-}
diff --git a/node_modules/browser-sync/node_modules/camelcase/readme.md b/node_modules/browser-sync/node_modules/camelcase/readme.md
deleted file mode 100644
index 080b2a1..0000000
--- a/node_modules/browser-sync/node_modules/camelcase/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# camelcase [](https://travis-ci.org/sindresorhus/camelcase)
-
-> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`
-
-
-## Install
-
-```
-$ npm install --save camelcase
-```
-
-
-## Usage
-
-```js
-const camelCase = require('camelcase');
-
-camelCase('foo-bar');
-//=> 'fooBar'
-
-camelCase('foo_bar');
-//=> 'fooBar'
-
-camelCase('Foo-Bar');
-//=> 'fooBar'
-
-camelCase('--foo.bar');
-//=> 'fooBar'
-
-camelCase('__foo__bar__');
-//=> 'fooBar'
-
-camelCase('foo bar');
-//=> 'fooBar'
-
-console.log(process.argv[3]);
-//=> '--foo-bar'
-camelCase(process.argv[3]);
-//=> 'fooBar'
-
-camelCase('foo', 'bar');
-//=> 'fooBar'
-
-camelCase('__foo__', '--bar');
-//=> 'fooBar'
-```
-
-
-## Related
-
-- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module
-- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/browser-sync/node_modules/cliui/CHANGELOG.md b/node_modules/browser-sync/node_modules/cliui/CHANGELOG.md
deleted file mode 100644
index ef6a35e..0000000
--- a/node_modules/browser-sync/node_modules/cliui/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-
-# [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33))
-
-### Features
-
-* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32))
diff --git a/node_modules/browser-sync/node_modules/cliui/LICENSE.txt b/node_modules/browser-sync/node_modules/cliui/LICENSE.txt
deleted file mode 100644
index c7e2747..0000000
--- a/node_modules/browser-sync/node_modules/cliui/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2015, Contributors
-
-Permission to use, copy, modify, and/or distribute this software
-for any purpose with or without fee is hereby granted, provided
-that the above copyright notice and this permission notice
-appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/browser-sync/node_modules/cliui/README.md b/node_modules/browser-sync/node_modules/cliui/README.md
deleted file mode 100644
index 028392c..0000000
--- a/node_modules/browser-sync/node_modules/cliui/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# cliui
-
-[](https://travis-ci.org/yargs/cliui)
-[](https://coveralls.io/r/yargs/cliui?branch=)
-[](https://www.npmjs.com/package/cliui)
-[](https://github.com/conventional-changelog/standard-version)
-
-easily create complex multi-column command-line-interfaces.
-
-## Example
-
-```js
-var ui = require('cliui')({
- width: 80
-})
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
- text: 'Options:',
- padding: [2, 0, 2, 0]
-})
-
-ui.div(
- {
- text: "-f, --file",
- width: 20,
- padding: [0, 4, 0, 4]
- },
- {
- text: "the file to load." +
- chalk.green("(if this description is long it wraps).")
- ,
- width: 20
- },
- {
- text: chalk.red("[required]"),
- align: 'right'
- }
-)
-
-console.log(ui.toString())
-```
-
-
-
-## Layout DSL
-
-cliui exposes a simple layout DSL:
-
-If you create a single `ui.row`, passing a string rather than an
-object:
-
-* `\n`: characters will be interpreted as new rows.
-* `\t`: characters will be interpreted as new columns.
-* `\s`: characters will be interpreted as padding.
-
-**as an example...**
-
-```js
-var ui = require('./')({
- width: 60
-})
-
-ui.div(
- 'Usage: node ./bin/foo.js\n' +
- ' \t provide a regex\n' +
- ' \t provide a glob\t [required]'
-)
-
-console.log(ui.toString())
-```
-
-**will output:**
-
-```shell
-Usage: node ./bin/foo.js
- provide a regex
- provide a glob [required]
-```
-
-## Methods
-
-```js
-cliui = require('cliui')
-```
-
-### cliui({width: integer})
-
-Specify the maximum width of the UI being generated.
-
-### cliui({wrap: boolean})
-
-Enable or disable the wrapping of text in a column.
-
-### cliui.div(column, column, column)
-
-Create a row with any number of columns, a column
-can either be a string, or an object with the following
-options:
-
-* **width:** the width of a column.
-* **align:** alignment, `right` or `center`.
-* **padding:** `[top, right, bottom, left]`.
-* **border:** should a border be placed around the div?
-
-### cliui.span(column, column, column)
-
-Similar to `div`, except the next row will be appended without
-a new line being created.
diff --git a/node_modules/browser-sync/node_modules/cliui/index.js b/node_modules/browser-sync/node_modules/cliui/index.js
deleted file mode 100644
index e501e78..0000000
--- a/node_modules/browser-sync/node_modules/cliui/index.js
+++ /dev/null
@@ -1,316 +0,0 @@
-var stringWidth = require('string-width')
-var stripAnsi = require('strip-ansi')
-var wrap = require('wrap-ansi')
-var align = {
- right: alignRight,
- center: alignCenter
-}
-var top = 0
-var right = 1
-var bottom = 2
-var left = 3
-
-function UI (opts) {
- this.width = opts.width
- this.wrap = opts.wrap
- this.rows = []
-}
-
-UI.prototype.span = function () {
- var cols = this.div.apply(this, arguments)
- cols.span = true
-}
-
-UI.prototype.div = function () {
- if (arguments.length === 0) this.div('')
- if (this.wrap && this._shouldApplyLayoutDSL.apply(this, arguments)) {
- return this._applyLayoutDSL(arguments[0])
- }
-
- var cols = []
-
- for (var i = 0, arg; (arg = arguments[i]) !== undefined; i++) {
- if (typeof arg === 'string') cols.push(this._colFromString(arg))
- else cols.push(arg)
- }
-
- this.rows.push(cols)
- return cols
-}
-
-UI.prototype._shouldApplyLayoutDSL = function () {
- return arguments.length === 1 && typeof arguments[0] === 'string' &&
- /[\t\n]/.test(arguments[0])
-}
-
-UI.prototype._applyLayoutDSL = function (str) {
- var _this = this
- var rows = str.split('\n')
- var leftColumnWidth = 0
-
- // simple heuristic for layout, make sure the
- // second column lines up along the left-hand.
- // don't allow the first column to take up more
- // than 50% of the screen.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
- leftColumnWidth = Math.min(
- Math.floor(_this.width * 0.5),
- stringWidth(columns[0])
- )
- }
- })
-
- // generate a table:
- // replacing ' ' with padding calculations.
- // using the algorithmically generated width.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- _this.div.apply(_this, columns.map(function (r, i) {
- return {
- text: r.trim(),
- padding: _this._measurePadding(r),
- width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
- }
- }))
- })
-
- return this.rows[this.rows.length - 1]
-}
-
-UI.prototype._colFromString = function (str) {
- return {
- text: str,
- padding: this._measurePadding(str)
- }
-}
-
-UI.prototype._measurePadding = function (str) {
- // measure padding without ansi escape codes
- var noAnsi = stripAnsi(str)
- return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
-}
-
-UI.prototype.toString = function () {
- var _this = this
- var lines = []
-
- _this.rows.forEach(function (row, i) {
- _this.rowToString(row, lines)
- })
-
- // don't display any lines with the
- // hidden flag set.
- lines = lines.filter(function (line) {
- return !line.hidden
- })
-
- return lines.map(function (line) {
- return line.text
- }).join('\n')
-}
-
-UI.prototype.rowToString = function (row, lines) {
- var _this = this
- var padding
- var rrows = this._rasterize(row)
- var str = ''
- var ts
- var width
- var wrapWidth
-
- rrows.forEach(function (rrow, r) {
- str = ''
- rrow.forEach(function (col, c) {
- ts = '' // temporary string used during alignment/padding.
- width = row[c].width // the width with padding.
- wrapWidth = _this._negatePadding(row[c]) // the width without padding.
-
- ts += col
-
- for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
- ts += ' '
- }
-
- // align the string within its column.
- if (row[c].align && row[c].align !== 'left' && _this.wrap) {
- ts = align[row[c].align](ts, wrapWidth)
- if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
- }
-
- // apply border and padding to string.
- padding = row[c].padding || [0, 0, 0, 0]
- if (padding[left]) str += new Array(padding[left] + 1).join(' ')
- str += addBorder(row[c], ts, '| ')
- str += ts
- str += addBorder(row[c], ts, ' |')
- if (padding[right]) str += new Array(padding[right] + 1).join(' ')
-
- // if prior row is span, try to render the
- // current row on the prior line.
- if (r === 0 && lines.length > 0) {
- str = _this._renderInline(str, lines[lines.length - 1])
- }
- })
-
- // remove trailing whitespace.
- lines.push({
- text: str.replace(/ +$/, ''),
- span: row.span
- })
- })
-
- return lines
-}
-
-function addBorder (col, ts, style) {
- if (col.border) {
- if (/[.']-+[.']/.test(ts)) return ''
- else if (ts.trim().length) return style
- else return ' '
- }
- return ''
-}
-
-// if the full 'source' can render in
-// the target line, do so.
-UI.prototype._renderInline = function (source, previousLine) {
- var leadingWhitespace = source.match(/^ */)[0].length
- var target = previousLine.text
- var targetTextWidth = stringWidth(target.trimRight())
-
- if (!previousLine.span) return source
-
- // if we're not applying wrapping logic,
- // just always append to the span.
- if (!this.wrap) {
- previousLine.hidden = true
- return target + source
- }
-
- if (leadingWhitespace < targetTextWidth) return source
-
- previousLine.hidden = true
-
- return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
-}
-
-UI.prototype._rasterize = function (row) {
- var _this = this
- var i
- var rrow
- var rrows = []
- var widths = this._columnWidths(row)
- var wrapped
-
- // word wrap all columns, and create
- // a data-structure that is easy to rasterize.
- row.forEach(function (col, c) {
- // leave room for left and right padding.
- col.width = widths[c]
- if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), {hard: true}).split('\n')
- else wrapped = col.text.split('\n')
-
- if (col.border) {
- wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
- wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
- }
-
- // add top and bottom padding.
- if (col.padding) {
- for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
- for (i = 0; i < (col.padding[bottom] || 0); i++) wrapped.push('')
- }
-
- wrapped.forEach(function (str, r) {
- if (!rrows[r]) rrows.push([])
-
- rrow = rrows[r]
-
- for (var i = 0; i < c; i++) {
- if (rrow[i] === undefined) rrow.push('')
- }
- rrow.push(str)
- })
- })
-
- return rrows
-}
-
-UI.prototype._negatePadding = function (col) {
- var wrapWidth = col.width
- if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
- if (col.border) wrapWidth -= 4
- return wrapWidth
-}
-
-UI.prototype._columnWidths = function (row) {
- var _this = this
- var widths = []
- var unset = row.length
- var unsetWidth
- var remainingWidth = this.width
-
- // column widths can be set in config.
- row.forEach(function (col, i) {
- if (col.width) {
- unset--
- widths[i] = col.width
- remainingWidth -= col.width
- } else {
- widths[i] = undefined
- }
- })
-
- // any unset widths should be calculated.
- if (unset) unsetWidth = Math.floor(remainingWidth / unset)
- widths.forEach(function (w, i) {
- if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
- else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
- })
-
- return widths
-}
-
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth (col) {
- var padding = col.padding || []
- var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
- if (col.border) minWidth += 4
- return minWidth
-}
-
-function alignRight (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str)
-
- if (strWidth < width) {
- padding = new Array(width - strWidth + 1).join(' ')
- }
-
- return padding + str
-}
-
-function alignCenter (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str.trim())
-
- if (strWidth < width) {
- padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
- }
-
- return padding + str
-}
-
-module.exports = function (opts) {
- opts = opts || {}
-
- return new UI({
- width: (opts || {}).width || 80,
- wrap: typeof opts.wrap === 'boolean' ? opts.wrap : true
- })
-}
diff --git a/node_modules/browser-sync/node_modules/cliui/package.json b/node_modules/browser-sync/node_modules/cliui/package.json
deleted file mode 100644
index c2cec83..0000000
--- a/node_modules/browser-sync/node_modules/cliui/package.json
+++ /dev/null
@@ -1,143 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "cliui@^3.0.3",
- "scope": null,
- "escapedName": "cliui",
- "name": "cliui",
- "rawSpec": "^3.0.3",
- "spec": ">=3.0.3 <4.0.0",
- "type": "range"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/localtunnel/node_modules/yargs"
- ],
- [
- {
- "raw": "cliui@^3.2.0",
- "scope": null,
- "escapedName": "cliui",
- "name": "cliui",
- "rawSpec": "^3.2.0",
- "spec": ">=3.2.0 <4.0.0",
- "type": "range"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs"
- ]
- ],
- "_from": "cliui@^3.2.0",
- "_id": "cliui@3.2.0",
- "_inCache": true,
- "_location": "/browser-sync/cliui",
- "_nodeVersion": "5.1.0",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/cliui-3.2.0.tgz_1460342854008_0.8861493801232427"
- },
- "_npmUser": {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- "_npmVersion": "3.3.12",
- "_phantomChildren": {},
- "_requested": {
- "raw": "cliui@^3.2.0",
- "scope": null,
- "escapedName": "cliui",
- "name": "cliui",
- "rawSpec": "^3.2.0",
- "spec": ">=3.2.0 <4.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/browser-sync/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "_shasum": "120601537a916d29940f934da3b48d585a39213d",
- "_shrinkwrap": null,
- "_spec": "cliui@^3.2.0",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/yargs/cliui/issues"
- },
- "config": {
- "blanket": {
- "pattern": [
- "index.js"
- ],
- "data-cover-never": [
- "node_modules",
- "test"
- ],
- "output-reporter": "spec"
- }
- },
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- },
- "description": "easily create complex multi-column command-line-interfaces",
- "devDependencies": {
- "chai": "^3.5.0",
- "chalk": "^1.1.2",
- "coveralls": "^2.11.8",
- "mocha": "^2.4.5",
- "nyc": "^6.4.0",
- "standard": "^6.0.8",
- "standard-version": "^2.1.2"
- },
- "directories": {},
- "dist": {
- "shasum": "120601537a916d29940f934da3b48d585a39213d",
- "tarball": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz"
- },
- "files": [
- "index.js"
- ],
- "gitHead": "75d62e9dfa77a0e0a9c3ac3b96b02baa294142ce",
- "homepage": "https://github.com/yargs/cliui#readme",
- "keywords": [
- "cli",
- "command-line",
- "layout",
- "design",
- "console",
- "wrap",
- "table"
- ],
- "license": "ISC",
- "main": "index.js",
- "maintainers": [
- {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- }
- ],
- "name": "cliui",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/cliui.git"
- },
- "scripts": {
- "coverage": "nyc --reporter=text-lcov mocha | coveralls",
- "pretest": "standard",
- "test": "nyc mocha",
- "version": "standard-version"
- },
- "standard": {
- "ignore": [
- "**/example/**"
- ],
- "globals": [
- "it"
- ]
- },
- "version": "3.2.0"
-}
diff --git a/node_modules/browser-sync/node_modules/window-size/LICENSE b/node_modules/browser-sync/node_modules/window-size/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/browser-sync/node_modules/window-size/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, Jon Schlinkert.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/node_modules/browser-sync/node_modules/window-size/README.md b/node_modules/browser-sync/node_modules/window-size/README.md
deleted file mode 100644
index 0985bd6..0000000
--- a/node_modules/browser-sync/node_modules/window-size/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# window-size [](http://badge.fury.io/js/window-size) [](https://travis-ci.org/jonschlinkert/window-size)
-
-> Reliable way to to get the height and width of the terminal/console in a node.js environment.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i window-size --save
-```
-
-## Usage
-
-```js
-var size = require('window-size');
-size.height; // "25" (rows)
-size.width; // "80" (columns)
-```
-
-## Other projects
-
-* [base-cli](https://www.npmjs.com/package/base-cli): Plugin for base-methods that maps built-in methods to CLI args (also supports methods from a… [more](https://www.npmjs.com/package/base-cli) | [homepage](https://github.com/jonschlinkert/base-cli)
-* [lint-deps](https://www.npmjs.com/package/lint-deps): CLI tool that tells you when dependencies are missing from package.json and offers you a… [more](https://www.npmjs.com/package/lint-deps) | [homepage](https://github.com/jonschlinkert/lint-deps)
-* [yargs](https://www.npmjs.com/package/yargs): Light-weight option parsing with an argv hash. No optstrings attached. | [homepage](https://github.com/bcoe/yargs#readme)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/window-size/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2014-2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on November 15, 2015._
\ No newline at end of file
diff --git a/node_modules/browser-sync/node_modules/window-size/cli.js b/node_modules/browser-sync/node_modules/window-size/cli.js
deleted file mode 100755
index dd8d0e5..0000000
--- a/node_modules/browser-sync/node_modules/window-size/cli.js
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-var helpText = ['Usage',
-' $ window-size',
-'',
-'Example',
-' $ window-size',
-' height: 40 ',
-' width : 145',
-''].join('\n');
-
-function showSize () {
- var size = require('./');
- console.log('height: ' + size.height);
- console.log('width : ' + size.width);
-}
-
-if (process.argv.length > 2) {
- switch (process.argv[2]) {
- case 'help':
- case '--help':
- case '-h':
- console.log(helpText);
- break;
- default:
- showSize();
- }
-} else {
- showSize();
-}
diff --git a/node_modules/browser-sync/node_modules/window-size/index.js b/node_modules/browser-sync/node_modules/window-size/index.js
deleted file mode 100644
index cb9e7cb..0000000
--- a/node_modules/browser-sync/node_modules/window-size/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-/*!
- * window-size
- *
- * Copyright (c) 2014-2015 Jon Schlinkert
- * Licensed under the MIT license.
- */
-
-var tty = require('tty');
-
-module.exports = (function () {
- var width;
- var height;
-
- if (tty.isatty(1) && tty.isatty(2)) {
- if (process.stdout.getWindowSize) {
- width = process.stdout.getWindowSize(1)[0];
- height = process.stdout.getWindowSize(1)[1];
- } else if (tty.getWindowSize) {
- width = tty.getWindowSize()[1];
- height = tty.getWindowSize()[0];
- } else if (process.stdout.columns && process.stdout.rows) {
- height = process.stdout.rows;
- width = process.stdout.columns;
- }
- } else {
- Error('window-size could not get size with tty or process.stdout.');
- }
-
- return {height: height, width: width};
-})();
diff --git a/node_modules/browser-sync/node_modules/window-size/package.json b/node_modules/browser-sync/node_modules/window-size/package.json
deleted file mode 100644
index 83d10e5..0000000
--- a/node_modules/browser-sync/node_modules/window-size/package.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "window-size@^0.2.0",
- "scope": null,
- "escapedName": "window-size",
- "name": "window-size",
- "rawSpec": "^0.2.0",
- "spec": ">=0.2.0 <0.3.0",
- "type": "range"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs"
- ]
- ],
- "_from": "window-size@>=0.2.0 <0.3.0",
- "_id": "window-size@0.2.0",
- "_inCache": true,
- "_location": "/browser-sync/window-size",
- "_nodeVersion": "5.3.0",
- "_npmUser": {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- },
- "_npmVersion": "3.3.12",
- "_phantomChildren": {},
- "_requested": {
- "raw": "window-size@^0.2.0",
- "scope": null,
- "escapedName": "window-size",
- "name": "window-size",
- "rawSpec": "^0.2.0",
- "spec": ">=0.2.0 <0.3.0",
- "type": "range"
- },
- "_requiredBy": [
- "/browser-sync/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "_shasum": "b4315bb4214a3d7058ebeee892e13fa24d98b075",
- "_shrinkwrap": null,
- "_spec": "window-size@^0.2.0",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync/node_modules/yargs",
- "author": {
- "name": "Jon Schlinkert",
- "url": "https://github.com/jonschlinkert"
- },
- "bin": {
- "window-size": "cli.js"
- },
- "bugs": {
- "url": "https://github.com/jonschlinkert/window-size/issues"
- },
- "dependencies": {},
- "description": "Reliable way to to get the height and width of the terminal/console in a node.js environment.",
- "devDependencies": {
- "semistandard": "^7.0.2",
- "tap": "^2.2.1"
- },
- "directories": {},
- "dist": {
- "shasum": "b4315bb4214a3d7058ebeee892e13fa24d98b075",
- "tarball": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz"
- },
- "engines": {
- "node": ">= 0.10.0"
- },
- "files": [
- "index.js",
- "cli.js"
- ],
- "gitHead": "538b4406a6f30c9a2c8f84ba38bb34a39775bd2b",
- "homepage": "https://github.com/jonschlinkert/window-size",
- "keywords": [
- "console",
- "height",
- "resize",
- "size",
- "terminal",
- "tty",
- "width",
- "window"
- ],
- "license": "MIT",
- "main": "index.js",
- "maintainers": [
- {
- "name": "jonschlinkert",
- "email": "github@sellside.com"
- },
- {
- "name": "doowb",
- "email": "brian.woodward@gmail.com"
- }
- ],
- "name": "window-size",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jonschlinkert/window-size.git"
- },
- "scripts": {
- "pretest": "semistandard",
- "test": "tap --coverage test.js"
- },
- "verb": {
- "related": {
- "list": [
- "yargs",
- "lint-deps",
- "base-cli"
- ]
- }
- },
- "version": "0.2.0"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/CHANGELOG.md b/node_modules/browser-sync/node_modules/yargs/CHANGELOG.md
deleted file mode 100644
index 8519327..0000000
--- a/node_modules/browser-sync/node_modules/yargs/CHANGELOG.md
+++ /dev/null
@@ -1,810 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-
-# [6.4.0](https://github.com/yargs/yargs/compare/v6.3.0...v6.4.0) (2016-11-13)
-
-
-### Bug Fixes
-
-* **locales:** correct some Russian translations ([#691](https://github.com/yargs/yargs/issues/691)) ([a980671](https://github.com/yargs/yargs/commit/a980671))
-
-
-### Features
-
-* **locales:** Added Belarusian translation ([#690](https://github.com/yargs/yargs/issues/690)) ([68dac1f](https://github.com/yargs/yargs/commit/68dac1f))
-* **locales:** Create nl.json ([#687](https://github.com/yargs/yargs/issues/687)) ([46ce1bb](https://github.com/yargs/yargs/commit/46ce1bb))
-* update to yargs-parser that addresses [#598](https://github.com/yargs/yargs/issues/598), [#617](https://github.com/yargs/yargs/issues/617) ([#700](https://github.com/yargs/yargs/issues/700)) ([54cb31d](https://github.com/yargs/yargs/commit/54cb31d))
-* yargs is now passed as the third-argument to fail handler ([#613](https://github.com/yargs/yargs/issues/613)) ([21b74f9](https://github.com/yargs/yargs/commit/21b74f9))
-
-
-### Performance Improvements
-
-* normalizing package data is an expensive operation ([#705](https://github.com/yargs/yargs/issues/705)) ([49cf533](https://github.com/yargs/yargs/commit/49cf533))
-
-
-
-
-# [6.3.0](https://github.com/yargs/yargs/compare/v6.2.0...v6.3.0) (2016-10-19)
-
-
-### Bug Fixes
-
-* **command:** subcommands via commandDir() now supported for parse(msg, cb) ([#678](https://github.com/yargs/yargs/issues/678)) ([6b85cc6](https://github.com/yargs/yargs/commit/6b85cc6))
-
-
-### Features
-
-* **locales:** Add Thai locale file ([#679](https://github.com/yargs/yargs/issues/679)) ([c05e36b](https://github.com/yargs/yargs/commit/c05e36b))
-
-
-
-
-# [6.2.0](https://github.com/yargs/yargs/compare/v6.1.1...v6.2.0) (2016-10-16)
-
-
-### Bug Fixes
-
-* stop applying parser to context object ([#675](https://github.com/yargs/yargs/issues/675)) ([3fe9b8f](https://github.com/yargs/yargs/commit/3fe9b8f))
-
-
-### Features
-
-* add new pt_BR translations ([#674](https://github.com/yargs/yargs/issues/674)) ([5615a82](https://github.com/yargs/yargs/commit/5615a82))
-* Italian translations for 'did you mean' and 'aliases' ([#673](https://github.com/yargs/yargs/issues/673)) ([81984e6](https://github.com/yargs/yargs/commit/81984e6))
-
-
-
-
-## [6.1.1](https://github.com/yargs/yargs/compare/v6.1.0...v6.1.1) (2016-10-15)
-
-
-### Bug Fixes
-
-* freeze was not resetting configObjects to initial state; addressed performance issue raised by [@nexdrew](https://github.com/nexdrew). ([#670](https://github.com/yargs/yargs/issues/670)) ([ae4bcd4](https://github.com/yargs/yargs/commit/ae4bcd4))
-
-
-
-
-# [6.1.0](https://github.com/yargs/yargs/compare/v6.0.0...v6.1.0) (2016-10-15)
-
-
-### Bug Fixes
-
-* **locales:** change some translations ([#667](https://github.com/yargs/yargs/issues/667)) ([aa966c5](https://github.com/yargs/yargs/commit/aa966c5))
-* **locales:** conform hi locale to y18n.__n expectations ([#666](https://github.com/yargs/yargs/issues/666)) ([22adb18](https://github.com/yargs/yargs/commit/22adb18))
-
-
-### Features
-
-* initial support for command aliases ([#647](https://github.com/yargs/yargs/issues/647)) ([127a040](https://github.com/yargs/yargs/commit/127a040))
-* **command:** add camelcase commands to argv ([#658](https://github.com/yargs/yargs/issues/658)) ([b1cabae](https://github.com/yargs/yargs/commit/b1cabae))
-* **locales:** add Hindi translations ([9290912](https://github.com/yargs/yargs/commit/9290912))
-* **locales:** add Hungarian translations ([be92327](https://github.com/yargs/yargs/commit/be92327))
-* **locales:** Japanese translations for 'did you mean' and 'aliases' ([#651](https://github.com/yargs/yargs/issues/651)) ([5eb78fc](https://github.com/yargs/yargs/commit/5eb78fc))
-* **locales:** Polish translations for 'did you mean' and 'aliases' ([#650](https://github.com/yargs/yargs/issues/650)) ([c951c0e](https://github.com/yargs/yargs/commit/c951c0e))
-* reworking yargs API to make it easier to run in headless environments, e.g., Slack ([#646](https://github.com/yargs/yargs/issues/646)) ([f284c29](https://github.com/yargs/yargs/commit/f284c29))
-* Turkish translations for 'did you mean' and 'aliases' ([#660](https://github.com/yargs/yargs/issues/660)) ([072fd45](https://github.com/yargs/yargs/commit/072fd45))
-
-
-
-
-# [6.0.0](https://github.com/yargs/yargs/compare/v5.0.0...v6.0.0) (2016-09-30)
-
-
-### Bug Fixes
-
-* changed parsing of the command string to ignore extra spaces ([#600](https://github.com/yargs/yargs/issues/600)) ([e8e5a72](https://github.com/yargs/yargs/commit/e8e5a72))
-* drop lodash.assign ([#641](https://github.com/yargs/yargs/issues/641)) ([ad3146f](https://github.com/yargs/yargs/commit/ad3146f))
-* for args that have skipValidation set to `true`, check if the parsed arg is `true` ([#619](https://github.com/yargs/yargs/issues/619)) ([658a34c](https://github.com/yargs/yargs/commit/658a34c))
-* upgrade standard, and fix appveyor config so that it works with newest standard ([#607](https://github.com/yargs/yargs/issues/607)) ([c301f42](https://github.com/yargs/yargs/commit/c301f42))
-
-
-### Chores
-
-* upgrade yargs-parser ([#633](https://github.com/yargs/yargs/issues/633)) ([cc1224e](https://github.com/yargs/yargs/commit/cc1224e))
-
-
-### Features
-
-* make opts object optional for .option() ([#624](https://github.com/yargs/yargs/issues/624)) ([4f29de6](https://github.com/yargs/yargs/commit/4f29de6))
-
-
-### Performance Improvements
-
-* defer windowWidth() to improve perf for non-help usage ([#610](https://github.com/yargs/yargs/issues/610)) ([cbc3636](https://github.com/yargs/yargs/commit/cbc3636))
-
-
-### BREAKING CHANGES
-
-* coerce is now applied as a final step after other parsing is complete
-
-
-
-
-# [5.0.0](https://github.com/yargs/yargs/compare/v4.8.1...v5.0.0) (2016-08-14)
-
-
-### Bug Fixes
-
-* **default:** Remove undocumented alias of default() ([#469](https://github.com/yargs/yargs/issues/469)) ([b8591b2](https://github.com/yargs/yargs/commit/b8591b2))
-* remove deprecated zh.json ([#578](https://github.com/yargs/yargs/issues/578)) ([317c62c](https://github.com/yargs/yargs/commit/317c62c))
-
-
-### Features
-
-* .help() API can now enable implicit help command ([#574](https://github.com/yargs/yargs/issues/574)) ([7645019](https://github.com/yargs/yargs/commit/7645019))
-* **command:** builder function no longer needs to return the yargs instance ([#549](https://github.com/yargs/yargs/issues/549)) ([eaa2873](https://github.com/yargs/yargs/commit/eaa2873))
-* add coerce api ([#586](https://github.com/yargs/yargs/issues/586)) ([1d53ccb](https://github.com/yargs/yargs/commit/1d53ccb))
-* adds recommendCommands() for command suggestions ([#580](https://github.com/yargs/yargs/issues/580)) ([59474dc](https://github.com/yargs/yargs/commit/59474dc))
-* apply .env() globally ([#553](https://github.com/yargs/yargs/issues/553)) ([be65728](https://github.com/yargs/yargs/commit/be65728))
-* apply default builder to command() and apply fail() handlers globally ([#583](https://github.com/yargs/yargs/issues/583)) ([0aaa68b](https://github.com/yargs/yargs/commit/0aaa68b))
-* update yargs-parser to version 3.1.0 ([#581](https://github.com/yargs/yargs/issues/581)) ([882a127](https://github.com/yargs/yargs/commit/882a127))
-
-
-### Performance Improvements
-
-* defer requiring most external libs until needed ([#584](https://github.com/yargs/yargs/issues/584)) ([f9b0ed4](https://github.com/yargs/yargs/commit/f9b0ed4))
-
-
-### BREAKING CHANGES
-
-* fail is now applied globally.
-* we now default to an empty builder function when command is executed with no builder.
-* yargs-parser now better handles negative integer values, at the cost of handling numeric option names, e.g., -1 hello
-* default: removed undocumented `defaults` alias for `default`.
-* introduces a default `help` command which outputs help, as an alternative to a help flag.
-* interpret demand() numbers as relative to executing command ([#582](https://github.com/yargs/yargs/issues/582)) ([927810c](https://github.com/yargs/yargs/commit/927810c))
-
-
-
-
-## [4.8.1](https://github.com/yargs/yargs/compare/v4.8.0...v4.8.1) (2016-07-16)
-
-
-### Bug Fixes
-
-* **commandDir:** make dir relative to caller instead of require.main.filename ([#548](https://github.com/yargs/yargs/issues/548)) ([3c2e479](https://github.com/yargs/yargs/commit/3c2e479))
-* add config lookup for .implies() ([#556](https://github.com/yargs/yargs/issues/556)) ([8d7585c](https://github.com/yargs/yargs/commit/8d7585c))
-* cache pkg lookups by path to avoid returning the wrong one ([#552](https://github.com/yargs/yargs/issues/552)) ([fea7e0b](https://github.com/yargs/yargs/commit/fea7e0b))
-* positional arguments were not being handled appropriately by parse() ([#559](https://github.com/yargs/yargs/issues/559)) ([063a866](https://github.com/yargs/yargs/commit/063a866))
-* pull in [@nexdrew](https://github.com/nexdrew)'s fixes to yargs-parser ([#560](https://github.com/yargs/yargs/issues/560)) ([c77c080](https://github.com/yargs/yargs/commit/c77c080)), closes [#560](https://github.com/yargs/yargs/issues/560)
-
-
-
-
-# [4.8.0](https://github.com/yargs/yargs/compare/v4.7.1...v4.8.0) (2016-07-09)
-
-
-### Bug Fixes
-
-* drop unused camelcase dependency fixes [#516](https://github.com/yargs/yargs/issues/516) ([#525](https://github.com/yargs/yargs/issues/525)) ([365fb9a](https://github.com/yargs/yargs/commit/365fb9a)), closes [#516](https://github.com/yargs/yargs/issues/516) [#525](https://github.com/yargs/yargs/issues/525)
-* fake a tty in tests, so that we can use the new set-blocking ([#512](https://github.com/yargs/yargs/issues/512)) ([a54c742](https://github.com/yargs/yargs/commit/a54c742))
-* ignore invalid package.json during read-pkg-up ([#546](https://github.com/yargs/yargs/issues/546)) ([e058c87](https://github.com/yargs/yargs/commit/e058c87))
-* keep both zh and zh_CN until yargs[@5](https://github.com/5).x ([0f8faa7](https://github.com/yargs/yargs/commit/0f8faa7))
-* lazy-load package.json and cache. get rid of pkg-conf dependency. ([#544](https://github.com/yargs/yargs/issues/544)) ([2609b2e](https://github.com/yargs/yargs/commit/2609b2e))
-* we now respect the order of _ when applying commands ([#537](https://github.com/yargs/yargs/issues/537)) ([ed86b78](https://github.com/yargs/yargs/commit/ed86b78))
-
-
-### Features
-
-* add .commandDir(dir) to API to apply all command modules from a relative directory ([#494](https://github.com/yargs/yargs/issues/494)) ([b299dff](https://github.com/yargs/yargs/commit/b299dff))
-* **command:** derive missing command string from module filename ([#527](https://github.com/yargs/yargs/issues/527)) ([20d4b8a](https://github.com/yargs/yargs/commit/20d4b8a))
-* builder is now optional for a command module ([#545](https://github.com/yargs/yargs/issues/545)) ([8d6ad6e](https://github.com/yargs/yargs/commit/8d6ad6e))
-
-
-
-
-## [4.7.1](https://github.com/yargs/yargs/compare/v4.7.0...v4.7.1) (2016-05-15)
-
-
-### Bug Fixes
-
-* switch to using `const` rather than `var` ([#499](https://github.com/yargs/yargs/pull/499))
-* make stdout flush on newer versions of Node.js ([#501](https://github.com/yargs/yargs/issues/501)) ([9f8c6f4](https://github.com/yargs/yargs/commit/9f8c6f4))
-
-
-
-
-# [4.7.0](https://github.com/yargs/yargs/compare/v4.6.0...v4.7.0) (2016-05-02)
-
-
-### Bug Fixes
-
-* **pkgConf:** fix aliases issues in .pkgConf() ([#478](https://github.com/yargs/yargs/issues/478))([b900502](https://github.com/yargs/yargs/commit/b900502))
-
-
-### Features
-
-* **completion:** allow to get completions for any string, not just process.argv ([#470](https://github.com/yargs/yargs/issues/470))([74fcfbc](https://github.com/yargs/yargs/commit/74fcfbc))
-* **configuration:** Allow to directly pass a configuration object to .config() ([#480](https://github.com/yargs/yargs/issues/480))([e0a7e05](https://github.com/yargs/yargs/commit/e0a7e05))
-* **validation:** Add .skipValidation() method ([#471](https://github.com/yargs/yargs/issues/471))([d72badb](https://github.com/yargs/yargs/commit/d72badb))
-
-
-
-
-# [4.6.0](https://github.com/yargs/yargs/compare/v4.5.0...v4.6.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* **my brand!:** I agree with [@osher](https://github.com/osher) lightweight isn't a huge selling point of ours any longer, see [#468](https://github.com/yargs/yargs/issues/468) ([c46d7e1](https://github.com/yargs/yargs/commit/c46d7e1))
-
-### Features
-
-* switch to standard-version for release management ([f70f801](https://github.com/yargs/yargs/commit/f70f801))
-* upgrade to version of yargs-parser that introduces some slick new features, great work [@elas7](https://github.com/elas7). update cliui, replace win-spawn, replace badge. ([#475](https://github.com/yargs/yargs/issues/475)) ([f915dd4](https://github.com/yargs/yargs/commit/f915dd4))
-
-
-
-
-# [4.5.0](https://github.com/yargs/yargs/compare/v4.4.0...v4.5.0) (2016-04-05)
-
-
-### Bug Fixes
-
-* **windows:** handle $0 better on Windows platforms ([eb6e03f](https://github.com/yargs/yargs/commit/eb6e03f))
-
-### Features
-
-* **commands:** implemented variadic positional arguments ([51d926e](https://github.com/yargs/yargs/commit/51d926e))
-* **completion:** completion now better handles aliases, and avoids duplicating keys. ([86416c8](https://github.com/yargs/yargs/commit/86416c8))
-* **config:** If invoking .config() without parameters, set a default option ([0413dd1](https://github.com/yargs/yargs/commit/0413dd1))
-* **conventional-changelog:** switching to using conventional-changelog for generating the changelog ([a2b5a2a](https://github.com/yargs/yargs/commit/a2b5a2a))
-
-
-
-### v4.4.0 (2016/04/03 21:10 +07:00)
-
-- [#454](https://github.com/yargs/yargs/pull/454) fix demand() when second argument is an array (@elas7)
-- [#452](https://github.com/yargs/yargs/pull/452) fix code example for `.help()` docs (@maxrimue)
-- [#450](https://github.com/yargs/yargs/pull/450) fix for bash completion trailing space edge-case (@elas7)
-- [#448](https://github.com/yargs/yargs/pull/448) allow a method to be passed to `showHelp`, rather than a log-level (@osher)
-- [#446](https://github.com/yargs/yargs/pull/446) update yargs-parser, y18n, nyc, cliui, pkg-conf (@bcoe)
-- [#436](https://github.com/yargs/yargs/pull/436) the rebase method is only used by tests, do not export it in two places (@elas7)
-- [#428](https://github.com/yargs/yargs/pull/428) initial support for subcommands (@nexdrew)
-
-### v4.3.2 (2016/3/20 15:07 +07:00)
-
-- [#445](https://github.com/yargs/yargs/pull/445) strict mode was failing if no commands were registered (@nexdrew)
-- [#443](https://github.com/yargs/yargs/pull/443) adds Italian translation \o/ (@madrisan)
-- [#441](https://github.com/yargs/yargs/pull/441) remove duplicate keys from array options configuration (@elas7)
-- [#437](https://github.com/yargs/yargs/pull/437) standardize tests for .command() (@lrlna)
-
-### v4.3.0 (2016/3/12 14:19 +07:00)
-
-- [#432](https://github.com/yargs/yargs/pull/432) non-singleton version of yargs (@bcoe)
-- [#422, #425, #420] translations for number (@zkat, @rilut, @maxrimue, @watilde)
-- [#414](https://github.com/yargs/yargs/pull/414) all command options can be defined in module now (@nexdrew)
-
-### v4.2.0 (2016/2/22 11:02 +07:00)
-
-- [#395](https://github.com/yargs/yargs/pull/395) do not reset groups if they contain
- global keys (@novemberborn)
-- [#393](https://github.com/yargs/yargs/pull/393) use sane default for usage strings (@nexdrew)
-- [#392](https://github.com/yargs/yargs/pull/392) resetting wrap() was causing layout issues
- with commands (@nexdrew)
-- [#391](https://github.com/yargs/yargs/pull/391) commands were being added multiple times (@nexdrew)
-
-### v4.0.0 (2016/2/14 1:27 +07:00)
-
-- [#384](https://github.com/bcoe/yargs/pull/384) add new number type to yargs (@lrlna, @maxrimue)
-- [#382](https://github.com/bcoe/yargs/pull/382) pass error as extra parameter to fail (@gajus)
-- [#378](https://github.com/bcoe/yargs/pull/378) introduces the pkgConf feature, which tells
- yargs to load default argument values from a key on a project's package.json (@bcoe)
-- [#376](https://github.com/bcoe/yargs/pull/376) **breaking change**, make help() method signature
- more consistent with other commands (@maxrimue)
-- [#368](https://github.com/bcoe/yargs/pull/368) **breaking change**, overhaul to command handling API:
- introducing named positional arguments, commands as modules, introduces the concept of global options (options that don't reset). (@nexdrew, @bcoe).
-- [#364](https://github.com/bcoe/yargs/pull/364) add the slick new yargs website to the package.json (@iarna).
-- [#357](https://github.com/bcoe/yargs/pull/357) .strict() now requires that a valid command is provided (@lrlna)
-- [#356](https://github.com/bcoe/yargs/pull/356) pull the parsing bits of yargs into the separate module yargs-parser. Various parsing options can now be turned on and off using configuration (@bcoe).
-- [#330](https://github.com/bcoe/yargs/pull/330) **breaking change**, fix inconsistencies with `.version()` API. (@maxrimue).
-
-### v3.32.0 (2016/1/14 10:13 +07:00)
-
-- [#344](https://github.com/bcoe/yargs/pull/344) yargs now has a code of conduct and contributor guidelines (@bcoe)
-- [#341](https://github.com/bcoe/yargs/issues/341) Fix edge-case with camel-case arguments (@davibe)
-- [#331](https://github.com/bcoe/yargs/pull/331) Handle parsing a raw argument string (@kellyselden)
-- [#325](https://github.com/bcoe/yargs/pull/325) Tweaks to make tests pass again on Windows (@isaacs)
-- [#321](https://github.com/bcoe/yargs/pull/321) Custom config parsing function (@bcoe)
-
-### v3.31.0 (2015/12/03 10:15 +07:00)
-
-- [#239](https://github.com/bcoe/yargs/pull/239) Pass argv to commands (@bcoe)
-- [#308](https://github.com/bcoe/yargs/pull/308) Yargs now handles environment variables (@nexdrew)
-- [#302](https://github.com/bcoe/yargs/pull/302) Add Indonesian translation (@rilut)
-- [#300](https://github.com/bcoe/yargs/pull/300) Add Turkish translation (@feyzo)
-- [#298](https://github.com/bcoe/yargs/pull/298) Add Norwegian Bokmål translation (@sindresorhus)
-- [#297](https://github.com/bcoe/yargs/pull/297) Fix for layout of cjk characters (@disjukr)
-- [#296](https://github.com/bcoe/yargs/pull/296) Add Korean translation (@disjukr)
-
-### v3.30.0 (2015/11/13 16:29 +07:00)
-
-- [#293](https://github.com/bcoe/yargs/pull/293) Polish language support (@kamilogorek)
-- [#291](https://github.com/bcoe/yargs/pull/291) fix edge-cases with `.alias()` (@bcoe)
-- [#289](https://github.com/bcoe/yargs/pull/289) group options in custom groups (@bcoe)
-
-### v3.29.0 (2015/10/16 21:51 +07:00)
-
-- [#282](https://github.com/bcoe/yargs/pull/282) completions now accept promises (@LinusU)
-- [#281](https://github.com/bcoe/yargs/pull/281) fix parsing issues with dot notation (@bcoe)
-
-### v3.28.0 (2015/10/16 1:55 +07:00)
-
-- [#277](https://github.com/bcoe/yargs/pull/277) adds support for ansi escape codes (@bcoe)
-
-### v3.27.0 (2015/10/08 1:55 +00:00)
-
-- [#271](https://github.com/bcoe/yargs/pull/273) skips validation for help or version flags with exitProcess(false) (@tepez)
-- [#273](https://github.com/bcoe/yargs/pull/273) implements single output for errors with exitProcess(false) (@nexdrew)
-- [#269](https://github.com/bcoe/yargs/pull/269) verifies single output for errors with exitProcess(false) (@tepez)
-- [#268](https://github.com/bcoe/yargs/pull/268) adds Chinese translation (@qiu8310)
-- [#266](https://github.com/bcoe/yargs/pull/266) adds case for -- after -- in parser test (@geophree)
-
-### v3.26.0 (2015/09/25 2:14 +00:00)
-
-- [#263](https://github.com/bcoe/yargs/pull/263) document count() and option() object keys (@nexdrew)
-- [#259](https://github.com/bcoe/yargs/pull/259) remove util in readme (@38elements)
-- [#258](https://github.com/bcoe/yargs/pull/258) node v4 builds, update deps (@nexdrew)
-- [#257](https://github.com/bcoe/yargs/pull/257) fix spelling errors (@dkoleary88)
-
-### v3.25.0 (2015/09/13 7:38 -07:00)
-
-- [#254](https://github.com/bcoe/yargs/pull/254) adds Japanese translation (@oti)
-- [#253](https://github.com/bcoe/yargs/pull/253) fixes for tests on Windows (@bcoe)
-
-### v3.24.0 (2015/09/04 12:02 +00:00)
-
-- [#248](https://github.com/bcoe/yargs/pull/248) reinstate os-locale, no spawning (@nexdrew)
-- [#249](https://github.com/bcoe/yargs/pull/249) use travis container-based infrastructure (@nexdrew)
-- [#247](https://github.com/bcoe/yargs/pull/247) upgrade standard (@nexdrew)
-
-### v3.23.0 (2015/08/30 23:00 +00:00)
-
-- [#246](https://github.com/bcoe/yargs/pull/246) detect locale based only on environment variables (@bcoe)
-- [#244](https://github.com/bcoe/yargs/pull/244) adds Windows CI testing (@bcoe)
-- [#245](https://github.com/bcoe/yargs/pull/245) adds OSX CI testing (@bcoe, @nexdrew)
-
-### v3.22.0 (2015/08/28 22:26 +00:00)
-- [#242](https://github.com/bcoe/yargs/pull/242) adds detectLocale config option (@bcoe)
-
-### v3.21.1 (2015/08/28 20:58 +00:00)
-- [#240](https://github.com/bcoe/yargs/pull/240) hot-fix for Atom on Windows (@bcoe)
-
-### v3.21.0 (2015/08/21 21:20 +00:00)
-- [#238](https://github.com/bcoe/yargs/pull/238) upgrade camelcase, window-size, chai, mocha (@nexdrew)
-- [#237](https://github.com/bcoe/yargs/pull/237) adds defaultDescription to option() (@nexdrew)
-
-### v3.20.0 (2015/08/20 01:29 +00:00)
-- [#231](https://github.com/bcoe/yargs/pull/231) Merge pull request #231 from bcoe/detect-locale (@sindresorhus)
-- [#235](https://github.com/bcoe/yargs/pull/235) adds german translation to yargs (@maxrimue)
-
-### v3.19.0 (2015/08/14 05:12 +00:00)
-- [#224](https://github.com/bcoe/yargs/pull/224) added Portuguese translation (@codemonkey3045)
-
-### v3.18.1 (2015/08/12 05:53 +00:00)
-
-- [#228](https://github.com/bcoe/yargs/pull/228) notes about embedding yargs in Electron (@etiktin)
-- [#223](https://github.com/bcoe/yargs/pull/223) make booleans work in config files (@sgentle)
-
-### v3.18.0 (2015/08/06 20:05 +00:00)
-- [#222](https://github.com/bcoe/yargs/pull/222) updates fr locale (@nexdrew)
-- [#221](https://github.com/bcoe/yargs/pull/221) adds missing locale strings (@nexdrew)
-- [#220](https://github.com/bcoe/yargs/pull/220) adds es locale (@zkat)
-
-### v3.17.1 (2015/08/02 19:35 +00:00)
-- [#218](https://github.com/bcoe/yargs/pull/218) upgrades nyc (@bcoe)
-
-### v3.17.0 (2015/08/02 18:39 +00:00)
-- [#217](https://github.com/bcoe/yargs/pull/217) sort methods in README.md (@nexdrew)
-- [#215](https://github.com/bcoe/yargs/pull/215) adds fr locale (@LoicMahieu)
-
-### v3.16.0 (2015/07/30 04:35 +00:00)
-- [#210](https://github.com/bcoe/yargs/pull/210) adds i18n support to yargs (@bcoe)
-- [#209](https://github.com/bcoe/yargs/pull/209) adds choices type to yargs (@nexdrew)
-- [#207](https://github.com/bcoe/yargs/pull/207) pretty new shields from shields.io (@SimenB)
-- [#208](https://github.com/bcoe/yargs/pull/208) improvements to README.md (@nexdrew)
-- [#205](https://github.com/bcoe/yargs/pull/205) faster build times on Travis (@ChristianMurphy)
-
-### v3.15.0 (2015/07/06 06:01 +00:00)
-- [#197](https://github.com/bcoe/yargs/pull/197) tweaks to how errors bubble up from parser.js (@bcoe)
-- [#193](https://github.com/bcoe/yargs/pull/193) upgraded nyc, reporting now happens by default (@bcoe)
-
-### v3.14.0 (2015/06/28 02:12 +00:00)
-
-- [#192](https://github.com/bcoe/yargs/pull/192) standard style nits (@bcoe)
-- [#190](https://github.com/bcoe/yargs/pull/190) allow for hidden commands, e.g.,
- .completion('completion', false) (@tschaub)
-
-### v3.13.0 (2015/06/24 04:12 +00:00)
-
-- [#187](https://github.com/bcoe/yargs/pull/187) completion now behaves differently
- if it is being run in the context of a command (@tschaub)
-- [#186](https://github.com/bcoe/yargs/pull/186) if no matches are found for a completion
- default to filename completion (@tschaub)
-
-### v3.12.0 (2015/06/19 03:23 +00:00)
-- [#183](https://github.com/bcoe/yargs/pull/183) don't complete commands if they've already been completed (@tschaub)
-- [#181](https://github.com/bcoe/yargs/pull/181) various fixes for completion. (@bcoe, @tschaub)
-- [#182](https://github.com/bcoe/yargs/pull/182) you can now set a maximum # of of required arguments (@bcoe)
-
-### v3.11.0 (2015/06/15 05:15 +00:00)
-
-- [#173](https://github.com/bcoe/yargs/pull/173) update standard, window-size, chai (@bcoe)
-- [#171](https://github.com/bcoe/yargs/pull/171) a description can now be set
- when providing a config option. (@5c077yP)
-
-### v3.10.0 (2015/05/29 04:25 +00:00)
-
-- [#165](https://github.com/bcoe/yargs/pull/165) expose yargs.terminalWidth() thanks @ensonic (@bcoe)
-- [#164](https://github.com/bcoe/yargs/pull/164) better array handling thanks @getify (@bcoe)
-
-### v3.9.1 (2015/05/20 05:14 +00:00)
-- [b6662b6](https://github.com/bcoe/yargs/commit/b6662b6774cfeab4876f41ec5e2f67b7698f4e2f) clarify .config() docs (@linclark)
-- [0291360](https://github.com/bcoe/yargs/commit/02913606285ce31ce81d7f12c48d8a3029776ec7) fixed tests, switched to nyc for coverage, fixed security issue, added Lin as collaborator (@bcoe)
-
-### v3.9.0 (2015/05/10 18:32 +00:00)
-- [#157](https://github.com/bcoe/yargs/pull/157) Merge pull request #157 from bcoe/command-yargs. allows handling of command specific arguments. Thanks for the suggestion @ohjames (@bcoe)
-- [#158](https://github.com/bcoe/yargs/pull/158) Merge pull request #158 from kemitchell/spdx-license. Update license format (@kemitchell)
-
-### v3.8.0 (2015/04/24 23:10 +00:00)
-- [#154](https://github.com/bcoe/yargs/pull/154) showHelp's method signature was misleading fixes #153 (@bcoe)
-- [#151](https://github.com/bcoe/yargs/pull/151) refactor yargs' table layout logic to use new helper library (@bcoe)
-- [#150](https://github.com/bcoe/yargs/pull/150) Fix README example in argument requirements (@annonymouse)
-
-### v3.7.2 (2015/04/13 11:52 -07:00)
-
-* [679fbbf](https://github.com/bcoe/yargs/commit/679fbbf55904030ccee8a2635e8e5f46551ab2f0) updated yargs to use the [standard](https://github.com/feross/standard) style guide (agokjr)
-* [22382ee](https://github.com/bcoe/yargs/commit/22382ee9f5b495bc2586c1758cd1091cec3647f9 various bug fixes for $0 (@nylen)
-
-### v3.7.1 (2015/04/10 11:06 -07:00)
-
-* [89e1992](https://github.com/bcoe/yargs/commit/89e1992a004ba73609b5f9ee6890c4060857aba4) detect iojs bin along with node bin. (@bcoe)
-* [755509e](https://github.com/bcoe/yargs/commit/755509ea90041e5f7833bba3b8c5deffe56f0aab) improvements to example documentation in README.md (@rstacruz)
-* [0d2dfc8](https://github.com/bcoe/yargs/commit/0d2dfc822a43418242908ad97ddd5291a1b35dc6) showHelp() no longer requires that .argv has been called (@bcoe)
-
-### v3.7.0 (2015/04/04 02:29 -07:00)
-
-* [56cbe2d](https://github.com/bcoe/yargs/commit/56cbe2ddd33dc176dcbf97ba40559864a9f114e4) make .requiresArg() work with type hints. (@bcoe).
-* [2f5d562](https://github.com/bcoe/yargs/commit/2f5d5624f736741deeedf6a664d57bc4d857bdd0) serialize arrays and objects in usage strings. (@bcoe).
-* [5126304](https://github.com/bcoe/yargs/commit/5126304dd18351fc28f10530616fdd9361e0af98) be more lenient about alias/primary key ordering in chaining API. (@bcoe)
-
-### v3.6.0 (2015/03/21 01:00 +00:00)
-- [4e24e22](https://github.com/bcoe/yargs/commit/4e24e22e6a195e55ab943ede704a0231ac33b99c) support for .js configuration files. (@pirxpilot)
-
-### v3.5.4 (2015/03/12 05:56 +00:00)
-- [c16cc08](https://github.com/bcoe/yargs/commit/c16cc085501155cf7fd853ccdf8584b05ab92b78) message for non-option arguments is now optional, thanks to (@raine)
-
-### v3.5.3 (2015/03/09 06:14 +00:00)
-- [870b428](https://github.com/bcoe/yargs/commit/870b428cf515d560926ca392555b7ad57dba9e3d) completion script was missing in package.json (@bcoe)
-
-### v3.5.2 (2015/03/09 06:11 +00:00)
-- [58a4b24](https://github.com/bcoe/yargs/commit/58a4b2473ebbb326713d522be53e32d3aabb08d2) parse was being called multiple times, resulting in strange behavior (@bcoe)
-
-### v3.5.1 (2015/03/09 04:55 +00:00)
-- [4e588e0](https://github.com/bcoe/yargs/commit/4e588e055afbeb9336533095f051496e3977f515) accidentally left testing logic in (@bcoe)
-
-### v3.5.0 (2015/03/09 04:49 +00:00)
-- [718bacd](https://github.com/bcoe/yargs/commit/718bacd81b9b44f786af76b2afe491fe06274f19) added support for bash completions see #4 (@bcoe)
-- [a192882](https://github.com/bcoe/yargs/commit/a19288270fc431396c42af01125eeb4443664528) downgrade to mocha 2.1.0 until https://github.com/mochajs/mocha/issues/1585 can be sorted out (@bcoe)
-
-### v3.4.7 (2015/03/09 04:09 +00:00)
-- [9845e5c](https://github.com/bcoe/yargs/commit/9845e5c1a9c684ba0be3f0bfb40e7b62ab49d9c8) the Argv singleton was not being updated when manually parsing arguments, fixes #114 (@bcoe)
-
-### v3.4.6 (2015/03/09 04:01 +00:00)
-- [45b4c80](https://github.com/bcoe/yargs/commit/45b4c80b890d02770b0a94f326695a8a566e8fe9) set placeholders for all keys fixes #115 (@bcoe)
-
-### v3.4.5 (2015/03/01 20:31 +00:00)
-- [a758e0b](https://github.com/bcoe/yargs/commit/a758e0b2556184f067cf3d9c4ef886d39817ebd2) fix for count consuming too many arguments (@bcoe)
-
-### v3.4.4 (2015/02/28 04:52 +00:00)
-- [0476af7](https://github.com/bcoe/yargs/commit/0476af757966acf980d998b45108221d4888cfcb) added nargs feature, allowing you to specify the number of arguments after an option (@bcoe)
-- [092477d](https://github.com/bcoe/yargs/commit/092477d7ab3efbf0ba11cede57f7d8cfc70b024f) updated README with full example of v3.0 API (@bcoe)
-
-### v3.3.3 (2015/02/28 04:23 +00:00)
-- [0c4b769](https://github.com/bcoe/yargs/commit/0c4b769516cd8d93a7c4e5e675628ae0049aa9a8) remove string dependency, which conflicted with other libraries see #106 (@bcoe)
-
-### v3.3.2 (2015/02/28 04:11 +00:00)
-- [2a98906](https://github.com/bcoe/yargs/commit/2a9890675821c0e7a12f146ce008b0562cb8ec9a) add $0 to epilog (@schnittstabil)
-
-### v3.3.1 (2015/02/24 03:28 +00:00)
-- [ad485ce](https://github.com/bcoe/yargs/commit/ad485ce748ebdfce25b88ef9d6e83d97a2f68987) fix for applying defaults to camel-case args (@bcoe)
-
-### v3.3.0 (2015/02/24 00:49 +00:00)
-- [8bfe36d](https://github.com/bcoe/yargs/commit/8bfe36d7fb0f93a799ea3f4c756a7467c320f8c0) fix and document restart() command, as a tool for building nested CLIs (@bcoe)
-
-### v3.2.1 (2015/02/22 05:45 +00:00)
-- [49a6d18](https://github.com/bcoe/yargs/commit/49a6d1822a4ef9b1ea6f90cc366be60912628885) you can now provide a function that generates a default value (@bcoe)
-
-### v3.2.0 (2015/02/22 05:24 +00:00)
-- [7a55886](https://github.com/bcoe/yargs/commit/7a55886c9343cf71a20744ca5cdd56d2ea7412d5) improvements to yargs two-column text layout (@bcoe)
-- [b6ab513](https://github.com/bcoe/yargs/commit/b6ab5136a4c3fa6aa496f6b6360382e403183989) Tweak NPM version badge (@nylen)
-
-### v3.1.0 (2015/02/19 19:37 +00:00)
-- [9bd2379](https://github.com/bcoe/yargs/commit/9bd237921cf1b61fd9f32c0e6d23f572fc225861) version now accepts a function, making it easy to load version #s from a package.json (@bcoe)
-
-### v3.0.4 (2015/02/14 01:40 +00:00)
-- [0b7c19b](https://github.com/bcoe/yargs/commit/0b7c19beaecb747267ca4cc10e5cb2a8550bc4b7) various fixes for dot-notation handling (@bcoe)
-
-### v3.0.3 (2015/02/14 00:59 +00:00)
-- [c3f35e9](https://github.com/bcoe/yargs/commit/c3f35e99bd5a0d278073fcadd95e2d778616cc17) make sure dot-notation is applied to aliases (@bcoe)
-
-### 3.0.2 (2015/02/13 16:50 +00:00)
-- [74c8967](https://github.com/bcoe/yargs/commit/74c8967c340c204a0a7edf8a702b6f46c2705435) document epilog shorthand of epilogue. (@bcoe)
-- [670110f](https://github.com/bcoe/yargs/commit/670110fc01bedc4831b6fec6afac54517d5a71bc) any non-truthy value now causes check to fail see #76 (@bcoe)
-- [0d8f791](https://github.com/bcoe/yargs/commit/0d8f791a33c11ced4cd431ea8d3d3a337d456b56) finished implementing my wish-list of fetures for yargs 3.0. see #88 (@bcoe)
-- [5768447](https://github.com/bcoe/yargs/commit/5768447447c4c8e8304f178846206ce86540f063) fix coverage. (@bcoe)
-- [82e793f](https://github.com/bcoe/yargs/commit/82e793f3f61c41259eaacb67f0796aea2cf2aaa0) detect console width and perform word-wrapping. (@bcoe)
-- [67476b3](https://github.com/bcoe/yargs/commit/67476b37eea07fee55f23f35b9e0c7d76682b86d) refactor two-column table layout so that we can use it for examples and usage (@bcoe)
-- [4724cdf](https://github.com/bcoe/yargs/commit/4724cdfcc8e37ae1ca3dcce9d762f476e9ef4bb4) major refactor of index.js, in prep for 3.x release. (@bcoe)
-
-### v2.3.0 (2015/02/08 20:41 +00:00)
-- [d824620](https://github.com/bcoe/yargs/commit/d824620493df4e63664af1fe320764dd1a9244e6) allow for undefined boolean defaults (@ashi009)
-
-### v2.2.0 (2015/02/08 20:07 +00:00)
-- [d6edd98](https://github.com/bcoe/yargs/commit/d6edd9848826e7389ed1393858c45d03961365fd) in-prep for further refactoring, and a 3.x release I've shuffled some things around and gotten test-coverage to 100%. (@bcoe)
-
-### v2.1.2 (2015/02/08 06:05 +00:00)
-- [d640745](https://github.com/bcoe/yargs/commit/d640745a7b9f8d476e0223879d056d18d9c265c4) switch to path.relative (@bcoe)
-- [3bfd41f](https://github.com/bcoe/yargs/commit/3bfd41ff262a041f29d828b88936a79c63cad594) remove mocha.opts. (@bcoe)
-- [47a2f35](https://github.com/bcoe/yargs/commit/47a2f357091db70903a402d6765501c1d63f15fe) document using .string('_') for string ids. see #56 (@bcoe)
-- [#57](https://github.com/bcoe/yargs/pull/57) Merge pull request #57 from eush77/option-readme (@eush77)
-
-### v2.1.1 (2015/02/06 08:08 +00:00)
-- [01c6c61](https://github.com/bcoe/yargs/commit/01c6c61d67b4ebf88f41f0b32a345ec67f0ac17d) fix for #71, 'newAliases' of undefined (@bcoe)
-
-### v2.1.0 (2015/02/06 07:59 +00:00)
-- [6a1a3fa](https://github.com/bcoe/yargs/commit/6a1a3fa731958e26ccd56885f183dd8985cc828f) try to guess argument types, and apply sensible defaults see #73 (@bcoe)
-
-### v2.0.1 (2015/02/06 07:54 +00:00)
-- [96a06b2](https://github.com/bcoe/yargs/commit/96a06b2650ff1d085a52b7328d8bba614c20cc12) Fix for strange behavior with --sort option, see #51 (@bcoe)
-
-### v2.0.0 (2015/02/06 07:45 +00:00)
-- [0250517](https://github.com/bcoe/yargs/commit/0250517c9643e53f431b824e8ccfa54937414011) - [108fb84](https://github.com/bcoe/yargs/commit/108fb8409a3a63dcaf99d917fe4dfcfaa1de236d) fixed bug with boolean parsing, when bools separated by = see #66 (@bcoe)
-- [a465a59](https://github.com/bcoe/yargs/commit/a465a5915f912715738de890982e4f8395958b10) Add `files` field to the package.json (@shinnn)
-- [31043de](https://github.com/bcoe/yargs/commit/31043de7a38a17c4c97711f1099f5fb164334db3) fix for yargs.argv having the same keys added multiple times see #63 (@bcoe)
-- [2d68c5b](https://github.com/bcoe/yargs/commit/2d68c5b91c976431001c4863ce47c9297850f1ad) Disable process.exit calls using .exitProcess(false) (@cianclarke)
-- [45da9ec](https://github.com/bcoe/yargs/commit/45da9ec4c55a7bd394721bc6a1db0dabad7bc52a) Mention .option in README (@eush77)
-
-### v1.3.2 (2014/10/06 21:56 +00:00)
-- [b8d3472](https://github.com/bcoe/yargs/commit/b8d34725482e5821a3cc809c0df71378f282f526) 1.3.2 (@chevex)
-
-### list (2014/08/30 18:41 +00:00)
-- [fbc777f](https://github.com/bcoe/yargs/commit/fbc777f416eeefd37c84e44d27d7dfc7c1925721) Now that yargs is the successor to optimist, I'm changing the README language to be more universal. Pirate speak isn't very accessible to non-native speakers. (@chevex)
-- [a54d068](https://github.com/bcoe/yargs/commit/a54d0682ae2efc2394d407ab171cc8a8bbd135ea) version output will not print extra newline (@boneskull)
-- [1cef5d6](https://github.com/bcoe/yargs/commit/1cef5d62a9d6d61a3948a49574892e01932cc6ae) Added contributors section to package.json (@chrisn)
-- [cc295c0](https://github.com/bcoe/yargs/commit/cc295c0a80a2de267e0155b60d315fc4b6f7c709) Added 'require' and 'required' as synonyms for 'demand' (@chrisn)
-- [d0bf951](https://github.com/bcoe/yargs/commit/d0bf951d949066b6280101ed606593d079ee15c8) Updating minimist. (@chevex)
-- [c15f8e7](https://github.com/bcoe/yargs/commit/c15f8e7f245b261e542cf205ce4f4313630cbdb4) Fix #31 (bad interaction between camelCase options and strict mode) (@nylen)
-- [d991b9b](https://github.com/bcoe/yargs/commit/d991b9be687a68812dee1e3b185ba64b7778b82d) Added .help() and .version() methods (@chrisn)
-- [e8c8aa4](https://github.com/bcoe/yargs/commit/e8c8aa46268379357cb11e9fc34b8c403037724b) Added .showHelpOnFail() method (@chrisn)
-- [e855af4](https://github.com/bcoe/yargs/commit/e855af4a933ea966b5bbdd3c4c6397a4bac1a053) Allow boolean flag with .demand() (@chrisn)
-- [14dbec2](https://github.com/bcoe/yargs/commit/14dbec24fb7380683198e2b20c4deb8423e64bea) Fixes issue #22. Arguments are no longer printed to the console when using .config. (@chevex)
-- [bef74fc](https://github.com/bcoe/yargs/commit/bef74fcddc1544598a804f80d0a3728459f196bf) Informing users that Yargs is the official optimist successor. (@chevex)
-- [#24](https://github.com/bcoe/yargs/pull/24) Merge pull request #24 from chrisn/strict (@chrisn)
-- [889a2b2](https://github.com/bcoe/yargs/commit/889a2b28eb9768801b05163360a470d0fd6c8b79) Added requiresArg option, for options that require values (@chrisn)
-- [eb16369](https://github.com/bcoe/yargs/commit/eb163692262be1fe80b992fd8803d5923c5a9b18) Added .strict() method, to report error if unknown arguments are given (@chrisn)
-- [0471c3f](https://github.com/bcoe/yargs/commit/0471c3fd999e1ad4e6cded88b8aa02013b66d14f) Changed optimist to yargs in usage-options.js example (@chrisn)
-- [5c88f74](https://github.com/bcoe/yargs/commit/5c88f74e3cf031b17c54b4b6606c83e485ff520e) Change optimist to yargs in examples (@chrisn)
-- [66f12c8](https://github.com/bcoe/yargs/commit/66f12c82ba3c943e4de8ca862980e835da8ecb3a) Fix a couple of bad interactions between aliases and defaults (@nylen)
-- [8fa1d80](https://github.com/bcoe/yargs/commit/8fa1d80f14b03eb1f2898863a61f1d1615bceb50) Document second argument of usage(message, opts) (@Gobie)
-- [56e6528](https://github.com/bcoe/yargs/commit/56e6528cf674ff70d63083fb044ff240f608448e) For "--some-option", also set argv.someOption (@nylen)
-- [ed5f6d3](https://github.com/bcoe/yargs/commit/ed5f6d33f57ad1086b11c91b51100f7c6c7fa8ee) Finished porting unit tests to Mocha. (@chevex)
-
-### v1.0.15 (2014/02/05 23:18 +00:00)
-- [e2b1fc0](https://github.com/bcoe/yargs/commit/e2b1fc0c4a59cf532ae9b01b275e1ef57eeb64d2) 1.0.15 update to badges (@chevex)
-
-### v1.0.14 (2014/02/05 23:17 +00:00)
-- [f33bbb0](https://github.com/bcoe/yargs/commit/f33bbb0f00fe18960f849cc8e15a7428a4cd59b8) Revert "Fixed issue which caused .demand function not to work correctly." (@chevex)
-
-### v1.0.13 (2014/02/05 22:13 +00:00)
-- [6509e5e](https://github.com/bcoe/yargs/commit/6509e5e7dee6ef1a1f60eea104be0faa1a045075) Fixed issue which caused .demand function not to work correctly. (@chevex)
-
-### v1.0.12 (2013/12/13 00:09 +00:00)
-- [05eb267](https://github.com/bcoe/yargs/commit/05eb26741c9ce446b33ff006e5d33221f53eaceb) 1.0.12 (@chevex)
-
-### v1.0.11 (2013/12/13 00:07 +00:00)
-- [c1bde46](https://github.com/bcoe/yargs/commit/c1bde46e37318a68b87d17a50c130c861d6ce4a9) 1.0.11 (@chevex)
-
-### v1.0.10 (2013/12/12 23:57 +00:00)
-- [dfebf81](https://github.com/bcoe/yargs/commit/dfebf8164c25c650701528ee581ca483a99dc21c) Fixed formatting in README (@chevex)
-
-### v1.0.9 (2013/12/12 23:47 +00:00)
-- [0b4e34a](https://github.com/bcoe/yargs/commit/0b4e34af5e6d84a9dbb3bb6d02cd87588031c182) Update README.md (@chevex)
-
-### v1.0.8 (2013/12/06 16:36 +00:00)
-- [#1](https://github.com/bcoe/yargs/pull/1) fix error caused by check() see #1 (@martinheidegger)
-
-### v1.0.7 (2013/11/24 18:01 +00:00)
-- [a247d88](https://github.com/bcoe/yargs/commit/a247d88d6e46644cbb7303c18b1bb678fc132d72) Modified Pirate Joe image. (@chevex)
-
-### v1.0.6 (2013/11/23 19:21 +00:00)
-- [d7f69e1](https://github.com/bcoe/yargs/commit/d7f69e1d34bc929736a8bdccdc724583e21b7eab) Updated Pirate Joe image. (@chevex)
-
-### v1.0.5 (2013/11/23 19:09 +00:00)
-- [ece809c](https://github.com/bcoe/yargs/commit/ece809cf317cc659175e1d66d87f3ca68c2760be) Updated readme notice again. (@chevex)
-
-### v1.0.4 (2013/11/23 19:05 +00:00)
-- [9e81e81](https://github.com/bcoe/yargs/commit/9e81e81654028f83ba86ffc3ac772a0476084e5e) Updated README with a notice about yargs being a fork of optimist and what that implies. (@chevex)
-
-### v1.0.3 (2013/11/23 17:43 +00:00)
-- [65e7a78](https://github.com/bcoe/yargs/commit/65e7a782c86764944d63d084416aba9ee6019c5f) Changed some small wording in README.md. (@chevex)
-- [459e20e](https://github.com/bcoe/yargs/commit/459e20e539b366b85128dd281ccd42221e96c7da) Fix a bug in the options function, when string and boolean options weren't applied to aliases. (@shockone)
-
-### v1.0.2 (2013/11/23 09:46 +00:00)
-- [3d80ebe](https://github.com/bcoe/yargs/commit/3d80ebed866d3799224b6f7d596247186a3898a9) 1.0.2 (@chevex)
-
-### v1.0.1 (2013/11/23 09:39 +00:00)
-- [f80ff36](https://github.com/bcoe/yargs/commit/f80ff3642d580d4b68bf9f5a94277481bd027142) Updated image. (@chevex)
-
-### v1.0.0 (2013/11/23 09:33 +00:00)
-- [54e31d5](https://github.com/bcoe/yargs/commit/54e31d505f820b80af13644e460894b320bf25a3) Rebranded from optimist to yargs in the spirit of the fork :D (@chevex)
-- [4ebb6c5](https://github.com/bcoe/yargs/commit/4ebb6c59f44787db7c24c5b8fe2680f01a23f498) Added documentation for demandCount(). (@chevex)
-- [4561ce6](https://github.com/bcoe/yargs/commit/4561ce66dcffa95f49e8b4449b25b94cd68acb25) Simplified the error messages returned by .check(). (@chevex)
-- [661c678](https://github.com/bcoe/yargs/commit/661c67886f479b16254a830b7e1db3be29e6b7a6) Fixed an issue with demand not accepting a zero value. (@chevex)
-- [731dd3c](https://github.com/bcoe/yargs/commit/731dd3c37624790490bd6df4d5f1da8f4348279e) Add .fail(fn) so death isn't the only option. Should fix issue #39. (@chevex)
-- [fa15417](https://github.com/bcoe/yargs/commit/fa15417ff9e70dace0d726627a5818654824c1d8) Added a few missing 'return self' (@chevex)
-- [e655e4d](https://github.com/bcoe/yargs/commit/e655e4d99d1ae1d3695ef755d51c2de08d669761) Fix showing help in certain JS environments. (@chevex)
-- [a746a31](https://github.com/bcoe/yargs/commit/a746a31cd47c87327028e6ea33762d6187ec5c87) Better string representation of default values. (@chevex)
-- [6134619](https://github.com/bcoe/yargs/commit/6134619a7e90b911d5443230b644c5d447c1a68c) Implies: conditional demands (@chevex)
-- [046b93b](https://github.com/bcoe/yargs/commit/046b93b5d40a27367af4cb29726e4d781d934639) Added support for JSON config files. (@chevex)
-- [a677ec0](https://github.com/bcoe/yargs/commit/a677ec0a0ecccd99c75e571d03323f950688da03) Add .example(cmd, desc) feature. (@chevex)
-- [1bd4375](https://github.com/bcoe/yargs/commit/1bd4375e11327ba1687d4bb6e5e9f3c30c1be2af) Added 'defaults' as alias to 'default' so as to avoid usage of a reserved keyword. (@chevex)
-- [6b753c1](https://github.com/bcoe/yargs/commit/6b753c16ca09e723060e70b773b430323b29c45c) add .normalize(args..) support for normalizing paths (@chevex)
-- [33d7d59](https://github.com/bcoe/yargs/commit/33d7d59341d364f03d3a25f0a55cb99004dbbe4b) Customize error messages with demand(key, msg) (@chevex)
-- [647d37f](https://github.com/bcoe/yargs/commit/647d37f164c20f4bafbf67dd9db6cd6e2cd3b49f) Merge branch 'rewrite-duplicate-test' of github.com:isbadawi/node-optimist (@chevex)
-- [9059d1a](https://github.com/bcoe/yargs/commit/9059d1ad5e8aea686c2a01c89a23efdf929fff2e) Pass aliases object to check functions for greater versatility. (@chevex)
-- [623dc26](https://github.com/bcoe/yargs/commit/623dc26c7331abff2465ef8532e3418996d42fe6) Added ability to count boolean options and rolled minimist library back into project. (@chevex)
-- [49f0dce](https://github.com/bcoe/yargs/commit/49f0dcef35de4db544c3966350d36eb5838703f6) Fixed small typo. (@chevex)
-- [79ec980](https://github.com/bcoe/yargs/commit/79ec9806d9ca6eb0014cfa4b6d1849f4f004baf2) Removed dependency on wordwrap module. (@chevex)
-- [ea14630](https://github.com/bcoe/yargs/commit/ea14630feddd69d1de99dd8c0e08948f4c91f00a) Merge branch 'master' of github.com:chbrown/node-optimist (@chevex)
-- [2b75da2](https://github.com/bcoe/yargs/commit/2b75da2624061e0f4f3107d20303c06ec9054906) Merge branch 'master' of github.com:seanzhou1023/node-optimist (@chevex)
-- [d9bda11](https://github.com/bcoe/yargs/commit/d9bda1116e26f3b40e833ca9ca19263afea53565) Merge branch 'patch-1' of github.com:thefourtheye/node-optimist (@chevex)
-- [d6cc606](https://github.com/bcoe/yargs/commit/d6cc6064a4f1bea38a16a4430b8a1334832fbeff) Renamed README. (@chevex)
-- [9498d3f](https://github.com/bcoe/yargs/commit/9498d3f59acfb5e102826503e681623c3a64b178) Renamed readme and added .gitignore. (@chevex)
-- [bbd1fe3](https://github.com/bcoe/yargs/commit/bbd1fe37fefa366dde0fb3dc44d91fe8b28f57f5) Included examples for ```help``` and ```showHelp``` functions and fixed few formatting issues (@thefourtheye)
-- [37fea04](https://github.com/bcoe/yargs/commit/37fea0470a5796a0294c1dcfff68d8041650e622) .alias({}) behaves differently based on mapping direction when generating descriptions (@chbrown)
-- [855b20d](https://github.com/bcoe/yargs/commit/855b20d0be567ca121d06b30bea64001b74f3d6d) Documented function signatures are useful for dynamically typed languages. (@chbrown)
-
-### 0.6.0 (2013/06/25 08:48 +00:00)
-- [d37bfe0](https://github.com/bcoe/yargs/commit/d37bfe05ae6d295a0ab481efe4881222412791f4) all tests passing using minimist (@substack)
-- [76f1352](https://github.com/bcoe/yargs/commit/76f135270399d01f2bbc621e524a5966e5c422fd) all parse tests now passing (@substack)
-- [a7b6754](https://github.com/bcoe/yargs/commit/a7b6754276c38d1565479a5685c3781aeb947816) using minimist, some tests passing (@substack)
-- [6655688](https://github.com/bcoe/yargs/commit/66556882aa731cbbbe16cc4d42c85740a2e98099) Give credit where its due (@DeadAlready)
-- [602a2a9](https://github.com/bcoe/yargs/commit/602a2a92a459f93704794ad51b115bbb08b535ce) v0.5.3 - Remove wordwrap as dependency (@DeadAlready)
-
-### 0.5.2 (2013/05/31 03:46 +00:00)
-- [4497ca5](https://github.com/bcoe/yargs/commit/4497ca55e332760a37b866ec119ded347ca27a87) fixed the whitespace bug without breaking anything else (@substack)
-- [5a3dd1a](https://github.com/bcoe/yargs/commit/5a3dd1a4e0211a38613c6e02f61328e1031953fa) failing test for whitespace arg (@substack)
-
-### 0.5.1 (2013/05/30 07:17 +00:00)
-- [a20228f](https://github.com/bcoe/yargs/commit/a20228f62a454755dd07f628a7c5759113918327) fix parse() to work with functions before it (@substack)
-- [b13bd4c](https://github.com/bcoe/yargs/commit/b13bd4cac856a9821d42fa173bdb58f089365a7d) failing test for parse() with modifiers (@substack)
-
-### 0.5.0 (2013/05/18 21:59 +00:00)
-- [c474a64](https://github.com/bcoe/yargs/commit/c474a649231527915c222156e3b40806d365a87c) fixes for dash (@substack)
-
-### 0.4.0 (2013/04/13 19:03 +00:00)
-- [dafe3e1](https://github.com/bcoe/yargs/commit/dafe3e18d7c6e7c2d68e06559df0e5cbea3adb14) failing short test (@substack)
-
-### 0.3.7 (2013/04/04 04:07 +00:00)
-- [6c7a0ec](https://github.com/bcoe/yargs/commit/6c7a0ec94ce4199a505f0518b4d6635d4e47cc81) Fix for windows. On windows there is no _ in environment. (@hdf)
-
-### 0.3.6 (2013/04/04 04:04 +00:00)
-- [e72346a](https://github.com/bcoe/yargs/commit/e72346a727b7267af5aa008b418db89970873f05) Add support for newlines in -a="" arguments (@danielbeardsley)
-- [71e1fb5](https://github.com/bcoe/yargs/commit/71e1fb55ea9987110a669ac6ec12338cfff3821c) drop 0.4, add 0.8 to travis (@substack)
-
-### 0.3.5 (2012/10/10 11:09 +00:00)
-- [ee692b3](https://github.com/bcoe/yargs/commit/ee692b37554c70a0bb16389a50a26b66745cbbea) Fix parsing booleans (@vojtajina)
-- [5045122](https://github.com/bcoe/yargs/commit/5045122664c3f5b4805addf1be2148d5856f7ce8) set $0 properly in the tests (@substack)
-
-### 0.3.4 (2012/04/30 06:54 +00:00)
-- [f28c0e6](https://github.com/bcoe/yargs/commit/f28c0e62ca94f6e0bb2e6d82fc3d91a55e69b903) bump for string "true" params (@substack)
-- [8f44aeb](https://github.com/bcoe/yargs/commit/8f44aeb74121ddd689580e2bf74ef86a605e9bf2) Fix failing test for aliased booleans. (@coderarity)
-- [b9f7b61](https://github.com/bcoe/yargs/commit/b9f7b613b1e68e11e6c23fbda9e555a517dcc976) Add failing test for short aliased booleans. (@coderarity)
-
-### 0.3.3 (2012/04/30 06:45 +00:00)
-- [541bac8](https://github.com/bcoe/yargs/commit/541bac8dd787a5f1a5d28f6d8deb1627871705e7) Fixes #37.
-
-### 0.3.2 (2012/04/12 20:28 +00:00)
-- [3a0f014](https://github.com/bcoe/yargs/commit/3a0f014c1451280ac1c9caa1f639d31675586eec) travis badge (@substack)
-- [4fb60bf](https://github.com/bcoe/yargs/commit/4fb60bf17845f4ce3293f8ca49c9a1a7c736cfce) Fix boolean aliases. (@coderarity)
-- [f14dda5](https://github.com/bcoe/yargs/commit/f14dda546efc4fe06ace04d36919bfbb7634f79b) Adjusted package.json to use tap (@jfhbrook)
-- [88e5d32](https://github.com/bcoe/yargs/commit/88e5d32295be6e544c8d355ff84e355af38a1c74) test/usage.js no longer hangs (@jfhbrook)
-- [e1e740c](https://github.com/bcoe/yargs/commit/e1e740c27082f3ce84deca2093d9db2ef735d0e5) two tests for combined boolean/alias opts parsing (@jfhbrook)
-
-### 0.3.1 (2011/12/31 08:44 +00:00)
-- [d09b719](https://github.com/bcoe/yargs/commit/d09b71980ef711b6cf3918cd19beec8257e40e82) If "default" is set to false it was not passed on, fixed. (@wolframkriesing)
-
-### 0.3.0 (2011/12/09 06:03 +00:00)
-- [6e74aa7](https://github.com/bcoe/yargs/commit/6e74aa7b46a65773e20c0cb68d2d336d4a0d553d) bump and documented dot notation (@substack)
-
-### 0.2.7 (2011/10/20 02:25 +00:00)
-- [94adee2](https://github.com/bcoe/yargs/commit/94adee20e17b58d0836f80e8b9cdbe9813800916) argv._ can be told 'Hey! argv._! Don't be messing with my args.', and it WILL obey (@colinta)
-- [c46fdd5](https://github.com/bcoe/yargs/commit/c46fdd56a05410ae4a1e724a4820c82e77ff5469) optimistic critter image (@substack)
-- [5c95c73](https://github.com/bcoe/yargs/commit/5c95c73aedf4c7482bd423e10c545e86d7c8a125) alias options() to option() (@substack)
-- [f7692ea](https://github.com/bcoe/yargs/commit/f7692ea8da342850af819367833abb685fde41d8) [fix] Fix for parsing boolean edge case (@indexzero)
-- [d1f92d1](https://github.com/bcoe/yargs/commit/d1f92d1425bd7f356055e78621b30cdf9741a3c2)
-- [b01bda8](https://github.com/bcoe/yargs/commit/b01bda8d86e455bbf74ce497864cb8ab5b9fb847) [fix test] Update to ensure optimist is aware of default booleans. Associated tests included (@indexzero)
-- [aa753e7](https://github.com/bcoe/yargs/commit/aa753e7c54fb3a12f513769a0ff6d54aa0f63943) [dist test] Update devDependencies in package.json. Update test pathing to be more npm and require.paths future-proof (@indexzero)
-- [7bfce2f](https://github.com/bcoe/yargs/commit/7bfce2f3b3c98e6539e7549d35fbabced7e9341e) s/sys/util/ (@substack)
-- [d420a7a](https://github.com/bcoe/yargs/commit/d420a7a9c890d2cdb11acfaf3ea3f43bc3e39f41) update usage output (@substack)
-- [cf86eed](https://github.com/bcoe/yargs/commit/cf86eede2e5fc7495b6ec15e6d137d9ac814f075) some sage readme protips about parsing rules (@substack)
-- [5da9f7a](https://github.com/bcoe/yargs/commit/5da9f7a5c0e1758ec7c5801fb3e94d3f6e970513) documented all the methods finally (@substack)
-- [8ca6879](https://github.com/bcoe/yargs/commit/8ca6879311224b25933642987300f6a29de5c21b) fenced syntax highlighting (@substack)
-- [b72bacf](https://github.com/bcoe/yargs/commit/b72bacf1d02594778c1935405bc8137eb61761dc) right-alignment of wrapped extra params (@substack)
-- [2b980bf](https://github.com/bcoe/yargs/commit/2b980bf2656b4ee8fc5134dc5f56a48855c35198) now with .wrap() (@substack)
-- [d614f63](https://github.com/bcoe/yargs/commit/d614f639654057d1b7e35e3f5a306e88ec2ad1e4) don't show 'Options:' when there aren't any (@substack)
-- [691eda3](https://github.com/bcoe/yargs/commit/691eda354df97b5a86168317abcbcaabdc08a0fb) failing test for multi-aliasing (@substack)
-- [0826c9f](https://github.com/bcoe/yargs/commit/0826c9f462109feab2bc7a99346d22e72bf774b7) "Options:" > "options:" (@substack)
-- [72f7490](https://github.com/bcoe/yargs/commit/72f749025d01b7f295738ed370a669d885fbada0) [minor] Update formatting for `.showHelp()` (@indexzero)
-- [75aecce](https://github.com/bcoe/yargs/commit/75aeccea74329094072f95800e02c275e7d999aa) options works again, too lazy to write a proper test right now (@substack)
-- [f742e54](https://github.com/bcoe/yargs/commit/f742e5439817c662dc3bd8734ddd6467e6018cfd) line_count_options example, which breaks (@substack)
-- [4ca06b8](https://github.com/bcoe/yargs/commit/4ca06b8b4ea99b5d5714b315a2a8576bee6e5537) line count example (@substack)
-- [eeb8423](https://github.com/bcoe/yargs/commit/eeb8423e0a5ecc9dc3eb1e6df9f3f8c1c88f920b) remove self.argv setting in boolean (@substack)
-- [6903412](https://github.com/bcoe/yargs/commit/69034126804660af9cc20ea7f4457b50338ee3d7) removed camel case for now (@substack)
-- [5a0d88b](https://github.com/bcoe/yargs/commit/5a0d88bf23e9fa79635dd034e2a1aa992acc83cd) remove dead longest checking code (@substack)
-- [d782170](https://github.com/bcoe/yargs/commit/d782170babf7284b1aa34f5350df0dd49c373fa8) .help() too (@substack)
-- [622ec17](https://github.com/bcoe/yargs/commit/622ec17379bb5374fdbb190404c82bc600975791) rm old help generator (@substack)
-- [7c8baac](https://github.com/bcoe/yargs/commit/7c8baac4d66195e9f5158503ea9ebfb61153dab7) nub keys (@substack)
-- [8197785](https://github.com/bcoe/yargs/commit/8197785ad4762465084485b041abd722f69bf344) generate help message based on the previous calls, todo: nub (@substack)
-- [3ffbdc3](https://github.com/bcoe/yargs/commit/3ffbdc33c8f5e83d4ea2ac60575ce119570c7ede) stub out new showHelp, better checks (@substack)
-- [d4e21f5](https://github.com/bcoe/yargs/commit/d4e21f56a4830f7de841900d3c79756fb9886184) let .options() take single options too (@substack)
-- [3c4cf29](https://github.com/bcoe/yargs/commit/3c4cf2901a29bac119cca8e983028d8669230ec6) .options() is now heaps simpler (@substack)
-- [89f0d04](https://github.com/bcoe/yargs/commit/89f0d043cbccd302f10ab30c2069e05d2bf817c9) defaults work again, all tests pass (@substack)
-- [dd87333](https://github.com/bcoe/yargs/commit/dd8733365423006a6e4156372ebb55f98323af58) update test error messages, down to 2 failing tests (@substack)
-- [53f7bc6](https://github.com/bcoe/yargs/commit/53f7bc626b9875f2abdfc5dd7a80bde7f14143a3) fix for bools doubling up, passes the parse test again, others fail (@substack)
-- [2213e2d](https://github.com/bcoe/yargs/commit/2213e2ddc7263226fba717fb041dc3fde9bc2ee4) refactored for an argv getter, failing several tests (@substack)
-- [d1e7379](https://github.com/bcoe/yargs/commit/d1e737970f15c6c006bebdd8917706827ff2f0f2) just rescan for now, alias test passes (@substack)
-- [b2f8c99](https://github.com/bcoe/yargs/commit/b2f8c99cc477a8eb0fdf4cf178e1785b63185cfd) failing alias test (@substack)
-- [d0c0174](https://github.com/bcoe/yargs/commit/d0c0174daa144bfb6dc7290fdc448c393c475e15) .alias() (@substack)
-- [d85f431](https://github.com/bcoe/yargs/commit/d85f431ad7d07b058af3f2a57daa51495576c164) [api] Remove `.describe()` in favor of building upon the existing `.usage()` API (@indexzero)
-- [edbd527](https://github.com/bcoe/yargs/commit/edbd5272a8e213e71acd802782135c7f9699913a) [doc api] Add `.describe()`, `.options()`, and `.showHelp()` methods along with example. (@indexzero)
-- [be4902f](https://github.com/bcoe/yargs/commit/be4902ff0961ae8feb9093f2c0a4066463ded2cf) updates for coffee since it now does argv the node way (@substack)
-- [e24cb23](https://github.com/bcoe/yargs/commit/e24cb23798ee64e53b60815e7fda78b87f42390c) more general coffeescript detection (@substack)
-- [78ac753](https://github.com/bcoe/yargs/commit/78ac753e5d0ec32a96d39d893272afe989e42a4d) Don't trigger the CoffeeScript hack when running under node_g. (@papandreou)
-- [bcfe973](https://github.com/bcoe/yargs/commit/bcfe9731d7f90d4632281b8a52e8d76eb0195ae6) .string() but failing test (@substack)
-- [1987aca](https://github.com/bcoe/yargs/commit/1987aca28c7ba4e8796c07bbc547cb984804c826) test hex strings (@substack)
-- [ef36db3](https://github.com/bcoe/yargs/commit/ef36db32259b0b0d62448dc907c760e5554fb7e7) more keywords (@substack)
-- [cc53c56](https://github.com/bcoe/yargs/commit/cc53c56329960bed6ab077a79798e991711ba01d) Added camelCase function that converts --multi-word-option to camel case (so it becomes argv.multiWordOption). (@papandreou)
-- [60b57da](https://github.com/bcoe/yargs/commit/60b57da36797716e5783a633c6d5c79099016d45) fixed boolean bug by rescanning (@substack)
-- [dff6d07](https://github.com/bcoe/yargs/commit/dff6d078d97f8ac503c7d18dcc7b7a8c364c2883) boolean examples (@substack)
-- [0e380b9](https://github.com/bcoe/yargs/commit/0e380b92c4ef4e3c8dac1da18b5c31d85b1d02c9) boolean() with passing test (@substack)
-- [62644d4](https://github.com/bcoe/yargs/commit/62644d4bffbb8d1bbf0c2baf58a1d14a6359ef07) coffee compatibility with node regex for versions too (@substack)
-- [430fafc](https://github.com/bcoe/yargs/commit/430fafcf1683d23774772826581acff84b456827) argv._ fixed by fixing the coffee detection (@substack)
-- [343b8af](https://github.com/bcoe/yargs/commit/343b8afefd98af274ebe21b5a16b3a949ec5429f) whichNodeArgs test fails too (@substack)
-- [63df2f3](https://github.com/bcoe/yargs/commit/63df2f371f31e63d7f1dec2cbf0022a5f08da9d2) replicated mnot's bug in whichNodeEmpty test (@substack)
-- [35473a4](https://github.com/bcoe/yargs/commit/35473a4d93a45e5e7e512af8bb54ebb532997ae1) test for ./bin usage (@substack)
-- [13df151](https://github.com/bcoe/yargs/commit/13df151e44228eed10e5441c7cd163e086c458a4) don't coerce booleans to numbers (@substack)
-- [85f8007](https://github.com/bcoe/yargs/commit/85f8007e93b8be7124feea64b1f1916d8ba1894a) package bump for automatic number conversion (@substack)
-- [8f17014](https://github.com/bcoe/yargs/commit/8f170141cded4ccc0c6d67a849c5bf996aa29643) updated readme and examples with new auto-numberification goodness (@substack)
-- [73dc901](https://github.com/bcoe/yargs/commit/73dc9011ac968e39b55e19e916084a839391b506) auto number conversion works yay (@substack)
-- [bcec56b](https://github.com/bcoe/yargs/commit/bcec56b3d031e018064cbb691539ccc4f28c14ad) failing test for not-implemented auto numification (@substack)
-- [ebd2844](https://github.com/bcoe/yargs/commit/ebd2844d683feeac583df79af0e5124a7a7db04e) odd that eql doesn't check types careflly (@substack)
-- [fd854b0](https://github.com/bcoe/yargs/commit/fd854b02e512ce854b76386d395672a7969c1bc4) package author + keywords (@substack)
-- [656a1d5](https://github.com/bcoe/yargs/commit/656a1d5a1b7c0e49d72e80cb13f20671d56f76c6) updated readme with .default() stuff (@substack)
-- [cd7f8c5](https://github.com/bcoe/yargs/commit/cd7f8c55f0b82b79b690d14c5f806851236998a1) passing tests for new .default() behavior (@substack)
-- [932725e](https://github.com/bcoe/yargs/commit/932725e39ce65bc91a0385a5fab659a5fa976ac2) new default() thing for setting default key/values (@substack)
-- [4e6c7ab](https://github.com/bcoe/yargs/commit/4e6c7aba6374ac9ebc6259ecf91f13af7bce40e3) test for coffee usage (@substack)
-- [d54ffcc](https://github.com/bcoe/yargs/commit/d54ffccf2a5a905f51ed5108f7c647f35d64ae23) new --key value style with passing tests. NOTE: changes existing behavior (@substack)
-- [ed2a2d5](https://github.com/bcoe/yargs/commit/ed2a2d5d828100ebeef6385c0fb88d146a5cfe9b) package bump for summatix's coffee script fix (@substack)
-- [75a975e](https://github.com/bcoe/yargs/commit/75a975eed8430d28e2a79dc9e6d819ad545f4587) Added support for CoffeeScript (@summatix)
-- [56b2b1d](https://github.com/bcoe/yargs/commit/56b2b1de8d11f8a2b91979d8ae2d6db02d8fe64d) test coverage for the falsy check() usage (@substack)
-- [a4843a9](https://github.com/bcoe/yargs/commit/a4843a9f0e69ffb4afdf6a671d89eb6f218be35d) check bug fixed plus a handy string (@substack)
-- [857bd2d](https://github.com/bcoe/yargs/commit/857bd2db933a5aaa9cfecba0ced2dc9b415f8111) tests for demandCount, back up to 100% coverage (@substack)
-- [073b776](https://github.com/bcoe/yargs/commit/073b7768ebd781668ef05c13f9003aceca2f5c35) call demandCount from demand (@substack)
-- [4bd4b7a](https://github.com/bcoe/yargs/commit/4bd4b7a085c8b6ce1d885a0f486cc9865cee2db1) add demandCount to check for the number of arguments in the _ list (@marshall)
-- [b8689ac](https://github.com/bcoe/yargs/commit/b8689ac68dacf248119d242bba39a41cb0adfa07) Rebase checks. That will be its own module eventually. (@substack)
-- [e688370](https://github.com/bcoe/yargs/commit/e688370b576f0aa733c3f46183df69e1b561668e) a $0 like in perl (@substack)
-- [2e5e196](https://github.com/bcoe/yargs/commit/2e5e1960fc19afb21fb3293752316eaa8bcd3609) usage test hacking around process and console (@substack)
-- [fcc3521](https://github.com/bcoe/yargs/commit/fcc352163fbec6a1dfe8caf47a0df39de24fe016) description pun (@substack)
-- [87a1fe2](https://github.com/bcoe/yargs/commit/87a1fe29037ca2ca5fefda85141aaeb13e8ce761) mit/x11 license (@substack)
-- [8d089d2](https://github.com/bcoe/yargs/commit/8d089d24cd687c0bde3640a96c09b78f884900dd) bool example is more consistent and also shows off short option grouping (@substack)
-- [448d747](https://github.com/bcoe/yargs/commit/448d7473ac68e8e03d8befc9457b0d9e21725be0) start of the readme and examples (@substack)
-- [da74dea](https://github.com/bcoe/yargs/commit/da74dea799a9b59dbf022cbb8001bfdb0d52eec9) more tests for long and short captures (@substack)
-- [ab6387e](https://github.com/bcoe/yargs/commit/ab6387e6769ca4af82ca94c4c67c7319f0d9fcfa) silly bug in the tests with s/not/no/, all tests pass now (@substack)
-- [102496a](https://github.com/bcoe/yargs/commit/102496a319e8e06f6550d828fc2f72992c7d9ecc) hack an instance for process.argv onto Argv so the export can be called to create an instance or used for argv, which is the most common case (@substack)
-- [a01caeb](https://github.com/bcoe/yargs/commit/a01caeb532546d19f68f2b2b87f7036cfe1aaedd) divide example (@substack)
-- [443da55](https://github.com/bcoe/yargs/commit/443da55736acbaf8ff8b04d1b9ce19ab016ddda2) start of the lib with a package.json (@substack)
diff --git a/node_modules/browser-sync/node_modules/yargs/LICENSE b/node_modules/browser-sync/node_modules/yargs/LICENSE
deleted file mode 100644
index 747ab11..0000000
--- a/node_modules/browser-sync/node_modules/yargs/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2010 James Halliday (mail@substack.net)
-Modified work Copyright 2014 Contributors (ben@npmjs.com)
-
-This project is free software released under the MIT/X11 license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/node_modules/browser-sync/node_modules/yargs/README.md b/node_modules/browser-sync/node_modules/yargs/README.md
deleted file mode 100644
index a0b9ced..0000000
--- a/node_modules/browser-sync/node_modules/yargs/README.md
+++ /dev/null
@@ -1,1877 +0,0 @@
- yargs
-========
-
-Yargs be a node.js library fer hearties tryin' ter parse optstrings.
-
-With yargs, ye be havin' a map that leads straight to yer treasure! Treasure of course, being a simple option hash.
-
-[![Build Status][travis-image]][travis-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-[![NPM version][npm-image]][npm-url]
-[![Windows Tests][windows-image]][windows-url]
-[![js-standard-style][standard-image]][standard-url]
-[![standard-version][standard-version-image]][standard-version-url]
-[![Gitter][gitter-image]][gitter-url]
-
-> Yargs is the official successor to optimist. Please feel free to submit issues and pull requests. If you'd like to contribute and don't know where to start, have a look at [the issue list](https://github.com/yargs/yargs/issues) :)
-
-examples
-========
-
-With yargs, the options be just a hash!
--------------------------------------------------------------------
-
-plunder.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-
-if (argv.ships > 3 && argv.distance < 53.5) {
- console.log('Plunder more riffiwobbles!');
-} else {
- console.log('Retreat from the xupptumblers!');
-}
-````
-
-***
-
- $ ./plunder.js --ships=4 --distance=22
- Plunder more riffiwobbles!
-
- $ ./plunder.js --ships 12 --distance 98.7
- Retreat from the xupptumblers!
-
-
-
-But don't walk the plank just yet! There be more! You can do short options:
--------------------------------------------------
-
-short.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-console.log('(%d,%d)', argv.x, argv.y);
-````
-
-***
-
- $ ./short.js -x 10 -y 21
- (10,21)
-
-And booleans, both long, short, and even grouped:
-----------------------------------
-
-bool.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-
-if (argv.s) {
- process.stdout.write(argv.fr ? 'Le perroquet dit: ' : 'The parrot says: ');
-}
-console.log(
- (argv.fr ? 'couac' : 'squawk') + (argv.p ? '!' : '')
-);
-````
-
-***
-
- $ ./bool.js -s
- The parrot says: squawk
-
- $ ./bool.js -sp
- The parrot says: squawk!
-
- $ ./bool.js -sp --fr
- Le perroquet dit: couac!
-
-And non-hyphenated options too! Just use `argv._`!
--------------------------------------------------
-
-nonopt.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-console.log('(%d,%d)', argv.x, argv.y);
-console.log(argv._);
-````
-
-***
-
- $ ./nonopt.js -x 6.82 -y 3.35 rum
- (6.82,3.35)
- [ 'rum' ]
-
- $ ./nonopt.js "me hearties" -x 0.54 yo -y 1.12 ho
- (0.54,1.12)
- [ 'me hearties', 'yo', 'ho' ]
-
-Yargs even counts your booleans!
-----------------------------------------------------------------------
-
-count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .count('verbose')
- .alias('v', 'verbose')
- .argv;
-
-VERBOSE_LEVEL = argv.verbose;
-
-function WARN() { VERBOSE_LEVEL >= 0 && console.log.apply(console, arguments); }
-function INFO() { VERBOSE_LEVEL >= 1 && console.log.apply(console, arguments); }
-function DEBUG() { VERBOSE_LEVEL >= 2 && console.log.apply(console, arguments); }
-
-WARN("Showing only important stuff");
-INFO("Showing semi-important stuff too");
-DEBUG("Extra chatty mode");
-````
-
-***
- $ node count.js
- Showing only important stuff
-
- $ node count.js -v
- Showing only important stuff
- Showing semi-important stuff too
-
- $ node count.js -vv
- Showing only important stuff
- Showing semi-important stuff too
- Extra chatty mode
-
- $ node count.js -v --verbose
- Showing only important stuff
- Showing semi-important stuff too
- Extra chatty mode
-
-Tell users how to use yer options and make demands.
--------------------------------------------------
-
-area.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Usage: $0 -w [num] -h [num]')
- .demand(['w','h'])
- .argv;
-
-console.log("The area is:", argv.w * argv.h);
-````
-
-***
-
- $ ./area.js -w 55 -h 11
- The area is: 605
-
- $ node ./area.js -w 4.91 -w 2.51
- Usage: area.js -w [num] -h [num]
-
- Options:
- -w [required]
- -h [required]
-
- Missing required arguments: h
-
-After yer demands have been met, demand more! Ask for non-hyphenated arguments!
------------------------------------------
-
-demand_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .demand(2)
- .argv;
-console.dir(argv);
-````
-
-***
-
- $ ./demand_count.js a
-
- Not enough non-option arguments: got 1, need at least 2
-
- $ ./demand_count.js a b
- { _: [ 'a', 'b' ], '$0': 'demand_count.js' }
-
- $ ./demand_count.js a b c
- { _: [ 'a', 'b', 'c' ], '$0': 'demand_count.js' }
-
-EVEN MORE SHIVER ME TIMBERS!
-------------------
-
-default_singles.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .default('x', 10)
- .default('y', 10)
- .argv
-;
-console.log(argv.x + argv.y);
-````
-
-***
-
- $ ./default_singles.js -x 5
- 15
-
-default_hash.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .default({ x : 10, y : 10 })
- .argv
-;
-console.log(argv.x + argv.y);
-````
-
-***
-
- $ ./default_hash.js -y 7
- 17
-
-And if you really want to get all descriptive about it...
----------------------------------------------------------
-
-boolean_single.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .boolean('v')
- .argv
-;
-console.dir(argv.v);
-console.dir(argv._);
-````
-
-***
-
- $ ./boolean_single.js -v "me hearties" yo ho
- true
- [ 'me hearties', 'yo', 'ho' ]
-
-
-boolean_double.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .boolean(['x','y','z'])
- .argv
-;
-console.dir([ argv.x, argv.y, argv.z ]);
-console.dir(argv._);
-````
-
-***
-
- $ ./boolean_double.js -x -z one two three
- [ true, false, true ]
- [ 'one', 'two', 'three' ]
-
-Yargs is here to help you...
----------------------------
-
-Ye can describe parameters fer help messages and set aliases. Yargs figures
-out how ter format a handy help string automatically.
-
-line_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Usage: $0 [options]')
- .command('count', 'Count the lines in a file')
- .example('$0 count -f foo.js', 'count the lines in the given file')
- .alias('f', 'file')
- .nargs('f', 1)
- .describe('f', 'Load a file')
- .demand(1, ['f'])
- .help('h')
- .alias('h', 'help')
- .epilog('copyright 2015')
- .argv;
-
-var fs = require('fs');
-var s = fs.createReadStream(argv.file);
-
-var lines = 0;
-s.on('data', function (buf) {
- lines += buf.toString().match(/\n/g).length;
-});
-
-s.on('end', function () {
- console.log(lines);
-});
-````
-
-***
- $ node line_count.js count
- Usage: line_count.js [options]
-
- Commands:
- count Count the lines in a file
-
- Options:
- -f, --file Load a file [required]
- -h, --help Show help [boolean]
-
- Examples:
- line_count.js count -f foo.js count the lines in the given file
-
- copyright 2015
-
- Missing required arguments: f
-
- $ node line_count.js count --file line_count.js
- 26
-
- $ node line_count.js count -f line_count.js
- 26
-
-methods
-=======
-
-By itself,
-
-````javascript
-require('yargs').argv
-````
-
-will use the `process.argv` array to construct the `argv` object.
-
-You can pass in the `process.argv` yourself:
-
-````javascript
-require('yargs')([ '-x', '1', '-y', '2' ]).argv
-````
-
-or use `.parse()` to do the same thing:
-
-````javascript
-require('yargs').parse([ '-x', '1', '-y', '2' ])
-````
-
-The rest of these methods below come in just before the terminating `.argv`.
-
- .alias(key, alias)
-------------------
-
-Set key names as equivalent such that updates to a key will propagate to aliases
-and vice-versa.
-
-Optionally `.alias()` can take an object that maps keys to aliases.
-Each key of this object should be the canonical version of the option, and each
-value should be a string or an array of strings.
-
-.argv
------
-
-Get the arguments as a plain old object.
-
-Arguments without a corresponding flag show up in the `argv._` array.
-
-The script name or node command is available at `argv.$0` similarly to how `$0`
-works in bash or perl.
-
-If `yargs` is executed in an environment that embeds node and there's no script name (e.g.
-[Electron](http://electron.atom.io/) or [nw.js](http://nwjs.io/)), it will ignore the first parameter since it
-expects it to be the script name. In order to override this behavior, use `.parse(process.argv.slice(1))`
-instead of `.argv` and the first parameter won't be ignored.
-
- .array(key)
-----------
-
-Tell the parser to interpret `key` as an array. If `.array('foo')` is set,
-`--foo foo bar` will be parsed as `['foo', 'bar']` rather than as `'foo'`.
-
- .boolean(key)
--------------
-
-Interpret `key` as a boolean. If a non-flag option follows `key` in
-`process.argv`, that string won't get set as the value of `key`.
-
-`key` will default to `false`, unless a `default(key, undefined)` is
-explicitly set.
-
-If `key` is an array, interpret all the elements as booleans.
-
-.check(fn)
-----------
-
-Check that certain conditions are met in the provided arguments.
-
-`fn` is called with two arguments, the parsed `argv` hash and an array of options and their aliases.
-
-If `fn` throws or returns a non-truthy value, show the thrown error, usage information, and
-exit.
-
- .choices(key, choices)
-----------------------
-
-Limit valid values for `key` to a predefined set of `choices`, given as an array
-or as an individual value.
-
-```js
-var argv = require('yargs')
- .alias('i', 'ingredient')
- .describe('i', 'choose your sandwich ingredients')
- .choices('i', ['peanut-butter', 'jelly', 'banana', 'pickles'])
- .help('help')
- .argv
-```
-
-If this method is called multiple times, all enumerated values will be merged
-together. Choices are generally strings or numbers, and value matching is
-case-sensitive.
-
-Optionally `.choices()` can take an object that maps multiple keys to their
-choices.
-
-Choices can also be specified as `choices` in the object given to `option()`.
-
-```js
-var argv = require('yargs')
- .option('size', {
- alias: 's',
- describe: 'choose a size',
- choices: ['xs', 's', 'm', 'l', 'xl']
- })
- .argv
-```
-
- .coerce(key, fn)
-----------------
-
-Provide a synchronous function to coerce or transform the value(s) given on the
-command line for `key`.
-
-The coercion function should accept one argument, representing the parsed value
-from the command line, and should return a new value or throw an error. The
-returned value will be used as the value for `key` (or one of its aliases) in
-`argv`.
-
-If the function throws, the error will be treated as a validation
-failure, delegating to either a custom [`.fail()`](#fail) handler or printing
-the error message in the console.
-
-Coercion will be applied to a value after
-all other modifications, such as [`.normalize()`](#normalize).
-
-_Examples:_
-
-```js
-var argv = require('yargs')
- .coerce('file', function (arg) {
- return require('fs').readFileSync(arg, 'utf8')
- })
- .argv
-```
-
-Optionally `.coerce()` can take an object that maps several keys to their
-respective coercion function.
-
-```js
-var argv = require('yargs')
- .coerce({
- date: Date.parse,
- json: JSON.parse
- })
- .argv
-```
-
-You can also map the same function to several keys at one time. Just pass an
-array of keys as the first argument to `.coerce()`:
-
-```js
-var path = require('path')
-var argv = require('yargs')
- .coerce(['src', 'dest'], path.resolve)
- .argv
-```
-
-If you are using dot-notion or arrays, .e.g., `user.email` and `user.password`,
-coercion will be applied to the final object that has been parsed:
-
-```js
-// --user.name Batman --user.password 123
-// gives us: {name: 'batman', password: '[SECRET]'}
-var argv = require('yargs')
- .option('user')
- .coerce('user', opt => {
- opt.name = opt.name.toLowerCase()
- opt.password = '[SECRET]'
- return opt
- })
- .argv
-```
-
-.command(cmd, desc, [builder], [handler])
------------------------------------------
-.command(cmd, desc, [module])
------------------------------
-.command(module)
-----------------
-
-Define the commands exposed by your application.
-
-`cmd` should be a string representing the command or an array of strings
-representing the command and its aliases. Read more about command aliases in the
-subsection below.
-
-Use `desc` to provide a description for each command your application accepts (the
-values stored in `argv._`). Set `desc` to `false` to create a hidden command.
-Hidden commands don't show up in the help output and aren't available for
-completion.
-
-Optionally, you can provide a `builder` object to give hints about the
-options that your command accepts:
-
-```js
-yargs
- .command('get', 'make a get HTTP request', {
- url: {
- alias: 'u',
- default: 'http://yargs.js.org/'
- }
- })
- .help()
- .argv
-```
-
-Note that commands will not automatically inherit configuration _or_ options
-of their parent context. This means you'll have to re-apply configuration
-if necessary, and make options global manually using the [global](#global) method.
-
-Additionally, the [`help`](#help) and [`version`](#version)
-options (if used) **always** apply globally, just like the
-[`.wrap()`](#wrap) configuration.
-
-`builder` can also be a function. This function is executed
-with a `yargs` instance, and can be used to provide _advanced_ command specific help:
-
-```js
-yargs
- .command('get', 'make a get HTTP request', function (yargs) {
- return yargs.option('url', {
- alias: 'u',
- default: 'http://yargs.js.org/'
- })
- })
- .help()
- .argv
-```
-
-You can also provide a handler function, which will be executed with the
-parsed `argv` object:
-
-```js
-yargs
- .command(
- 'get',
- 'make a get HTTP request',
- function (yargs) {
- return yargs.option('u', {
- alias: 'url',
- describe: 'the URL to make an HTTP request to'
- })
- },
- function (argv) {
- console.log(argv.url)
- }
- )
- .help()
- .argv
-```
-
-### Positional Arguments
-
-Commands can accept _optional_ and _required_ positional arguments. Required
-positional arguments take the form ``, and optional arguments
-take the form `[bar]`. The parsed positional arguments will be populated in
-`argv`:
-
-```js
-yargs.command('get [proxy]', 'make a get HTTP request')
- .help()
- .argv
-```
-
-#### Variadic Positional Arguments
-
-The last positional argument can optionally accept an array of
-values, by using the `..` operator:
-
-```js
-yargs.command('download [files..]', 'download several files')
- .help()
- .argv
-```
-
-### Command Execution
-
-When a command is given on the command line, yargs will execute the following:
-
-1. push the command into the current context
-2. reset non-global configuration
-3. apply command configuration via the `builder`, if given
-4. parse and validate args from the command line, including positional args
-5. if validation succeeds, run the `handler` function, if given
-6. pop the command from the current context
-
-### Command Aliases
-
-You can define aliases for a command by putting the command and all of its
-aliases into an array.
-
-Alternatively, a command module may specify an `aliases` property, which may be
-a string or an array of strings. All aliases defined via the `command` property
-and the `aliases` property will be concatenated together.
-
-The first element in the array is considered the canonical command, which may
-define positional arguments, and the remaining elements in the array are
-considered aliases. Aliases inherit positional args from the canonical command,
-and thus any positional args defined in the aliases themselves are ignored.
-
-If either the canonical command or any of its aliases are given on the command
-line, the command will be executed.
-
-```js
-#!/usr/bin/env node
-require('yargs')
- .command(['start [app]', 'run', 'up'], 'Start up an app', {}, (argv) => {
- console.log('starting up the', argv.app || 'default', 'app')
- })
- .command({
- command: 'configure [value]',
- aliases: ['config', 'cfg'],
- desc: 'Set a config variable',
- builder: (yargs) => yargs.default('value', 'true'),
- handler: (argv) => {
- console.log(`setting ${argv.key} to ${argv.value}`)
- }
- })
- .demand(1)
- .help()
- .wrap(72)
- .argv
-```
-
-```
-$ ./svc.js help
-Commands:
- start [app] Start up an app [aliases: run, up]
- configure [value] Set a config variable [aliases: config, cfg]
-
-Options:
- --help Show help [boolean]
-
-$ ./svc.js cfg concurrency 4
-setting concurrency to 4
-
-$ ./svc.js run web
-starting up the web app
-```
-
-### Providing a Command Module
-
-For complicated commands you can pull the logic into a module. A module
-simply needs to export:
-
-* `exports.command`: string (or array of strings) that executes this command when given on the command line, first string may contain positional args
-* `exports.aliases`: array of strings (or a single string) representing aliases of `exports.command`, positional args defined in an alias are ignored
-* `exports.describe`: string used as the description for the command in help text, use `false` for a hidden command
-* `exports.builder`: object declaring the options the command accepts, or a function accepting and returning a yargs instance
-* `exports.handler`: a function which will be passed the parsed argv.
-
-```js
-// my-module.js
-exports.command = 'get [proxy]'
-
-exports.describe = 'make a get HTTP request'
-
-exports.builder = {
- banana: {
- default: 'cool'
- },
- batman: {
- default: 'sad'
- }
-}
-
-exports.handler = function (argv) {
- // do something with argv.
-}
-```
-
-You then register the module like so:
-
-```js
-yargs.command(require('my-module'))
- .help()
- .argv
-```
-
-Or if the module does not export `command` and `describe` (or if you just want to override them):
-
-```js
-yargs.command('get [proxy]', 'make a get HTTP request', require('my-module'))
- .help()
- .argv
-```
-
-.commandDir(directory, [opts])
-------------------------------
-
-Apply command modules from a directory relative to the module calling this method.
-
-This allows you to organize multiple commands into their own modules under a
-single directory and apply all of them at once instead of calling
-`.command(require('./dir/module'))` multiple times.
-
-By default, it ignores subdirectories. This is so you can use a directory
-structure to represent your command hierarchy, where each command applies its
-subcommands using this method in its builder function. See the example below.
-
-Note that yargs assumes all modules in the given directory are command modules
-and will error if non-command modules are encountered. In this scenario, you
-can either move your module to a different directory or use the `exclude` or
-`visit` option to manually filter it out. More on that below.
-
-`directory` is a relative directory path as a string (required).
-
-`opts` is an options object (optional). The following options are valid:
-
-- `recurse`: boolean, default `false`
-
- Look for command modules in all subdirectories and apply them as a flattened
- (non-hierarchical) list.
-
-- `extensions`: array of strings, default `['js']`
-
- The types of files to look for when requiring command modules.
-
-- `visit`: function
-
- A synchronous function called for each command module encountered. Accepts
- `commandObject`, `pathToFile`, and `filename` as arguments. Returns
- `commandObject` to include the command; any falsy value to exclude/skip it.
-
-- `include`: RegExp or function
-
- Whitelist certain modules. See [`require-directory` whitelisting](https://www.npmjs.com/package/require-directory#whitelisting) for details.
-
-- `exclude`: RegExp or function
-
- Blacklist certain modules. See [`require-directory` blacklisting](https://www.npmjs.com/package/require-directory#blacklisting) for details.
-
-### Example command hierarchy using `.commandDir()`
-
-Desired CLI:
-
-```sh
-$ myapp --help
-$ myapp init
-$ myapp remote --help
-$ myapp remote add base http://yargs.js.org
-$ myapp remote prune base
-$ myapp remote prune base fork whatever
-```
-
-Directory structure:
-
-```
-myapp/
-├─ cli.js
-└─ cmds/
- ├─ init.js
- ├─ remote.js
- └─ remote_cmds/
- ├─ add.js
- └─ prune.js
-```
-
-cli.js:
-
-```js
-#!/usr/bin/env node
-require('yargs')
- .commandDir('cmds')
- .demand(1)
- .help()
- .argv
-```
-
-cmds/init.js:
-
-```js
-exports.command = 'init [dir]'
-exports.desc = 'Create an empty repo'
-exports.builder = {
- dir: {
- default: '.'
- }
-}
-exports.handler = function (argv) {
- console.log('init called for dir', argv.dir)
-}
-```
-
-cmds/remote.js:
-
-```js
-exports.command = 'remote '
-exports.desc = 'Manage set of tracked repos'
-exports.builder = function (yargs) {
- return yargs.commandDir('remote_cmds')
-}
-exports.handler = function (argv) {}
-```
-
-cmds/remote_cmds/add.js:
-
-```js
-exports.command = 'add '
-exports.desc = 'Add remote named for repo at url '
-exports.builder = {}
-exports.handler = function (argv) {
- console.log('adding remote %s at url %s', argv.name, argv.url)
-}
-```
-
-cmds/remote_cmds/prune.js:
-
-```js
-exports.command = 'prune [names..]'
-exports.desc = 'Delete tracked branches gone stale for remotes'
-exports.builder = {}
-exports.handler = function (argv) {
- console.log('pruning remotes %s', [].concat(argv.name).concat(argv.names).join(', '))
-}
-```
-
-.completion([cmd], [description], [fn])
----------------------------------------
-
-Enable bash-completion shortcuts for commands and options.
-
-`cmd`: When present in `argv._`, will result in the `.bashrc` completion script
-being outputted. To enable bash completions, concat the generated script to your
-`.bashrc` or `.bash_profile`.
-
-`description`: Provide a description in your usage instructions for the command
-that generates bash completion scripts.
-
-`fn`: Rather than relying on yargs' default completion functionality, which
-shiver me timbers is pretty awesome, you can provide your own completion
-method.
-
-If invoked without parameters, `.completion()` will make `completion` the command to output
-the completion script.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv) {
- // 'current' is the current command being completed.
- // 'argv' is the parsed arguments so far.
- // simply return an array of completions.
- return [
- 'foo',
- 'bar'
- ];
- })
- .argv;
-```
-
-You can also provide asynchronous completions.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv, done) {
- setTimeout(function() {
- done([
- 'apple',
- 'banana'
- ]);
- }, 500);
- })
- .argv;
-```
-
-But wait, there's more! You can return an asynchronous promise.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv, done) {
- return new Promise(function (resolve, reject) {
- setTimeout(function () {
- resolve(['apple', 'banana'])
- }, 10)
- })
- })
- .argv;
-```
-
- .config([key], [description], [parseFn])
--------------------------------------------------------------
-.config(object)
----------------
-
-Tells the parser that if the option specified by `key` is passed in, it
-should be interpreted as a path to a JSON config file. The file is loaded
-and parsed, and its properties are set as arguments. Because the file is
-loaded using Node's require(), the filename MUST end in `.json` to be
-interpreted correctly.
-
-If invoked without parameters, `.config()` will make `--config` the option to pass the JSON config file.
-
-An optional `description` can be provided to customize the config (`key`) option
-in the usage string.
-
-An optional `parseFn` can be used to provide a custom parser. The parsing
-function must be synchronous, and should return an object containing
-key value pairs or an error.
-
-```js
-var argv = require('yargs')
- .config('settings', function (configPath) {
- return JSON.parse(fs.readFileSync(configPath, 'utf-8'))
- })
- .argv
-```
-
-You can also pass an explicit configuration `object`, it will be parsed
-and its properties will be set as arguments.
-
-```js
-var argv = require('yargs')
- .config({foo: 1, bar: 2})
- .argv
-console.log(argv)
-```
-
-```
-$ node test.js
-{ _: [],
- foo: 1,
- bar: 2,
- '$0': 'test.js' }
-```
-
- .count(key)
-------------
-
-Interpret `key` as a boolean flag, but set its parsed value to the number of
-flag occurrences rather than `true` or `false`. Default value is thus `0`.
-
- .default(key, value, [description])
----------------------------------------------------------
-.defaults(key, value, [description])
-------------------------------------
-
-**Note:** The `.defaults()` alias is deprecated. It will be
-removed in the next major version.
-
-Set `argv[key]` to `value` if no option was specified in `process.argv`.
-
-Optionally `.default()` can take an object that maps keys to default values.
-
-But wait, there's more! The default value can be a `function` which returns
-a value. The name of the function will be used in the usage string:
-
-```js
-var argv = require('yargs')
- .default('random', function randomValue() {
- return Math.random() * 256;
- }).argv;
-```
-
-Optionally, `description` can also be provided and will take precedence over
-displaying the value in the usage instructions:
-
-```js
-.default('timeout', 60000, '(one-minute)')
-```
-
- .demand(key, [msg | boolean])
-------------------------------
-.demand(count, [max], [msg])
-------------------------------
-
-If `key` is a string, show the usage information and exit if `key` wasn't
-specified in `process.argv`.
-
-If `key` is a number, demand at least as many non-option arguments, which show
-up in `argv._`. A second number can also optionally be provided, which indicates
-the maximum number of non-option arguments.
-
-If `key` is an array, demand each element.
-
-If a `msg` string is given, it will be printed when the argument is missing,
-instead of the standard error message. This is especially helpful for the non-option arguments in `argv._`.
-
-If a `boolean` value is given, it controls whether the option is demanded;
-this is useful when using `.options()` to specify command line parameters.
-
-A combination of `.demand(1)` and `.strict()` will allow you to require a user to pass at least one command:
-
-```js
-var argv = require('yargs')
- .command('install', 'tis a mighty fine package to install')
- .demand(1)
- .strict()
- .argv
-```
-
-Similarly, you can require a command and arguments at the same time:
-
-```js
-var argv = require('yargs')
- .command('install', 'tis a mighty fine package to install')
- .demand(1, ['w', 'm'])
- .strict()
- .argv
-```
-
- .describe(key, desc)
---------------------
-
-Describe a `key` for the generated usage information.
-
-Optionally `.describe()` can take an object that maps keys to descriptions.
-
-.detectLocale(boolean)
------------
-
-Should yargs attempt to detect the os' locale? Defaults to `true`.
-
-.env([prefix])
---------------
-
-Tell yargs to parse environment variables matching the given prefix and apply
-them to argv as though they were command line arguments.
-
-Use the "__" separator in the environment variable to indicate nested options.
-(e.g. prefix_nested__foo => nested.foo)
-
-If this method is called with no argument or with an empty string or with `true`,
-then all env vars will be applied to argv.
-
-Program arguments are defined in this order of precedence:
-
-1. Command line args
-2. Config file
-3. Env var
-4. Configured defaults
-
-```js
-var argv = require('yargs')
- .env('MY_PROGRAM')
- .option('f', {
- alias: 'fruit-thing',
- default: 'apple'
- })
- .argv
-console.log(argv)
-```
-
-```
-$ node fruity.js
-{ _: [],
- f: 'apple',
- 'fruit-thing': 'apple',
- fruitThing: 'apple',
- '$0': 'fruity.js' }
-```
-
-```
-$ MY_PROGRAM_FRUIT_THING=banana node fruity.js
-{ _: [],
- fruitThing: 'banana',
- f: 'banana',
- 'fruit-thing': 'banana',
- '$0': 'fruity.js' }
-```
-
-```
-$ MY_PROGRAM_FRUIT_THING=banana node fruity.js -f cat
-{ _: [],
- f: 'cat',
- 'fruit-thing': 'cat',
- fruitThing: 'cat',
- '$0': 'fruity.js' }
-```
-
-Env var parsing is disabled by default, but you can also explicitly disable it
-by calling `.env(false)`, e.g. if you need to undo previous configuration.
-
-.epilog(str)
-------------
-.epilogue(str)
---------------
-
-A message to print at the end of the usage instructions, e.g.
-
-```js
-var argv = require('yargs')
- .epilogue('for more information, find our manual at http://example.com');
-```
-
-.example(cmd, desc)
--------------------
-
-Give some example invocations of your program. Inside `cmd`, the string
-`$0` will get interpolated to the current script name or node command for the
-present script similar to how `$0` works in bash or perl.
-Examples will be printed out as part of the help message.
-
- .exitProcess(enable)
-----------------------------------
-
-By default, yargs exits the process when the user passes a help flag, uses the
-`.version` functionality, or when validation fails. Calling
-`.exitProcess(false)` disables this behavior, enabling further actions after
-yargs have been validated.
-
- .fail(fn)
----------
-
-Method to execute when a failure occurs, rather than printing the failure message.
-
-`fn` is called with the failure message that would have been printed, the
-`Error` instance originally thrown and yargs state when the failure
-occured.
-
-```js
-var argv = require('yargs')
- .fail(function (msg, err, yargs) {
- if (err) throw err // preserve stack
- console.error('You broke it!')
- console.error(msg)
- console.error('You should be doing', yargs.help())
- process.exit(1)
- })
- .argv
-```
-
-.getCompletion(args, done);
----------------------------
-
-Allows to programmatically get completion choices for any line.
-
-`args`: An array of the words in the command line to complete.
-
-`done`: The callback to be called with the resulting completions.
-
-For example:
-
-```js
-require('yargs')
- .option('foobar')
- .option('foobaz')
- .completion()
- .getCompletion(['./test.js', '--foo'], function (completions) {
- console.log(completions)
- })
-```
-
-Outputs the same completion choices as `./test.js --foo`TAB : `--foobar` and `--foobaz`
-
- .global(globals)
-------------
-
-Indicate that an option (or group of options) should not be reset when a command
-is executed, as an example:
-
-```js
-var argv = require('yargs')
- .option('a', {
- alias: 'all',
- default: true
- })
- .option('n', {
- alias: 'none',
- default: true
- })
- .command('foo', 'foo command', function (yargs) {
- return yargs.option('b', {
- alias: 'bar'
- })
- })
- .help('help')
- .global('a')
- .argv
-```
-
-If the `foo` command is executed the `all` option will remain, but the `none`
-option will have been eliminated.
-
-`help`, `version`, and `completion` options default to being global.
-
- .group(key(s), groupName)
---------------------
-
-Given a key, or an array of keys, places options under an alternative heading
-when displaying usage instructions, e.g.,
-
-```js
-var yargs = require('yargs')(['--help'])
- .help()
- .group('batman', 'Heroes:')
- .describe('batman', "world's greatest detective")
- .wrap(null)
- .argv
-```
-***
- Heroes:
- --batman world's greatest detective
-
- Options:
- --help Show help [boolean]
-
- .help()
------------------------------------------
-.help([option | boolean])
------------------------------------------
-.help([option, [description | boolean]])
------------------------------------------
-.help([option, [description, [boolean]]])
------------------------------------------
-
-Add an option (e.g. `--help`) and implicit command that displays the usage
-string and exits the process.
-
-If present, the `description` parameter customizes the description of
-the help option in the usage string.
-
-If a boolean argument is provided, it will enable or disable the use of an
-implicit command. The implicit command is enabled by default, but it can be
-disabled by passing `false`.
-
-Note that any multi-char aliases (e.g. `help`) used for the help option will
-also be used for the implicit command. If there are no multi-char aliases (e.g.
-`h`), then all single-char aliases will be used for the command.
-
-If invoked without parameters, `.help()` will use `--help` as the option and
-`help` as the implicit command to trigger help output.
-
-Example:
-
-```js
-var yargs = require("yargs")(['--help'])
- .usage("$0 -operand1 number -operand2 number -operation [add|subtract]")
- .help()
- .argv
-```
-
-Later on, `argv` can be retrieved with `yargs.argv`.
-
-.implies(x, y)
---------------
-
-Given the key `x` is set, it is required that the key `y` is set.
-
-Optionally `.implies()` can accept an object specifying multiple implications.
-
-.locale()
----------
-
-Return the locale that yargs is currently using.
-
-By default, yargs will auto-detect the operating system's locale so that
-yargs-generated help content will display in the user's language.
-
-To override this behavior with a static locale, pass the desired locale as a
-string to this method (see below).
-
-.locale(locale)
----------------
-
-Override the auto-detected locale from the user's operating system with a static
-locale. Note that the OS locale can be modified by setting/exporting the `LC_ALL`
-environment variable.
-
-```js
-var argv = require('yargs')
- .usage('./$0 - follow ye instructions true')
- .option('option', {
- alias: 'o',
- describe: "'tis a mighty fine option",
- demand: true
- })
- .command('run', "Arrr, ya best be knowin' what yer doin'")
- .example('$0 run foo', "shiver me timbers, here's an example for ye")
- .help('help')
- .wrap(70)
- .locale('pirate')
- .argv
-```
-
-***
-
-```shell
-./test.js - follow ye instructions true
-
-Choose yer command:
- run Arrr, ya best be knowin' what yer doin'
-
-Options for me hearties!
- --option, -o 'tis a mighty fine option [requi-yar-ed]
- --help Parlay this here code of conduct [boolean]
-
-Ex. marks the spot:
- test.js run foo shiver me timbers, here's an example for ye
-
-Ye be havin' to set the followin' argument land lubber: option
-```
-
-Locales currently supported:
-
-* **de:** German.
-* **en:** American English.
-* **es:** Spanish.
-* **fr:** French.
-* **hi:** Hindi.
-* **hu:** Hungarian.
-* **id:** Indonesian.
-* **it:** Italian.
-* **ja:** Japanese.
-* **ko:** Korean.
-* **nb:** Norwegian Bokmål.
-* **pirate:** American Pirate.
-* **pl:** Polish.
-* **pt:** Portuguese.
-* **pt_BR:** Brazilian Portuguese.
-* **ru:** Russian.
-* **th:** Thai.
-* **tr:** Turkish.
-* **zh_CN:** Chinese.
-
-To submit a new translation for yargs:
-
-1. use `./locales/en.json` as a starting point.
-2. submit a pull request with the new locale file.
-
-*The [Microsoft Terminology Search](http://www.microsoft.com/Language/en-US/Search.aspx) can be useful for finding the correct terminology in your locale.*
-
- .nargs(key, count)
------------
-
-The number of arguments that should be consumed after a key. This can be a
-useful hint to prevent parsing ambiguity. For example:
-
-```js
-var argv = require('yargs')
- .nargs('token', 1)
- .parse(['--token', '-my-token']);
-```
-
-parses as:
-
-`{ _: [], token: '-my-token', '$0': 'node test' }`
-
-Optionally `.nargs()` can take an object of `key`/`narg` pairs.
-
- .normalize(key)
----------------
-
-The key provided represents a path and should have `path.normalize()` applied.
-
- .number(key)
-------------
-
-Tell the parser to always interpret `key` as a number.
-
-If `key` is an array, all elements will be parsed as numbers.
-
-If the option is given on the command line without a value, `argv` will be
-populated with `undefined`.
-
-If the value given on the command line cannot be parsed as a number, `argv` will
-be populated with `NaN`.
-
-Note that decimals, hexadecimals, and scientific notation are all accepted.
-
-```js
-var argv = require('yargs')
- .number('n')
- .number(['width', 'height'])
- .argv
-```
-
-.option(key, [opt])
------------------
-.options(key, [opt])
-------------------
-
-This method can be used to make yargs aware of options that _could_
-exist. You can also pass an `opt` object which can hold further
-customization, like `.alias()`, `.demand()` etc. for that option.
-
-For example:
-
-````javascript
-var argv = require('yargs')
- .option('f', {
- alias: 'file',
- demand: true,
- default: '/etc/passwd',
- describe: 'x marks the spot',
- type: 'string'
- })
- .argv
-;
-````
-
-is the same as
-
-````javascript
-var argv = require('yargs')
- .alias('f', 'file')
- .demand('f')
- .default('f', '/etc/passwd')
- .describe('f', 'x marks the spot')
- .string('f')
- .argv
-;
-````
-
-Optionally `.options()` can take an object that maps keys to `opt` parameters.
-
-````javascript
-var argv = require('yargs')
- .options({
- 'f': {
- alias: 'file',
- demand: true,
- default: '/etc/passwd',
- describe: 'x marks the spot',
- type: 'string'
- }
- })
- .argv
-;
-````
-
-Valid `opt` keys include:
-
-- `alias`: string or array of strings, alias(es) for the canonical option key, see [`alias()`](#alias)
-- `array`: boolean, interpret option as an array, see [`array()`](#array)
-- `boolean`: boolean, interpret option as a boolean flag, see [`boolean()`](#boolean)
-- `choices`: value or array of values, limit valid option arguments to a predefined set, see [`choices()`](#choices)
-- `coerce`: function, coerce or transform parsed command line values into another value, see [`coerce()`](#coerce)
-- `config`: boolean, interpret option as a path to a JSON config file, see [`config()`](#config)
-- `configParser`: function, provide a custom config parsing function, see [`config()`](#config)
-- `count`: boolean, interpret option as a count of boolean flags, see [`count()`](#count)
-- `default`: value, set a default value for the option, see [`default()`](#default)
-- `defaultDescription`: string, use this description for the default value in help content, see [`default()`](#default)
-- `demand`/`require`/`required`: boolean or string, demand the option be given, with optional error message, see [`demand()`](#demand)
-- `desc`/`describe`/`description`: string, the option description for help content, see [`describe()`](#describe)
-- `global`: boolean, indicate that this key should not be [reset](#reset) when a command is invoked, see [`global()`](#global)
-- `group`: string, when displaying usage instructions place the option under an alternative group heading, see [`group()`](#group)
-- `nargs`: number, specify how many arguments should be consumed for the option, see [`nargs()`](#nargs)
-- `normalize`: boolean, apply `path.normalize()` to the option, see [`normalize()`](#normalize)
-- `number`: boolean, interpret option as a number, [`number()`](#number)
-- `requiresArg`: boolean, require the option be specified with a value, see [`requiresArg()`](#requiresArg)
-- `skipValidation`: boolean, skips validation if the option is present, see [`skipValidation()`](#skipValidation)
-- `string`: boolean, interpret option as a string, see [`string()`](#string)
-- `type`: one of the following strings
- - `'array'`: synonymous for `array: true`, see [`array()`](#array)
- - `'boolean'`: synonymous for `boolean: true`, see [`boolean()`](#boolean)
- - `'count'`: synonymous for `count: true`, see [`count()`](#count)
- - `'number'`: synonymous for `number: true`, see [`number()`](#number)
- - `'string'`: synonymous for `string: true`, see [`string()`](#string)
-
-.parse(args, [context], [parseCallback])
-------------
-
-Parse `args` instead of `process.argv`. Returns the `argv` object.
-`args` may either be a pre-processed argv array, or a raw argument string.
-
-A `context` object can optionally be given as the second argument to `parse()`, providing a
-useful mechanism for passing state information to commands:
-
-```js
-const parser = yargs
- .command('lunch-train ', 'start lunch train', function () {}, function (argv) {
- console.log(argv.restaurant, argv.time)
- })
- .parse("lunch-train rudy's", {time: '12:15'})
-```
-
-A `parseCallback` can also be provided to `.parse()`. If a callback is given, it will be invoked with three arguments:
-
-1. `err`: populated if any validation errors raised while parsing.
-2. `argv`: the parsed argv object.
-3. `output`: any text that would have been output to the terminal, had a
- callback not been provided.
-
-```js
-// providing the `fn` argument to `parse()` runs yargs in headless mode, this
-// makes it easy to use yargs in contexts other than the CLI, e.g., writing
-// a chat-bot.
-const parser = yargs
- .command('lunch-train ', 'start lunch train', function () {}, function (argv) {
- api.scheduleLunch(argv.restaurant, moment(argv.time))
- })
- .help()
-
-parser.parse(bot.userText, function (err, argv, output) {
- if (output) bot.respond(output)
-})
-```
-
-***Note:*** Providing a callback to `parse()` disables the [`exitProcess` setting](#exitprocess) until after the callback is invoked.
-
-.pkgConf(key, [cwd])
-------------
-
-Similar to [`config()`](#config), indicates that yargs should interpret the object from the specified key in package.json
-as a configuration object.
-
-`cwd` can optionally be provided, the package.json will be read
-from this location.
-
-.recommendCommands()
----------------------------
-
-Should yargs provide suggestions regarding similar commands if no matching
-command is found?
-
-.require(key, [msg | boolean])
-------------------------------
-.required(key, [msg | boolean])
-------------------------------
-
-An alias for [`demand()`](#demand). See docs there.
-
- .requiresArg(key)
------------------
-
-Specifies either a single option key (string), or an array of options that
-must be followed by option values. If any option value is missing, show the
-usage information and exit.
-
-The default behavior is to set the value of any key not followed by an
-option value to `true`.
-
- .reset()
---------
-
-Reset the argument object built up so far. This is useful for
-creating nested command line interfaces. Use [global](#global)
-to specify keys that should not be reset.
-
-```js
-var yargs = require('yargs')
- .usage('$0 command')
- .command('hello', 'hello command')
- .command('world', 'world command')
- .demand(1, 'must provide a valid command'),
- argv = yargs.argv,
- command = argv._[0];
-
-if (command === 'hello') {
- yargs.reset()
- .usage('$0 hello')
- .help('h')
- .example('$0 hello', 'print the hello message!')
- .argv
-
- console.log('hello!');
-} else if (command === 'world'){
- yargs.reset()
- .usage('$0 world')
- .help('h')
- .example('$0 world', 'print the world message!')
- .argv
-
- console.log('world!');
-} else {
- yargs.showHelp();
-}
-```
-
-.showCompletionScript()
-----------------------
-
-Generate a bash completion script. Users of your application can install this
-script in their `.bashrc`, and yargs will provide completion shortcuts for
-commands and options.
-
-.showHelp(consoleLevel='error')
----------------------------
-
-Print the usage data using the [`console`](https://nodejs.org/api/console.html) function `consoleLevel` for printing.
-
-Example:
-
-```js
-var yargs = require("yargs")
- .usage("$0 -operand1 number -operand2 number -operation [add|subtract]");
-yargs.showHelp(); //prints to stderr using console.error()
-```
-
-Or, to print the usage data to `stdout` instead, you can specify the use of `console.log`:
-
-```js
-yargs.showHelp("log"); //prints to stdout using console.log()
-```
-
-Later on, `argv` can be retrieved with `yargs.argv`.
-
-.showHelpOnFail(enable, [message])
-----------------------------------
-
-By default, yargs outputs a usage string if any error is detected. Use the
-`.showHelpOnFail()` method to customize this behavior. If `enable` is `false`,
-the usage string is not output. If the `message` parameter is present, this
-message is output after the error message.
-
-line_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Count the lines in a file.\nUsage: $0 -f ')
- .demand('f')
- .alias('f', 'file')
- .describe('f', 'Load a file')
- .string('f')
- .showHelpOnFail(false, 'Specify --help for available options')
- .help('help')
- .argv;
-
-// etc.
-````
-
-***
-
-```
-$ node line_count.js
-Missing argument value: f
-
-Specify --help for available options
-```
-
- .skipValidation(key)
------------------
-
-Specifies either a single option key (string), or an array of options.
-If any of the options is present, yargs validation is skipped.
-
-.strict()
----------
-
-Any command-line argument given that is not demanded, or does not have a
-corresponding description, will be reported as an error.
-
- .string(key)
-------------
-
-Tell the parser logic not to interpret `key` as a number or boolean.
-This can be useful if you need to preserve leading zeros in an input.
-
-If `key` is an array, interpret all the elements as strings.
-
-`.string('_')` will result in non-hyphenated arguments being interpreted as strings,
-regardless of whether they resemble numbers.
-
-.updateLocale(obj)
-------------------
-.updateStrings(obj)
-------------------
-
-Override the default strings used by yargs with the key/value
-pairs provided in `obj`:
-
-```js
-var argv = require('yargs')
- .command('run', 'the run command')
- .help('help')
- .updateStrings({
- 'Commands:': 'My Commands -->\n'
- })
- .wrap(null)
- .argv
-```
-
-***
-
-```shell
-My Commands -->
-
- run the run command
-
-Options:
- --help Show help [boolean]
-```
-
-If you explicitly specify a `locale()`, you should do so *before* calling
-`updateStrings()`.
-
-.usage(message, [opts])
----------------------
-
-Set a usage message to show which commands to use. Inside `message`, the string
-`$0` will get interpolated to the current script name or node command for the
-present script similar to how `$0` works in bash or perl.
-
-`opts` is optional and acts like calling `.options(opts)`.
-
- .version([option], [description], [version])
-----------------------------------------
-
-Add an option (e.g. `--version`) that displays the version number (given by the
-`version` parameter) and exits the process.
-
-If no arguments are passed to `version` (`.version()`), yargs will parse the `package.json`
-of your module and use its `version` value. The default value of `option` is `--version`.
-
-You can provide a `function` for version, rather than a string.
-This is useful if you want to use a version stored in a location other than package.json:
-
-```js
-var argv = require('yargs')
- .version(function() {
- return require('../lib/version').version;
- })
- .argv;
-```
-
- .wrap(columns)
---------------
-
-Format usage output to wrap at `columns` many columns.
-
-By default wrap will be set to `Math.min(80, windowWidth)`. Use `.wrap(null)` to
-specify no column limit (no right-align). Use `.wrap(yargs.terminalWidth())` to
-maximize the width of yargs' usage instructions.
-
-parsing tricks
-==============
-
-stop parsing
-------------
-
-Use `--` to stop parsing flags and stuff the remainder into `argv._`.
-
- $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4
- { _: [ '-c', '3', '-d', '4' ],
- a: 1,
- b: 2,
- '$0': 'examples/reflect.js' }
-
-negate fields
--------------
-
-If you want to explicitly set a field to false instead of just leaving it
-undefined or to override a default you can do `--no-key`.
-
- $ node examples/reflect.js -a --no-b
- { _: [], a: true, b: false, '$0': 'examples/reflect.js' }
-
-numbers
--------
-
-Every argument that looks like a number (`!isNaN(Number(arg))`) is converted to
-one. This way you can just `net.createConnection(argv.port)` and you can add
-numbers out of `argv` with `+` without having that mean concatenation,
-which is super frustrating.
-
-duplicates
-----------
-
-If you specify a flag multiple times it will get turned into an array containing
-all the values in order.
-
- $ node examples/reflect.js -x 5 -x 8 -x 0
- { _: [], x: [ 5, 8, 0 ], '$0': 'examples/reflect.js' }
-
-dot notation
-------------
-
-When you use dots (`.`s) in argument names, an implicit object path is assumed.
-This lets you organize arguments into nested objects.
-
- $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5
- { _: [],
- foo: { bar: { baz: 33 }, quux: 5 },
- '$0': 'examples/reflect.js' }
-
-short numbers
--------------
-
-Short numeric `-n5` style arguments work too:
-
- $ node examples/reflect.js -n123 -m456
- { _: [], n: 123, m: 456, '$0': 'examples/reflect.js' }
-
-installation
-============
-
-With [npm](https://github.com/npm/npm), just do:
-
- npm install yargs
-
-or clone this project on github:
-
- git clone http://github.com/yargs/yargs.git
-
-To run the tests with npm, just do:
-
- npm test
-
-configuration
-=============
-
-Using the `yargs` stanza in your `package.json` you can turn on and off
-some of yargs' parsing features:
-
-```json
-{
- "yargs": {
- "short-option-groups": true,
- "camel-case-expansion": true,
- "dot-notation": true,
- "parse-numbers": true,
- "boolean-negation": true
- }
-}
-```
-
-See the [yargs-parser](https://github.com/yargs/yargs-parser#configuration) module
-for detailed documentation of this feature.
-
-inspired by
-===========
-
-This module is loosely inspired by Perl's
-[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).
-
-[travis-url]: https://travis-ci.org/yargs/yargs
-[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg
-[coveralls-url]: https://coveralls.io/github/yargs/yargs
-[coveralls-image]: https://img.shields.io/coveralls/yargs/yargs.svg
-[npm-url]: https://www.npmjs.com/package/yargs
-[npm-image]: https://img.shields.io/npm/v/yargs.svg
-[windows-url]: https://ci.appveyor.com/project/bcoe/yargs-ljwvf
-[windows-image]: https://img.shields.io/appveyor/ci/bcoe/yargs-ljwvf/master.svg?label=Windows%20Tests
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
-[standard-url]: http://standardjs.com/
-[standard-version-image]: https://img.shields.io/badge/release-standard%20version-brightgreen.svg
-[standard-version-url]: https://github.com/conventional-changelog/standard-version
-[gitter-image]: https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000
-[gitter-url]: https://gitter.im/yargs/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link
diff --git a/node_modules/browser-sync/node_modules/yargs/completion.sh.hbs b/node_modules/browser-sync/node_modules/yargs/completion.sh.hbs
deleted file mode 100644
index 14445b8..0000000
--- a/node_modules/browser-sync/node_modules/yargs/completion.sh.hbs
+++ /dev/null
@@ -1,28 +0,0 @@
-###-begin-{{app_name}}-completions-###
-#
-# yargs command completion script
-#
-# Installation: {{app_path}} completion >> ~/.bashrc
-# or {{app_path}} completion >> ~/.bash_profile on OSX.
-#
-_yargs_completions()
-{
- local cur_word args type_list
-
- cur_word="${COMP_WORDS[COMP_CWORD]}"
- args=("${COMP_WORDS[@]}")
-
- # ask yargs to generate completions.
- type_list=$({{app_path}} --get-yargs-completions "${args[@]}")
-
- COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) )
-
- # if no match was found, fall back to filename completion
- if [ ${#COMPREPLY[@]} -eq 0 ]; then
- COMPREPLY=( $(compgen -f -- "${cur_word}" ) )
- fi
-
- return 0
-}
-complete -F _yargs_completions {{app_name}}
-###-end-{{app_name}}-completions-###
diff --git a/node_modules/browser-sync/node_modules/yargs/index.js b/node_modules/browser-sync/node_modules/yargs/index.js
deleted file mode 100644
index 37450cf..0000000
--- a/node_modules/browser-sync/node_modules/yargs/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// classic singleton yargs API, to use yargs
-// without running as a singleton do:
-// require('yargs/yargs')(process.argv.slice(2))
-const yargs = require('./yargs')
-
-Argv(process.argv.slice(2))
-
-module.exports = Argv
-
-function Argv (processArgs, cwd) {
- const argv = yargs(processArgs, cwd, require)
- singletonify(argv)
- return argv
-}
-
-/* Hack an instance of Argv with process.argv into Argv
- so people can do
- require('yargs')(['--beeble=1','-z','zizzle']).argv
- to parse a list of args and
- require('yargs').argv
- to get a parsed version of process.argv.
-*/
-function singletonify (inst) {
- Object.keys(inst).forEach(function (key) {
- if (key === 'argv') {
- Argv.__defineGetter__(key, inst.__lookupGetter__(key))
- } else {
- Argv[key] = typeof inst[key] === 'function' ? inst[key].bind(inst) : inst[key]
- }
- })
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/assign.js b/node_modules/browser-sync/node_modules/yargs/lib/assign.js
deleted file mode 100644
index 7d5a3ce..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/assign.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// lazy Object.assign logic that only works for merging
-// two objects; eventually we should replace this with Object.assign.
-module.exports = function assign (defaults, configuration) {
- var o = {}
- configuration = configuration || {}
-
- Object.keys(defaults).forEach(function (k) {
- o[k] = defaults[k]
- })
- Object.keys(configuration).forEach(function (k) {
- o[k] = configuration[k]
- })
-
- return o
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/command.js b/node_modules/browser-sync/node_modules/yargs/lib/command.js
deleted file mode 100644
index e73340d..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/command.js
+++ /dev/null
@@ -1,250 +0,0 @@
-const path = require('path')
-const inspect = require('util').inspect
-const camelCase = require('camelcase')
-
-// handles parsing positional arguments,
-// and populating argv with said positional
-// arguments.
-module.exports = function (yargs, usage, validation) {
- const self = {}
-
- var handlers = {}
- var aliasMap = {}
- self.addHandler = function (cmd, description, builder, handler) {
- var aliases = []
- if (Array.isArray(cmd)) {
- aliases = cmd.slice(1)
- cmd = cmd[0]
- } else if (typeof cmd === 'object') {
- var command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd)
- if (cmd.aliases) command = [].concat(command).concat(cmd.aliases)
- self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler)
- return
- }
-
- // allow a module to be provided instead of separate builder and handler
- if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') {
- self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler)
- return
- }
-
- var parsedCommand = parseCommand(cmd)
- aliases = aliases.map(function (alias) {
- alias = parseCommand(alias).cmd // remove positional args
- aliasMap[alias] = parsedCommand.cmd
- return alias
- })
-
- if (description !== false) {
- usage.command(cmd, description, aliases)
- }
-
- handlers[parsedCommand.cmd] = {
- original: cmd,
- handler: handler,
- builder: builder || {},
- demanded: parsedCommand.demanded,
- optional: parsedCommand.optional
- }
- }
-
- self.addDirectory = function (dir, context, req, callerFile, opts) {
- opts = opts || {}
- // disable recursion to support nested directories of subcommands
- if (typeof opts.recurse !== 'boolean') opts.recurse = false
- // exclude 'json', 'coffee' from require-directory defaults
- if (!Array.isArray(opts.extensions)) opts.extensions = ['js']
- // allow consumer to define their own visitor function
- const parentVisit = typeof opts.visit === 'function' ? opts.visit : function (o) { return o }
- // call addHandler via visitor function
- opts.visit = function (obj, joined, filename) {
- const visited = parentVisit(obj, joined, filename)
- // allow consumer to skip modules with their own visitor
- if (visited) {
- // check for cyclic reference
- // each command file path should only be seen once per execution
- if (~context.files.indexOf(joined)) return visited
- // keep track of visited files in context.files
- context.files.push(joined)
- self.addHandler(visited)
- }
- return visited
- }
- require('require-directory')({ require: req, filename: callerFile }, dir, opts)
- }
-
- // lookup module object from require()d command and derive name
- // if module was not require()d and no name given, throw error
- function moduleName (obj) {
- const mod = require('which-module')(obj)
- if (!mod) throw new Error('No command name given for module: ' + inspect(obj))
- return commandFromFilename(mod.filename)
- }
-
- // derive command name from filename
- function commandFromFilename (filename) {
- return path.basename(filename, path.extname(filename))
- }
-
- function extractDesc (obj) {
- for (var keys = ['describe', 'description', 'desc'], i = 0, l = keys.length, test; i < l; i++) {
- test = obj[keys[i]]
- if (typeof test === 'string' || typeof test === 'boolean') return test
- }
- return false
- }
-
- function parseCommand (cmd) {
- var extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ')
- var splitCommand = extraSpacesStrippedCommand.split(/\s/)
- var bregex = /\.*[\][<>]/g
- var parsedCommand = {
- cmd: (splitCommand.shift()).replace(bregex, ''),
- demanded: [],
- optional: []
- }
- splitCommand.forEach(function (cmd, i) {
- var variadic = false
- if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) variadic = true
- if (/^\[/.test(cmd)) {
- parsedCommand.optional.push({
- cmd: cmd.replace(bregex, ''),
- variadic: variadic
- })
- } else {
- parsedCommand.demanded.push({
- cmd: cmd.replace(bregex, ''),
- variadic: variadic
- })
- }
- })
- return parsedCommand
- }
-
- self.getCommands = function () {
- return Object.keys(handlers).concat(Object.keys(aliasMap))
- }
-
- self.getCommandHandlers = function () {
- return handlers
- }
-
- self.runCommand = function (command, yargs, parsed) {
- var argv = parsed.argv
- var commandHandler = handlers[command] || handlers[aliasMap[command]]
- var innerArgv = argv
- var currentContext = yargs.getContext()
- var numFiles = currentContext.files.length
- var parentCommands = currentContext.commands.slice()
- currentContext.commands.push(command)
- if (typeof commandHandler.builder === 'function') {
- // a function can be provided, which builds
- // up a yargs chain and possibly returns it.
- innerArgv = commandHandler.builder(yargs.reset(parsed.aliases))
- // if the builder function did not yet parse argv with reset yargs
- // and did not explicitly set a usage() string, then apply the
- // original command string as usage() for consistent behavior with
- // options object below
- if (yargs.parsed === false) {
- if (typeof yargs.getUsageInstance().getUsage() === 'undefined') {
- yargs.usage('$0 ' + (parentCommands.length ? parentCommands.join(' ') + ' ' : '') + commandHandler.original)
- }
- innerArgv = innerArgv ? innerArgv.argv : yargs.argv
- } else {
- innerArgv = yargs.parsed.argv
- }
- } else if (typeof commandHandler.builder === 'object') {
- // as a short hand, an object can instead be provided, specifying
- // the options that a command takes.
- innerArgv = yargs.reset(parsed.aliases)
- innerArgv.usage('$0 ' + (parentCommands.length ? parentCommands.join(' ') + ' ' : '') + commandHandler.original)
- Object.keys(commandHandler.builder).forEach(function (key) {
- innerArgv.option(key, commandHandler.builder[key])
- })
- innerArgv = innerArgv.argv
- }
- if (!yargs._hasOutput()) populatePositional(commandHandler, innerArgv, currentContext, yargs)
-
- if (commandHandler.handler && !yargs._hasOutput()) {
- commandHandler.handler(innerArgv)
- }
- currentContext.commands.pop()
- numFiles = currentContext.files.length - numFiles
- if (numFiles > 0) currentContext.files.splice(numFiles * -1, numFiles)
- return innerArgv
- }
-
- function populatePositional (commandHandler, argv, context, yargs) {
- argv._ = argv._.slice(context.commands.length) // nuke the current commands
- var demanded = commandHandler.demanded.slice(0)
- var optional = commandHandler.optional.slice(0)
-
- validation.positionalCount(demanded.length, argv._.length)
-
- while (demanded.length) {
- var demand = demanded.shift()
- if (demand.variadic) argv[demand.cmd] = []
- if (!argv._.length) break
- if (demand.variadic) argv[demand.cmd] = argv._.splice(0)
- else argv[demand.cmd] = argv._.shift()
- postProcessPositional(yargs, argv, demand.cmd)
- addCamelCaseExpansions(argv, demand.cmd)
- }
-
- while (optional.length) {
- var maybe = optional.shift()
- if (maybe.variadic) argv[maybe.cmd] = []
- if (!argv._.length) break
- if (maybe.variadic) argv[maybe.cmd] = argv._.splice(0)
- else argv[maybe.cmd] = argv._.shift()
- postProcessPositional(yargs, argv, maybe.cmd)
- addCamelCaseExpansions(argv, maybe.cmd)
- }
-
- argv._ = context.commands.concat(argv._)
- }
-
- // TODO move positional arg logic to yargs-parser and remove this duplication
- function postProcessPositional (yargs, argv, key) {
- var coerce = yargs.getOptions().coerce[key]
- if (typeof coerce === 'function') {
- try {
- argv[key] = coerce(argv[key])
- } catch (err) {
- yargs.getUsageInstance().fail(err.message, err)
- }
- }
- }
-
- function addCamelCaseExpansions (argv, option) {
- if (/-/.test(option)) {
- const cc = camelCase(option)
- if (typeof argv[option] === 'object') argv[cc] = argv[option].slice(0)
- else argv[cc] = argv[option]
- }
- }
-
- self.reset = function () {
- handlers = {}
- aliasMap = {}
- return self
- }
-
- // used by yargs.parse() to freeze
- // the state of commands such that
- // we can apply .parse() multiple times
- // with the same yargs instance.
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.handlers = handlers
- frozen.aliasMap = aliasMap
- }
- self.unfreeze = function () {
- handlers = frozen.handlers
- aliasMap = frozen.aliasMap
- frozen = undefined
- }
-
- return self
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/completion.js b/node_modules/browser-sync/node_modules/yargs/lib/completion.js
deleted file mode 100644
index 93a936c..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/completion.js
+++ /dev/null
@@ -1,99 +0,0 @@
-const fs = require('fs')
-const path = require('path')
-
-// add bash completions to your
-// yargs-powered applications.
-module.exports = function (yargs, usage, command) {
- const self = {
- completionKey: 'get-yargs-completions'
- }
-
- // get a list of completion commands.
- // 'args' is the array of strings from the line to be completed
- self.getCompletion = function (args, done) {
- const completions = []
- const current = args.length ? args[args.length - 1] : ''
- const argv = yargs.parse(args, true)
- const aliases = yargs.parsed.aliases
-
- // a custom completion function can be provided
- // to completion().
- if (completionFunction) {
- if (completionFunction.length < 3) {
- var result = completionFunction(current, argv)
-
- // promise based completion function.
- if (typeof result.then === 'function') {
- return result.then(function (list) {
- process.nextTick(function () { done(list) })
- }).catch(function (err) {
- process.nextTick(function () { throw err })
- })
- }
-
- // synchronous completion function.
- return done(result)
- } else {
- // asynchronous completion function
- return completionFunction(current, argv, function (completions) {
- done(completions)
- })
- }
- }
-
- var handlers = command.getCommandHandlers()
- for (var i = 0, ii = args.length; i < ii; ++i) {
- if (handlers[args[i]] && handlers[args[i]].builder) {
- return handlers[args[i]].builder(yargs.reset()).argv
- }
- }
-
- if (!current.match(/^-/)) {
- usage.getCommands().forEach(function (command) {
- if (args.indexOf(command[0]) === -1) {
- completions.push(command[0])
- }
- })
- }
-
- if (current.match(/^-/)) {
- Object.keys(yargs.getOptions().key).forEach(function (key) {
- // If the key and its aliases aren't in 'args', add the key to 'completions'
- var keyAndAliases = [key].concat(aliases[key] || [])
- var notInArgs = keyAndAliases.every(function (val) {
- return args.indexOf('--' + val) === -1
- })
- if (notInArgs) {
- completions.push('--' + key)
- }
- })
- }
-
- done(completions)
- }
-
- // generate the completion script to add to your .bashrc.
- self.generateCompletionScript = function ($0) {
- var script = fs.readFileSync(
- path.resolve(__dirname, '../completion.sh.hbs'),
- 'utf-8'
- )
- var name = path.basename($0)
-
- // add ./to applications not yet installed as bin.
- if ($0.match(/\.js$/)) $0 = './' + $0
-
- script = script.replace(/{{app_name}}/g, name)
- return script.replace(/{{app_path}}/g, $0)
- }
-
- // register a function to perform your own custom
- // completions., this function can be either
- // synchrnous or asynchronous.
- var completionFunction = null
- self.registerFunction = function (fn) {
- completionFunction = fn
- }
-
- return self
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/levenshtein.js b/node_modules/browser-sync/node_modules/yargs/lib/levenshtein.js
deleted file mode 100644
index 6ec216f..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/levenshtein.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-Copyright (c) 2011 Andrei Mackenzie
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-// levenshtein distance algorithm, pulled from Andrei Mackenzie's MIT licensed.
-// gist, which can be found here: https://gist.github.com/andrei-m/982927
-
-// Compute the edit distance between the two given strings
-module.exports = function (a, b) {
- if (a.length === 0) return b.length
- if (b.length === 0) return a.length
-
- var matrix = []
-
- // increment along the first column of each row
- var i
- for (i = 0; i <= b.length; i++) {
- matrix[i] = [i]
- }
-
- // increment each column in the first row
- var j
- for (j = 0; j <= a.length; j++) {
- matrix[0][j] = j
- }
-
- // Fill in the rest of the matrix
- for (i = 1; i <= b.length; i++) {
- for (j = 1; j <= a.length; j++) {
- if (b.charAt(i - 1) === a.charAt(j - 1)) {
- matrix[i][j] = matrix[i - 1][j - 1]
- } else {
- matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
- Math.min(matrix[i][j - 1] + 1, // insertion
- matrix[i - 1][j] + 1)) // deletion
- }
- }
- }
-
- return matrix[b.length][a.length]
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/obj-filter.js b/node_modules/browser-sync/node_modules/yargs/lib/obj-filter.js
deleted file mode 100644
index 42cb996..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/obj-filter.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = function (original, filter) {
- const obj = {}
- filter = filter || function (k, v) { return true }
- Object.keys(original || {}).forEach(function (key) {
- if (filter(key, original[key])) {
- obj[key] = original[key]
- }
- })
- return obj
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/usage.js b/node_modules/browser-sync/node_modules/yargs/lib/usage.js
deleted file mode 100644
index 7f62275..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/usage.js
+++ /dev/null
@@ -1,454 +0,0 @@
-// this file handles outputting usage instructions,
-// failures, etc. keeps logging in one place.
-const stringWidth = require('string-width')
-const objFilter = require('./obj-filter')
-const setBlocking = require('set-blocking')
-
-module.exports = function (yargs, y18n) {
- const __ = y18n.__
- const self = {}
-
- // methods for ouputting/building failure message.
- var fails = []
- self.failFn = function (f) {
- fails.push(f)
- }
-
- var failMessage = null
- var showHelpOnFail = true
- self.showHelpOnFail = function (enabled, message) {
- if (typeof enabled === 'string') {
- message = enabled
- enabled = true
- } else if (typeof enabled === 'undefined') {
- enabled = true
- }
- failMessage = message
- showHelpOnFail = enabled
- return self
- }
-
- var failureOutput = false
- self.fail = function (msg, err) {
- const logger = yargs._getLoggerInstance()
-
- if (fails.length) {
- for (var i = fails.length - 1; i >= 0; --i) {
- fails[i](msg, err, self)
- }
- } else {
- if (yargs.getExitProcess()) setBlocking(true)
-
- // don't output failure message more than once
- if (!failureOutput) {
- failureOutput = true
- if (showHelpOnFail) yargs.showHelp('error')
- if (msg) logger.error(msg)
- if (failMessage) {
- if (msg) logger.error('')
- logger.error(failMessage)
- }
- }
-
- err = err || new Error(msg)
- if (yargs.getExitProcess()) {
- return yargs.exit(1)
- } else if (yargs._hasParseCallback()) {
- return yargs.exit(1, err)
- } else {
- throw err
- }
- }
- }
-
- // methods for ouputting/building help (usage) message.
- var usage
- self.usage = function (msg) {
- usage = msg
- }
- self.getUsage = function () {
- return usage
- }
-
- var examples = []
- self.example = function (cmd, description) {
- examples.push([cmd, description || ''])
- }
-
- var commands = []
- self.command = function (cmd, description, aliases) {
- commands.push([cmd, description || '', aliases])
- }
- self.getCommands = function () {
- return commands
- }
-
- var descriptions = {}
- self.describe = function (key, desc) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.describe(k, key[k])
- })
- } else {
- descriptions[key] = desc
- }
- }
- self.getDescriptions = function () {
- return descriptions
- }
-
- var epilog
- self.epilog = function (msg) {
- epilog = msg
- }
-
- var wrapSet = false
- var wrap
- self.wrap = function (cols) {
- wrapSet = true
- wrap = cols
- }
-
- function getWrap () {
- // lazily call windowWidth() because it's very expensive,
- // and only needs to be called if the user wants to show usage/help
- if (!wrapSet) {
- wrap = windowWidth()
- wrapSet = true
- }
- return wrap
- }
-
- var deferY18nLookupPrefix = '__yargsString__:'
- self.deferY18nLookup = function (str) {
- return deferY18nLookupPrefix + str
- }
-
- var defaultGroup = 'Options:'
- self.help = function () {
- normalizeAliases()
-
- var demanded = yargs.getDemanded()
- var groups = yargs.getGroups()
- var options = yargs.getOptions()
- var keys = Object.keys(
- Object.keys(descriptions)
- .concat(Object.keys(demanded))
- .concat(Object.keys(options.default))
- .reduce(function (acc, key) {
- if (key !== '_') acc[key] = true
- return acc
- }, {})
- )
- var theWrap = getWrap()
- var ui = require('cliui')({
- width: theWrap,
- wrap: !!theWrap
- })
-
- // the usage string.
- if (usage) {
- var u = usage.replace(/\$0/g, yargs.$0)
- ui.div(u + '\n')
- }
-
- // your application's commands, i.e., non-option
- // arguments populated in '_'.
- if (commands.length) {
- ui.div(__('Commands:'))
-
- commands.forEach(function (command) {
- ui.span(
- {text: command[0], padding: [0, 2, 0, 2], width: maxWidth(commands, theWrap) + 4},
- {text: command[1]}
- )
- if (command[2] && command[2].length) {
- ui.div({text: '[' + __('aliases:') + ' ' + command[2].join(', ') + ']', padding: [0, 0, 0, 2], align: 'right'})
- } else {
- ui.div()
- }
- })
-
- ui.div()
- }
-
- // perform some cleanup on the keys array, making it
- // only include top-level keys not their aliases.
- var aliasKeys = (Object.keys(options.alias) || [])
- .concat(Object.keys(yargs.parsed.newAliases) || [])
-
- keys = keys.filter(function (key) {
- return !yargs.parsed.newAliases[key] && aliasKeys.every(function (alias) {
- return (options.alias[alias] || []).indexOf(key) === -1
- })
- })
-
- // populate 'Options:' group with any keys that have not
- // explicitly had a group set.
- if (!groups[defaultGroup]) groups[defaultGroup] = []
- addUngroupedKeys(keys, options.alias, groups)
-
- // display 'Options:' table along with any custom tables:
- Object.keys(groups).forEach(function (groupName) {
- if (!groups[groupName].length) return
-
- ui.div(__(groupName))
-
- // if we've grouped the key 'f', but 'f' aliases 'foobar',
- // normalizedKeys should contain only 'foobar'.
- var normalizedKeys = groups[groupName].map(function (key) {
- if (~aliasKeys.indexOf(key)) return key
- for (var i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {
- if (~(options.alias[aliasKey] || []).indexOf(key)) return aliasKey
- }
- return key
- })
-
- // actually generate the switches string --foo, -f, --bar.
- var switches = normalizedKeys.reduce(function (acc, key) {
- acc[key] = [ key ].concat(options.alias[key] || [])
- .map(function (sw) {
- return (sw.length > 1 ? '--' : '-') + sw
- })
- .join(', ')
-
- return acc
- }, {})
-
- normalizedKeys.forEach(function (key) {
- var kswitch = switches[key]
- var desc = descriptions[key] || ''
- var type = null
-
- if (~desc.lastIndexOf(deferY18nLookupPrefix)) desc = __(desc.substring(deferY18nLookupPrefix.length))
-
- if (~options.boolean.indexOf(key)) type = '[' + __('boolean') + ']'
- if (~options.count.indexOf(key)) type = '[' + __('count') + ']'
- if (~options.string.indexOf(key)) type = '[' + __('string') + ']'
- if (~options.normalize.indexOf(key)) type = '[' + __('string') + ']'
- if (~options.array.indexOf(key)) type = '[' + __('array') + ']'
- if (~options.number.indexOf(key)) type = '[' + __('number') + ']'
-
- var extra = [
- type,
- demanded[key] ? '[' + __('required') + ']' : null,
- options.choices && options.choices[key] ? '[' + __('choices:') + ' ' +
- self.stringifiedValues(options.choices[key]) + ']' : null,
- defaultString(options.default[key], options.defaultDescription[key])
- ].filter(Boolean).join(' ')
-
- ui.span(
- {text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4},
- desc
- )
-
- if (extra) ui.div({text: extra, padding: [0, 0, 0, 2], align: 'right'})
- else ui.div()
- })
-
- ui.div()
- })
-
- // describe some common use-cases for your application.
- if (examples.length) {
- ui.div(__('Examples:'))
-
- examples.forEach(function (example) {
- example[0] = example[0].replace(/\$0/g, yargs.$0)
- })
-
- examples.forEach(function (example) {
- ui.div(
- {text: example[0], padding: [0, 2, 0, 2], width: maxWidth(examples, theWrap) + 4},
- example[1]
- )
- })
-
- ui.div()
- }
-
- // the usage string.
- if (epilog) {
- var e = epilog.replace(/\$0/g, yargs.$0)
- ui.div(e + '\n')
- }
-
- return ui.toString()
- }
-
- // return the maximum width of a string
- // in the left-hand column of a table.
- function maxWidth (table, theWrap) {
- var width = 0
-
- // table might be of the form [leftColumn],
- // or {key: leftColumn}
- if (!Array.isArray(table)) {
- table = Object.keys(table).map(function (key) {
- return [table[key]]
- })
- }
-
- table.forEach(function (v) {
- width = Math.max(stringWidth(v[0]), width)
- })
-
- // if we've enabled 'wrap' we should limit
- // the max-width of the left-column.
- if (theWrap) width = Math.min(width, parseInt(theWrap * 0.5, 10))
-
- return width
- }
-
- // make sure any options set for aliases,
- // are copied to the keys being aliased.
- function normalizeAliases () {
- var demanded = yargs.getDemanded()
- var options = yargs.getOptions()
-
- ;(Object.keys(options.alias) || []).forEach(function (key) {
- options.alias[key].forEach(function (alias) {
- // copy descriptions.
- if (descriptions[alias]) self.describe(key, descriptions[alias])
- // copy demanded.
- if (demanded[alias]) yargs.demand(key, demanded[alias].msg)
- // type messages.
- if (~options.boolean.indexOf(alias)) yargs.boolean(key)
- if (~options.count.indexOf(alias)) yargs.count(key)
- if (~options.string.indexOf(alias)) yargs.string(key)
- if (~options.normalize.indexOf(alias)) yargs.normalize(key)
- if (~options.array.indexOf(alias)) yargs.array(key)
- if (~options.number.indexOf(alias)) yargs.number(key)
- })
- })
- }
-
- // given a set of keys, place any keys that are
- // ungrouped under the 'Options:' grouping.
- function addUngroupedKeys (keys, aliases, groups) {
- var groupedKeys = []
- var toCheck = null
- Object.keys(groups).forEach(function (group) {
- groupedKeys = groupedKeys.concat(groups[group])
- })
-
- keys.forEach(function (key) {
- toCheck = [key].concat(aliases[key])
- if (!toCheck.some(function (k) {
- return groupedKeys.indexOf(k) !== -1
- })) {
- groups[defaultGroup].push(key)
- }
- })
- return groupedKeys
- }
-
- self.showHelp = function (level) {
- const logger = yargs._getLoggerInstance()
- if (!level) level = 'error'
- var emit = typeof level === 'function' ? level : logger[level]
- emit(self.help())
- }
-
- self.functionDescription = function (fn) {
- var description = fn.name ? require('decamelize')(fn.name, '-') : __('generated-value')
- return ['(', description, ')'].join('')
- }
-
- self.stringifiedValues = function (values, separator) {
- var string = ''
- var sep = separator || ', '
- var array = [].concat(values)
-
- if (!values || !array.length) return string
-
- array.forEach(function (value) {
- if (string.length) string += sep
- string += JSON.stringify(value)
- })
-
- return string
- }
-
- // format the default-value-string displayed in
- // the right-hand column.
- function defaultString (value, defaultDescription) {
- var string = '[' + __('default:') + ' '
-
- if (value === undefined && !defaultDescription) return null
-
- if (defaultDescription) {
- string += defaultDescription
- } else {
- switch (typeof value) {
- case 'string':
- string += JSON.stringify(value)
- break
- case 'object':
- string += JSON.stringify(value)
- break
- default:
- string += value
- }
- }
-
- return string + ']'
- }
-
- // guess the width of the console window, max-width 80.
- function windowWidth () {
- const wsize = require('window-size')
- return wsize.width ? Math.min(80, wsize.width) : null
- }
-
- // logic for displaying application version.
- var version = null
- self.version = function (ver) {
- version = ver
- }
-
- self.showVersion = function () {
- const logger = yargs._getLoggerInstance()
- if (typeof version === 'function') logger.log(version())
- else logger.log(version)
- }
-
- self.reset = function (globalLookup) {
- // do not reset wrap here
- // do not reset fails here
- failMessage = null
- failureOutput = false
- usage = undefined
- epilog = undefined
- examples = []
- commands = []
- descriptions = objFilter(descriptions, function (k, v) {
- return globalLookup[k]
- })
- return self
- }
-
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.failMessage = failMessage
- frozen.failureOutput = failureOutput
- frozen.usage = usage
- frozen.epilog = epilog
- frozen.examples = examples
- frozen.commands = commands
- frozen.descriptions = descriptions
- }
- self.unfreeze = function () {
- failMessage = frozen.failMessage
- failureOutput = frozen.failureOutput
- usage = frozen.usage
- epilog = frozen.epilog
- examples = frozen.examples
- commands = frozen.commands
- descriptions = frozen.descriptions
- frozen = undefined
- }
-
- return self
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/lib/validation.js b/node_modules/browser-sync/node_modules/yargs/lib/validation.js
deleted file mode 100644
index 0851cb1..0000000
--- a/node_modules/browser-sync/node_modules/yargs/lib/validation.js
+++ /dev/null
@@ -1,318 +0,0 @@
-const objFilter = require('./obj-filter')
-
-// validation-type-stuff, missing params,
-// bad implications, custom checks.
-module.exports = function (yargs, usage, y18n) {
- const __ = y18n.__
- const __n = y18n.__n
- const self = {}
-
- // validate appropriate # of non-option
- // arguments were provided, i.e., '_'.
- self.nonOptionCount = function (argv) {
- const demanded = yargs.getDemanded()
- // don't count currently executing commands
- const _s = argv._.length - yargs.getContext().commands.length
-
- if (demanded._ && (_s < demanded._.count || _s > demanded._.max)) {
- if (demanded._.msg !== undefined) {
- usage.fail(demanded._.msg)
- } else if (_s < demanded._.count) {
- usage.fail(
- __('Not enough non-option arguments: got %s, need at least %s', _s, demanded._.count)
- )
- } else {
- usage.fail(
- __('Too many non-option arguments: got %s, maximum of %s', _s, demanded._.max)
- )
- }
- }
- }
-
- // validate the appropriate # of
- // positional arguments were provided:
- self.positionalCount = function (required, observed) {
- if (observed < required) {
- usage.fail(
- __('Not enough non-option arguments: got %s, need at least %s', observed, required)
- )
- }
- }
-
- // make sure that any args that require an
- // value (--foo=bar), have a value.
- self.missingArgumentValue = function (argv) {
- const defaultValues = [true, false, '']
- const options = yargs.getOptions()
-
- if (options.requiresArg.length > 0) {
- const missingRequiredArgs = []
-
- options.requiresArg.forEach(function (key) {
- const value = argv[key]
-
- // if a value is explicitly requested,
- // flag argument as missing if it does not
- // look like foo=bar was entered.
- if (~defaultValues.indexOf(value) ||
- (Array.isArray(value) && !value.length)) {
- missingRequiredArgs.push(key)
- }
- })
-
- if (missingRequiredArgs.length > 0) {
- usage.fail(__n(
- 'Missing argument value: %s',
- 'Missing argument values: %s',
- missingRequiredArgs.length,
- missingRequiredArgs.join(', ')
- ))
- }
- }
- }
-
- // make sure all the required arguments are present.
- self.requiredArguments = function (argv) {
- const demanded = yargs.getDemanded()
- var missing = null
-
- Object.keys(demanded).forEach(function (key) {
- if (!argv.hasOwnProperty(key)) {
- missing = missing || {}
- missing[key] = demanded[key]
- }
- })
-
- if (missing) {
- const customMsgs = []
- Object.keys(missing).forEach(function (key) {
- const msg = missing[key].msg
- if (msg && customMsgs.indexOf(msg) < 0) {
- customMsgs.push(msg)
- }
- })
-
- const customMsg = customMsgs.length ? '\n' + customMsgs.join('\n') : ''
-
- usage.fail(__n(
- 'Missing required argument: %s',
- 'Missing required arguments: %s',
- Object.keys(missing).length,
- Object.keys(missing).join(', ') + customMsg
- ))
- }
- }
-
- // check for unknown arguments (strict-mode).
- self.unknownArguments = function (argv, aliases) {
- const aliasLookup = {}
- const descriptions = usage.getDescriptions()
- const demanded = yargs.getDemanded()
- const commandKeys = yargs.getCommandInstance().getCommands()
- const unknown = []
- const currentContext = yargs.getContext()
-
- Object.keys(aliases).forEach(function (key) {
- aliases[key].forEach(function (alias) {
- aliasLookup[alias] = key
- })
- })
-
- Object.keys(argv).forEach(function (key) {
- if (key !== '$0' && key !== '_' &&
- !descriptions.hasOwnProperty(key) &&
- !demanded.hasOwnProperty(key) &&
- !aliasLookup.hasOwnProperty(key)) {
- unknown.push(key)
- }
- })
-
- if (commandKeys.length > 0) {
- argv._.slice(currentContext.commands.length).forEach(function (key) {
- if (commandKeys.indexOf(key) === -1) {
- unknown.push(key)
- }
- })
- }
-
- if (unknown.length > 0) {
- usage.fail(__n(
- 'Unknown argument: %s',
- 'Unknown arguments: %s',
- unknown.length,
- unknown.join(', ')
- ))
- }
- }
-
- // validate arguments limited to enumerated choices
- self.limitedChoices = function (argv) {
- const options = yargs.getOptions()
- const invalid = {}
-
- if (!Object.keys(options.choices).length) return
-
- Object.keys(argv).forEach(function (key) {
- if (key !== '$0' && key !== '_' &&
- options.choices.hasOwnProperty(key)) {
- [].concat(argv[key]).forEach(function (value) {
- // TODO case-insensitive configurability
- if (options.choices[key].indexOf(value) === -1) {
- invalid[key] = (invalid[key] || []).concat(value)
- }
- })
- }
- })
-
- const invalidKeys = Object.keys(invalid)
-
- if (!invalidKeys.length) return
-
- var msg = __('Invalid values:')
- invalidKeys.forEach(function (key) {
- msg += '\n ' + __(
- 'Argument: %s, Given: %s, Choices: %s',
- key,
- usage.stringifiedValues(invalid[key]),
- usage.stringifiedValues(options.choices[key])
- )
- })
- usage.fail(msg)
- }
-
- // custom checks, added using the `check` option on yargs.
- var checks = []
- self.check = function (f) {
- checks.push(f)
- }
-
- self.customChecks = function (argv, aliases) {
- for (var i = 0, f; (f = checks[i]) !== undefined; i++) {
- var result = null
- try {
- result = f(argv, aliases)
- } catch (err) {
- usage.fail(err.message ? err.message : err, err)
- continue
- }
-
- if (!result) {
- usage.fail(__('Argument check failed: %s', f.toString()))
- } else if (typeof result === 'string' || result instanceof Error) {
- usage.fail(result.toString(), result)
- }
- }
- }
-
- // check implications, argument foo implies => argument bar.
- var implied = {}
- self.implies = function (key, value) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.implies(k, key[k])
- })
- } else {
- implied[key] = value
- }
- }
- self.getImplied = function () {
- return implied
- }
-
- self.implications = function (argv) {
- const implyFail = []
-
- Object.keys(implied).forEach(function (key) {
- var booleanNegation
- if (yargs.getOptions().configuration['boolean-negation'] === false) {
- booleanNegation = false
- } else {
- booleanNegation = true
- }
- var num
- const origKey = key
- var value = implied[key]
-
- // convert string '1' to number 1
- num = Number(key)
- key = isNaN(num) ? key : num
-
- if (typeof key === 'number') {
- // check length of argv._
- key = argv._.length >= key
- } else if (key.match(/^--no-.+/) && booleanNegation) {
- // check if key doesn't exist
- key = key.match(/^--no-(.+)/)[1]
- key = !argv[key]
- } else {
- // check if key exists
- key = argv[key]
- }
-
- num = Number(value)
- value = isNaN(num) ? value : num
-
- if (typeof value === 'number') {
- value = argv._.length >= value
- } else if (value.match(/^--no-.+/) && booleanNegation) {
- value = value.match(/^--no-(.+)/)[1]
- value = !argv[value]
- } else {
- value = argv[value]
- }
-
- if (key && !value) {
- implyFail.push(origKey)
- }
- })
-
- if (implyFail.length) {
- var msg = __('Implications failed:') + '\n'
-
- implyFail.forEach(function (key) {
- msg += (' ' + key + ' -> ' + implied[key])
- })
-
- usage.fail(msg)
- }
- }
-
- self.recommendCommands = function (cmd, potentialCommands) {
- const distance = require('./levenshtein')
- const threshold = 3 // if it takes more than three edits, let's move on.
- potentialCommands = potentialCommands.sort(function (a, b) { return b.length - a.length })
-
- var recommended = null
- var bestDistance = Infinity
- for (var i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {
- var d = distance(cmd, candidate)
- if (d <= threshold && d < bestDistance) {
- bestDistance = d
- recommended = candidate
- }
- }
- if (recommended) usage.fail(__('Did you mean %s?', recommended))
- }
-
- self.reset = function (globalLookup) {
- implied = objFilter(implied, function (k, v) {
- return globalLookup[k]
- })
- checks = []
- return self
- }
-
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.implied = implied
- frozen.checks = checks
- }
- self.unfreeze = function () {
- implied = frozen.implied
- checks = frozen.checks
- frozen = undefined
- }
-
- return self
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/be.json b/node_modules/browser-sync/node_modules/yargs/locales/be.json
deleted file mode 100644
index 141ebe1..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/be.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Каманды:",
- "Options:": "Опцыі:",
- "Examples:": "Прыклады:",
- "boolean": "булевы тып",
- "count": "падлік",
- "string": "радковы тып",
- "number": "лік",
- "array": "масіў",
- "required": "неабходна",
- "default:": "па змаўчанні:",
- "choices:": "магчымасці:",
- "aliases:": "аліасы:",
- "generated-value": "згенераванае значэнне",
- "Not enough non-option arguments: got %s, need at least %s": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s",
- "Too many non-option arguments: got %s, maximum of %s": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s",
- "Missing argument value: %s": {
- "one": "Не хапае значэння аргументу: %s",
- "other": "Не хапае значэнняў аргументаў: %s"
- },
- "Missing required argument: %s": {
- "one": "Не хапае неабходнага аргументу: %s",
- "other": "Не хапае неабходных аргументаў: %s"
- },
- "Unknown argument: %s": {
- "one": "Невядомы аргумент: %s",
- "other": "Невядомыя аргументы: %s"
- },
- "Invalid values:": "Несапраўдныя значэння:",
- "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s",
- "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s",
- "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:",
- "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s",
- "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s",
- "Path to JSON config file": "Шлях да файла канфігурацыі JSON",
- "Show help": "Паказаць дапамогу",
- "Show version number": "Паказаць нумар версіі",
- "Did you mean %s?": "Вы мелі на ўвазе %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/de.json b/node_modules/browser-sync/node_modules/yargs/locales/de.json
deleted file mode 100644
index d805710..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/de.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Kommandos:",
- "Options:": "Optionen:",
- "Examples:": "Beispiele:",
- "boolean": "boolean",
- "count": "Zähler",
- "string": "string",
- "number": "Zahl",
- "array": "array",
- "required": "erforderlich",
- "default:": "Standard:",
- "choices:": "Möglichkeiten:",
- "aliases:": "Aliase:",
- "generated-value": "Generierter-Wert",
- "Not enough non-option arguments: got %s, need at least %s": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt",
- "Too many non-option arguments: got %s, maximum of %s": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt",
- "Missing argument value: %s": {
- "one": "Fehlender Argumentwert: %s",
- "other": "Fehlende Argumentwerte: %s"
- },
- "Missing required argument: %s": {
- "one": "Fehlendes Argument: %s",
- "other": "Fehlende Argumente: %s"
- },
- "Unknown argument: %s": {
- "one": "Unbekanntes Argument: %s",
- "other": "Unbekannte Argumente: %s"
- },
- "Invalid values:": "Unzulässige Werte:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s",
- "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s",
- "Implications failed:": "Implikationen fehlgeschlagen:",
- "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s",
- "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s",
- "Path to JSON config file": "Pfad zur JSON-Config Datei",
- "Show help": "Hilfe anzeigen",
- "Show version number": "Version anzeigen",
- "Did you mean %s?": "Meintest du %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/en.json b/node_modules/browser-sync/node_modules/yargs/locales/en.json
deleted file mode 100644
index 4917664..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/en.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Commands:",
- "Options:": "Options:",
- "Examples:": "Examples:",
- "boolean": "boolean",
- "count": "count",
- "string": "string",
- "number": "number",
- "array": "array",
- "required": "required",
- "default:": "default:",
- "choices:": "choices:",
- "aliases:": "aliases:",
- "generated-value": "generated-value",
- "Not enough non-option arguments: got %s, need at least %s": "Not enough non-option arguments: got %s, need at least %s",
- "Too many non-option arguments: got %s, maximum of %s": "Too many non-option arguments: got %s, maximum of %s",
- "Missing argument value: %s": {
- "one": "Missing argument value: %s",
- "other": "Missing argument values: %s"
- },
- "Missing required argument: %s": {
- "one": "Missing required argument: %s",
- "other": "Missing required arguments: %s"
- },
- "Unknown argument: %s": {
- "one": "Unknown argument: %s",
- "other": "Unknown arguments: %s"
- },
- "Invalid values:": "Invalid values:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s",
- "Argument check failed: %s": "Argument check failed: %s",
- "Implications failed:": "Implications failed:",
- "Not enough arguments following: %s": "Not enough arguments following: %s",
- "Invalid JSON config file: %s": "Invalid JSON config file: %s",
- "Path to JSON config file": "Path to JSON config file",
- "Show help": "Show help",
- "Show version number": "Show version number",
- "Did you mean %s?": "Did you mean %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/es.json b/node_modules/browser-sync/node_modules/yargs/locales/es.json
deleted file mode 100644
index d7c8af9..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/es.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Comandos:",
- "Options:": "Opciones:",
- "Examples:": "Ejemplos:",
- "boolean": "booleano",
- "count": "cuenta",
- "string": "cadena de caracteres",
- "number": "número",
- "array": "tabla",
- "required": "requerido",
- "default:": "defecto:",
- "choices:": "selección:",
- "aliases:": "alias:",
- "generated-value": "valor-generado",
- "Not enough non-option arguments: got %s, need at least %s": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s",
- "Too many non-option arguments: got %s, maximum of %s": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s",
- "Missing argument value: %s": {
- "one": "Falta argumento: %s",
- "other": "Faltan argumentos: %s"
- },
- "Missing required argument: %s": {
- "one": "Falta argumento requerido: %s",
- "other": "Faltan argumentos requeridos: %s"
- },
- "Unknown argument: %s": {
- "one": "Argumento desconocido: %s",
- "other": "Argumentos desconocidos: %s"
- },
- "Invalid values:": "Valores inválidos:",
- "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s",
- "Argument check failed: %s": "Verificación de argumento ha fallado: %s",
- "Implications failed:": "Implicaciones fallidas:",
- "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s",
- "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s",
- "Path to JSON config file": "Ruta al archivo de configuración JSON",
- "Show help": "Muestra ayuda",
- "Show version number": "Muestra número de versión",
- "Did you mean %s?": "Quisiste decir %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/fr.json b/node_modules/browser-sync/node_modules/yargs/locales/fr.json
deleted file mode 100644
index 481f47e..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/fr.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "Commands:": "Commandes:",
- "Options:": "Options:",
- "Examples:": "Exemples:",
- "boolean": "booléen",
- "count": "comptage",
- "string": "chaine de caractère",
- "number": "nombre",
- "array": "tableau",
- "required": "requis",
- "default:": "défaut:",
- "choices:": "choix:",
- "generated-value": "valeur générée",
- "Not enough non-option arguments: got %s, need at least %s": "Pas assez d'arguments non-option: reçu %s, besoin d'au moins %s",
- "Too many non-option arguments: got %s, maximum of %s": "Trop d'arguments non-option: reçu %s, maximum %s",
- "Missing argument value: %s": {
- "one": "Argument manquant: %s",
- "other": "Arguments manquants: %s"
- },
- "Missing required argument: %s": {
- "one": "Argument requis manquant: %s",
- "other": "Arguments requis manquants: %s"
- },
- "Unknown argument: %s": {
- "one": "Argument inconnu: %s",
- "other": "Arguments inconnus: %s"
- },
- "Invalid values:": "Valeurs invalides:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Donné: %s, Choix: %s",
- "Argument check failed: %s": "Echec de la vérification de l'argument: %s",
- "Implications failed:": "Implications échouées:",
- "Not enough arguments following: %s": "Pas assez d'arguments suivant: %s",
- "Invalid JSON config file: %s": "Fichier de configuration JSON invalide: %s",
- "Path to JSON config file": "Chemin du fichier de configuration JSON",
- "Show help": "Affiche de l'aide",
- "Show version number": "Affiche le numéro de version"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/hi.json b/node_modules/browser-sync/node_modules/yargs/locales/hi.json
deleted file mode 100644
index 2a9826d..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/hi.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "आदेश:",
- "Options:": "विकल्प:",
- "Examples:": "उदाहरण:",
- "boolean": "सत्यता",
- "count": "संख्या",
- "string": "वर्णों का तार ",
- "number": "अंक",
- "array": "सरणी",
- "required": "आवश्यक",
- "default:": "डिफॉल्ट:",
- "choices:": "विकल्प:",
- "aliases:": "उपनाम:",
- "generated-value": "उत्पन्न-मूल्य",
- "Not enough non-option arguments: got %s, need at least %s": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है",
- "Too many non-option arguments: got %s, maximum of %s": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य",
- "Missing argument value: %s": {
- "one": "कुछ तर्को के मूल्य गुम हैं: %s",
- "other": "कुछ तर्को के मूल्य गुम हैं: %s"
- },
- "Missing required argument: %s": {
- "one": "आवश्यक तर्क गुम हैं: %s",
- "other": "आवश्यक तर्क गुम हैं: %s"
- },
- "Unknown argument: %s": {
- "one": "अज्ञात तर्क प्राप्त: %s",
- "other": "अज्ञात तर्क प्राप्त: %s"
- },
- "Invalid values:": "अमान्य मूल्य:",
- "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s",
- "Argument check failed: %s": "तर्क जांच विफल: %s",
- "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:",
- "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s",
- "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s",
- "Path to JSON config file": "JSON config फाइल का पथ",
- "Show help": "सहायता दिखाएँ",
- "Show version number": "Version संख्या दिखाएँ",
- "Did you mean %s?": "क्या आपका मतलब है %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/hu.json b/node_modules/browser-sync/node_modules/yargs/locales/hu.json
deleted file mode 100644
index 7b7d166..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/hu.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Parancsok:",
- "Options:": "Opciók:",
- "Examples:": "Példák:",
- "boolean": "boolean",
- "count": "számláló",
- "string": "szöveg",
- "number": "szám",
- "array": "tömb",
- "required": "kötelező",
- "default:": "alapértelmezett:",
- "choices:": "lehetőségek:",
- "aliases:": "aliaszok:",
- "generated-value": "generált-érték",
- "Not enough non-option arguments: got %s, need at least %s": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell",
- "Too many non-option arguments: got %s, maximum of %s": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet",
- "Missing argument value: %s": {
- "one": "Hiányzó argumentum érték: %s",
- "other": "Hiányzó argumentum értékek: %s"
- },
- "Missing required argument: %s": {
- "one": "Hiányzó kötelező argumentum: %s",
- "other": "Hiányzó kötelező argumentumok: %s"
- },
- "Unknown argument: %s": {
- "one": "Ismeretlen argumentum: %s",
- "other": "Ismeretlen argumentumok: %s"
- },
- "Invalid values:": "Érvénytelen érték:",
- "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s",
- "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s",
- "Implications failed:": "Implikációk sikertelenek:",
- "Not enough arguments following: %s": "Nem elég argumentum követi: %s",
- "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s",
- "Path to JSON config file": "JSON konfigurációs file helye",
- "Show help": "Súgo megjelenítése",
- "Show version number": "Verziószám megjelenítése",
- "Did you mean %s?": "Erre gondoltál %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/id.json b/node_modules/browser-sync/node_modules/yargs/locales/id.json
deleted file mode 100644
index a06e860..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/id.json
+++ /dev/null
@@ -1,40 +0,0 @@
-
-{
- "Commands:": "Perintah:",
- "Options:": "Pilihan:",
- "Examples:": "Contoh:",
- "boolean": "boolean",
- "count": "jumlah",
- "number": "nomor",
- "string": "string",
- "array": "larik",
- "required": "diperlukan",
- "default:": "bawaan:",
- "aliases:": "istilah lain:",
- "choices:": "pilihan:",
- "generated-value": "nilai-yang-dihasilkan",
- "Not enough non-option arguments: got %s, need at least %s": "Argumen wajib kurang: hanya %s, minimal %s",
- "Too many non-option arguments: got %s, maximum of %s": "Terlalu banyak argumen wajib: ada %s, maksimal %s",
- "Missing argument value: %s": {
- "one": "Kurang argumen: %s",
- "other": "Kurang argumen: %s"
- },
- "Missing required argument: %s": {
- "one": "Kurang argumen wajib: %s",
- "other": "Kurang argumen wajib: %s"
- },
- "Unknown argument: %s": {
- "one": "Argumen tak diketahui: %s",
- "other": "Argumen tak diketahui: %s"
- },
- "Invalid values:": "Nilai-nilai tidak valid:",
- "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s",
- "Argument check failed: %s": "Pemeriksaan argument gagal: %s",
- "Implications failed:": "Implikasi gagal:",
- "Not enough arguments following: %s": "Kurang argumen untuk: %s",
- "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s",
- "Path to JSON config file": "Alamat berkas konfigurasi JSON",
- "Show help": "Lihat bantuan",
- "Show version number": "Lihat nomor versi",
- "Did you mean %s?": "Maksud Anda: %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/it.json b/node_modules/browser-sync/node_modules/yargs/locales/it.json
deleted file mode 100644
index f9eb375..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/it.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Comandi:",
- "Options:": "Opzioni:",
- "Examples:": "Esempi:",
- "boolean": "booleano",
- "count": "contatore",
- "string": "stringa",
- "number": "numero",
- "array": "vettore",
- "required": "richiesto",
- "default:": "predefinito:",
- "choices:": "scelte:",
- "aliases:": "alias:",
- "generated-value": "valore generato",
- "Not enough non-option arguments: got %s, need at least %s": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s",
- "Too many non-option arguments: got %s, maximum of %s": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s",
- "Missing argument value: %s": {
- "one": "Argomento mancante: %s",
- "other": "Argomenti mancanti: %s"
- },
- "Missing required argument: %s": {
- "one": "Argomento richiesto mancante: %s",
- "other": "Argomenti richiesti mancanti: %s"
- },
- "Unknown argument: %s": {
- "one": "Argomento sconosciuto: %s",
- "other": "Argomenti sconosciuti: %s"
- },
- "Invalid values:": "Valori non validi:",
- "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s",
- "Argument check failed: %s": "Controllo dell'argomento fallito: %s",
- "Implications failed:": "Argomenti impliciti non soddisfatti:",
- "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s",
- "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s",
- "Path to JSON config file": "Percorso del file di configurazione JSON",
- "Show help": "Mostra la schermata di aiuto",
- "Show version number": "Mostra il numero di versione",
- "Did you mean %s?": "Intendi forse %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/ja.json b/node_modules/browser-sync/node_modules/yargs/locales/ja.json
deleted file mode 100644
index 45a64a8..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/ja.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "コマンド:",
- "Options:": "オプション:",
- "Examples:": "例:",
- "boolean": "真偽",
- "count": "カウント",
- "string": "文字列",
- "number": "数値",
- "array": "配列",
- "required": "必須",
- "default:": "デフォルト:",
- "choices:": "選択してください:",
- "aliases:": "エイリアス:",
- "generated-value": "生成された値",
- "Not enough non-option arguments: got %s, need at least %s": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:",
- "Too many non-option arguments: got %s, maximum of %s": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:",
- "Missing argument value: %s": {
- "one": "引数が見つかりません: %s",
- "other": "引数が見つかりません: %s"
- },
- "Missing required argument: %s": {
- "one": "必須の引数が見つかりません: %s",
- "other": "必須の引数が見つかりません: %s"
- },
- "Unknown argument: %s": {
- "one": "未知の引数です: %s",
- "other": "未知の引数です: %s"
- },
- "Invalid values:": "不正な値です:",
- "Argument: %s, Given: %s, Choices: %s": "引数は %s です。指定できるのは %s つです。選択してください: %s",
- "Argument check failed: %s": "引数のチェックに失敗しました: %s",
- "Implications failed:": "オプションの組み合わせで不正が生じました:",
- "Not enough arguments following: %s": "次の引数が不足しています。: %s",
- "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s",
- "Path to JSON config file": "JSONの設定ファイルまでのpath",
- "Show help": "ヘルプを表示",
- "Show version number": "バージョンを表示",
- "Did you mean %s?": "もしかして %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/ko.json b/node_modules/browser-sync/node_modules/yargs/locales/ko.json
deleted file mode 100644
index e714984..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/ko.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "명령:",
- "Options:": "옵션:",
- "Examples:": "예시:",
- "boolean": "여부",
- "count": "개수",
- "string": "문자열",
- "number": "숫자",
- "array": "배열",
- "required": "필수",
- "default:": "기본:",
- "choices:": "선택:",
- "aliases:": "별칭:",
- "generated-value": "생성된 값",
- "Not enough non-option arguments: got %s, need at least %s": "옵션이 아닌 인자가 충분치 않습니다: %s개를 받았지만, 적어도 %s개는 필요합니다",
- "Too many non-option arguments: got %s, maximum of %s": "옵션이 아닌 인자가 너무 많습니다: %s개를 받았지만, %s개 이하여야 합니다",
- "Missing argument value: %s": {
- "one": "인자값을 받지 못했습니다: %s",
- "other": "인자값들을 받지 못했습니다: %s"
- },
- "Missing required argument: %s": {
- "one": "필수 인자를 받지 못했습니다: %s",
- "other": "필수 인자들을 받지 못했습니다: %s"
- },
- "Unknown argument: %s": {
- "one": "알 수 없는 인자입니다: %s",
- "other": "알 수 없는 인자들입니다: %s"
- },
- "Invalid values:": "잘못된 값입니다:",
- "Argument: %s, Given: %s, Choices: %s": "인자: %s, 입력받은 값: %s, 선택지: %s",
- "Argument check failed: %s": "유효하지 않은 인자입니다: %s",
- "Implications failed:": "옵션의 조합이 잘못되었습니다:",
- "Not enough arguments following: %s": "인자가 충분하게 주어지지 않았습니다: %s",
- "Invalid JSON config file: %s": "유효하지 않은 JSON 설정파일입니다: %s",
- "Path to JSON config file": "JSON 설정파일 경로",
- "Show help": "도움말을 보여줍니다",
- "Show version number": "버전 넘버를 보여줍니다",
- "Did you mean %s?": "찾고계신게 %s입니까?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/nb.json b/node_modules/browser-sync/node_modules/yargs/locales/nb.json
deleted file mode 100644
index fc607fb..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/nb.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "Commands:": "Kommandoer:",
- "Options:": "Alternativer:",
- "Examples:": "Eksempler:",
- "boolean": "boolsk",
- "count": "antall",
- "string": "streng",
- "number": "nummer",
- "array": "matrise",
- "required": "obligatorisk",
- "default:": "standard:",
- "choices:": "valg:",
- "generated-value": "generert-verdi",
- "Not enough non-option arguments: got %s, need at least %s": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s",
- "Too many non-option arguments: got %s, maximum of %s": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s",
- "Missing argument value: %s": {
- "one": "Mangler argument verdi: %s",
- "other": "Mangler argument verdier: %s"
- },
- "Missing required argument: %s": {
- "one": "Mangler obligatorisk argument: %s",
- "other": "Mangler obligatoriske argumenter: %s"
- },
- "Unknown argument: %s": {
- "one": "Ukjent argument: %s",
- "other": "Ukjente argumenter: %s"
- },
- "Invalid values:": "Ugyldige verdier:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s",
- "Argument check failed: %s": "Argument sjekk mislyktes: %s",
- "Implications failed:": "Konsekvensene mislyktes:",
- "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s",
- "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s",
- "Path to JSON config file": "Bane til JSON konfigurasjonsfil",
- "Show help": "Vis hjelp",
- "Show version number": "Vis versjonsnummer"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/nl.json b/node_modules/browser-sync/node_modules/yargs/locales/nl.json
deleted file mode 100644
index fc029db..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/nl.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Opdrachten:",
- "Options:": "Opties:",
- "Examples:": "Voorbeelden:",
- "boolean": "boolean",
- "count": "aantal",
- "string": "text",
- "number": "nummer",
- "array": "lijst",
- "required": "verplicht",
- "default:": "standaard:",
- "choices:": "keuzes:",
- "aliases:": "aliassen:",
- "generated-value": "gegenereerde waarde",
- "Not enough non-option arguments: got %s, need at least %s": "Niet genoeg non-optie argumenten. Gekregen: %s, minstens nodig: %s",
- "Too many non-option arguments: got %s, maximum of %s": "Te veel non-optie argumenten. Gekregen: %s, maximum: %s",
- "Missing argument value: %s": {
- "one": "Missing argument value: %s",
- "other": "Missing argument values: %s"
- },
- "Missing required argument: %s": {
- "one": "Missend verplichte argument: %s",
- "other": "Missende verplichte argumenten: %s"
- },
- "Unknown argument: %s": {
- "one": "Onbekend argument: %s",
- "other": "Onbekende argumenten: %s"
- },
- "Invalid values:": "Ongeldige waardes:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s",
- "Argument check failed: %s": "Argument check mislukt: %s",
- "Implications failed:": "Implicaties mislukt:",
- "Not enough arguments following: %s": "Niet genoeg argumenten na: %s",
- "Invalid JSON config file: %s": "Ongeldig JSON configuratiebestand: %s",
- "Path to JSON config file": "Pad naar JSON configuratiebestand",
- "Show help": "Toon help",
- "Show version number": "Toon versie nummer",
- "Did you mean %s?": "Bedoelde u misschien %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/pirate.json b/node_modules/browser-sync/node_modules/yargs/locales/pirate.json
deleted file mode 100644
index 1f4e19e..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/pirate.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "Commands:": "Choose yer command:",
- "Options:": "Options for me hearties!",
- "Examples:": "Ex. marks the spot:",
- "required": "requi-yar-ed",
- "Missing required argument: %s": {
- "one": "Ye be havin' to set the followin' argument land lubber: %s",
- "other": "Ye be havin' to set the followin' arguments land lubber: %s"
- },
- "Show help": "Parlay this here code of conduct",
- "Show version number": "'Tis the version ye be askin' fer"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/pl.json b/node_modules/browser-sync/node_modules/yargs/locales/pl.json
deleted file mode 100644
index 1c834f6..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/pl.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Polecenia:",
- "Options:": "Opcje:",
- "Examples:": "Przykłady:",
- "boolean": "boolean",
- "count": "ilość",
- "string": "ciąg znaków",
- "number": "liczba",
- "array": "tablica",
- "required": "wymagany",
- "default:": "domyślny:",
- "choices:": "dostępne:",
- "aliases:": "aliasy:",
- "generated-value": "wygenerowana-wartość",
- "Not enough non-option arguments: got %s, need at least %s": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s",
- "Too many non-option arguments: got %s, maximum of %s": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s",
- "Missing argument value: %s": {
- "one": "Brak wartości dla argumentu: %s",
- "other": "Brak wartości dla argumentów: %s"
- },
- "Missing required argument: %s": {
- "one": "Brak wymaganego argumentu: %s",
- "other": "Brak wymaganych argumentów: %s"
- },
- "Unknown argument: %s": {
- "one": "Nieznany argument: %s",
- "other": "Nieznane argumenty: %s"
- },
- "Invalid values:": "Nieprawidłowe wartości:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s",
- "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s",
- "Implications failed:": "Założenia nie zostały spełnione:",
- "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s",
- "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s",
- "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON",
- "Show help": "Pokaż pomoc",
- "Show version number": "Pokaż numer wersji",
- "Did you mean %s?": "Czy chodziło Ci o %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/pt.json b/node_modules/browser-sync/node_modules/yargs/locales/pt.json
deleted file mode 100644
index 0b9ea25..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/pt.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "Commands:": "Comandos:",
- "Options:": "Opções:",
- "Examples:": "Exemplos:",
- "boolean": "boolean",
- "count": "contagem",
- "string": "cadeia de caracteres",
- "number": "número",
- "array": "arranjo",
- "required": "requerido",
- "default:": "padrão:",
- "choices:": "escolhas:",
- "generated-value": "valor-gerado",
- "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s",
- "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos não opcionais: recebido %s, máximo de %s",
- "Missing argument value: %s": {
- "one": "Falta valor de argumento: %s",
- "other": "Falta valores de argumento: %s"
- },
- "Missing required argument: %s": {
- "one": "Falta argumento obrigatório: %s",
- "other": "Faltando argumentos obrigatórios: %s"
- },
- "Unknown argument: %s": {
- "one": "Argumento desconhecido: %s",
- "other": "Argumentos desconhecidos: %s"
- },
- "Invalid values:": "Valores inválidos:",
- "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s",
- "Argument check failed: %s": "Verificação de argumento falhou: %s",
- "Implications failed:": "Implicações falharam:",
- "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s",
- "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s",
- "Path to JSON config file": "Caminho para o arquivo de configuração em JSON",
- "Show help": "Mostra ajuda",
- "Show version number": "Mostra número de versão"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/pt_BR.json b/node_modules/browser-sync/node_modules/yargs/locales/pt_BR.json
deleted file mode 100644
index 96d31e7..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/pt_BR.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Comandos:",
- "Options:": "Opções:",
- "Examples:": "Exemplos:",
- "boolean": "boolean",
- "count": "contagem",
- "string": "string",
- "number": "número",
- "array": "array",
- "required": "obrigatório",
- "default:": "padrão:",
- "choices:": "opções:",
- "aliases:": "sinônimos:",
- "generated-value": "valor-gerado",
- "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s",
- "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos: recebido %s, máximo de %s",
- "Missing argument value: %s": {
- "one": "Falta valor de argumento: %s",
- "other": "Falta valores de argumento: %s"
- },
- "Missing required argument: %s": {
- "one": "Falta argumento obrigatório: %s",
- "other": "Faltando argumentos obrigatórios: %s"
- },
- "Unknown argument: %s": {
- "one": "Argumento desconhecido: %s",
- "other": "Argumentos desconhecidos: %s"
- },
- "Invalid values:": "Valores inválidos:",
- "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s",
- "Argument check failed: %s": "Verificação de argumento falhou: %s",
- "Implications failed:": "Implicações falharam:",
- "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s",
- "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s",
- "Path to JSON config file": "Caminho para o arquivo JSON de configuração",
- "Show help": "Exibe ajuda",
- "Show version number": "Exibe a versão",
- "Did you mean %s?": "Você quis dizer %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/ru.json b/node_modules/browser-sync/node_modules/yargs/locales/ru.json
deleted file mode 100644
index cb7b88b..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/ru.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Команды:",
- "Options:": "Опции:",
- "Examples:": "Примеры:",
- "boolean": "булевый тип",
- "count": "подсчет",
- "string": "строковой тип",
- "number": "число",
- "array": "массив",
- "required": "необходимо",
- "default:": "по умолчанию:",
- "choices:": "возможности:",
- "aliases:": "алиасы:",
- "generated-value": "генерированное значение",
- "Not enough non-option arguments: got %s, need at least %s": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s",
- "Too many non-option arguments: got %s, maximum of %s": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s",
- "Missing argument value: %s": {
- "one": "Не хватает значения аргумента: %s",
- "other": "Не хватает значений аргументов: %s"
- },
- "Missing required argument: %s": {
- "one": "Не хватает необходимого аргумента: %s",
- "other": "Не хватает необходимых аргументов: %s"
- },
- "Unknown argument: %s": {
- "one": "Неизвестный аргумент: %s",
- "other": "Неизвестные аргументы: %s"
- },
- "Invalid values:": "Недействительные значения:",
- "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s",
- "Argument check failed: %s": "Проверка аргументов не удалась: %s",
- "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:",
- "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s",
- "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s",
- "Path to JSON config file": "Путь к файлу конфигурации JSON",
- "Show help": "Показать помощь",
- "Show version number": "Показать номер версии",
- "Did you mean %s?": "Вы имели в виду %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/th.json b/node_modules/browser-sync/node_modules/yargs/locales/th.json
deleted file mode 100644
index 3f08dcd..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/th.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "คอมมาน",
- "Options:": "ออฟชั่น",
- "Examples:": "ตัวอย่าง",
- "boolean": "บูลีน",
- "count": "นับ",
- "string": "สตริง",
- "number": "ตัวเลข",
- "array": "อาเรย์",
- "required": "จำเป็น",
- "default:": "ค่าเริ่มต้น",
- "choices:": "ตัวเลือก",
- "aliases:": "เอเลียส",
- "generated-value": "ค่าที่ถูกสร้างขึ้น",
- "Not enough non-option arguments: got %s, need at least %s": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า",
- "Too many non-option arguments: got %s, maximum of %s": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า",
- "Missing argument value: %s": {
- "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s",
- "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s"
- },
- "Missing required argument: %s": {
- "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s",
- "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s"
- },
- "Unknown argument: %s": {
- "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s",
- "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s"
- },
- "Invalid values:": "ค่าไม่ถูกต้อง:",
- "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s",
- "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s",
- "Implications failed:": "Implications ไม่สำเร็จ:",
- "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s",
- "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s",
- "Path to JSON config file": "พาทไฟล์คอนฟิค JSON",
- "Show help": "ขอความช่วยเหลือ",
- "Show version number": "แสดงตัวเลขเวอร์ชั่น",
- "Did you mean %s?": "คุณหมายถึง %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/tr.json b/node_modules/browser-sync/node_modules/yargs/locales/tr.json
deleted file mode 100644
index 000060b..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/tr.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Commands:": "Komutlar:",
- "Options:": "Seçenekler:",
- "Examples:": "Örnekler:",
- "boolean": "boolean",
- "count": "sayı",
- "string": "string",
- "number": "numara",
- "array": "array",
- "required": "zorunlu",
- "default:": "varsayılan:",
- "choices:": "seçimler:",
- "aliases:": "takma adlar:",
- "generated-value": "oluşturulan-değer",
- "Not enough non-option arguments: got %s, need at least %s": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli",
- "Too many non-option arguments: got %s, maximum of %s": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s",
- "Missing argument value: %s": {
- "one": "Eksik argüman değeri: %s",
- "other": "Eksik argüman değerleri: %s"
- },
- "Missing required argument: %s": {
- "one": "Eksik zorunlu argüman: %s",
- "other": "Eksik zorunlu argümanlar: %s"
- },
- "Unknown argument: %s": {
- "one": "Bilinmeyen argüman: %s",
- "other": "Bilinmeyen argümanlar: %s"
- },
- "Invalid values:": "Geçersiz değerler:",
- "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s",
- "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s",
- "Implications failed:": "Sonuçlar başarısız oldu:",
- "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı",
- "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s",
- "Path to JSON config file": "JSON yapılandırma dosya konumu",
- "Show help": "Yardım detaylarını göster",
- "Show version number": "Versiyon detaylarını göster",
- "Did you mean %s?": "Bunu mu demek istediniz: %s?"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/locales/zh_CN.json b/node_modules/browser-sync/node_modules/yargs/locales/zh_CN.json
deleted file mode 100644
index b25c7b9..0000000
--- a/node_modules/browser-sync/node_modules/yargs/locales/zh_CN.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "Commands:": "命令:",
- "Options:": "选项:",
- "Examples:": "示例:",
- "boolean": "布尔",
- "count": "计数",
- "string": "字符串",
- "number": "数字",
- "array": "数组",
- "required": "必需",
- "default:": "默认值:",
- "choices:": "可选值:",
- "generated-value": "生成的值",
- "Not enough non-option arguments: got %s, need at least %s": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个",
- "Too many non-option arguments: got %s, maximum of %s": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个",
- "Missing argument value: %s": {
- "one": "没有给此选项指定值:%s",
- "other": "没有给这些选项指定值:%s"
- },
- "Missing required argument: %s": {
- "one": "缺少必须的选项:%s",
- "other": "缺少这些必须的选项:%s"
- },
- "Unknown argument: %s": {
- "one": "无法识别的选项:%s",
- "other": "无法识别这些选项:%s"
- },
- "Invalid values:": "无效的选项值:",
- "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s",
- "Argument check failed: %s": "选项值验证失败:%s",
- "Implications failed:": "缺少依赖的选项:",
- "Not enough arguments following: %s": "没有提供足够的值给此选项:%s",
- "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s",
- "Path to JSON config file": "JSON 配置文件的路径",
- "Show help": "显示帮助信息",
- "Show version number": "显示版本号"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/package.json b/node_modules/browser-sync/node_modules/yargs/package.json
deleted file mode 100644
index a939911..0000000
--- a/node_modules/browser-sync/node_modules/yargs/package.json
+++ /dev/null
@@ -1,156 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "yargs@6.4.0",
- "scope": null,
- "escapedName": "yargs",
- "name": "yargs",
- "rawSpec": "6.4.0",
- "spec": "6.4.0",
- "type": "version"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync"
- ]
- ],
- "_from": "yargs@6.4.0",
- "_id": "yargs@6.4.0",
- "_inCache": true,
- "_location": "/browser-sync/yargs",
- "_nodeVersion": "6.5.0",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/yargs-6.4.0.tgz_1479155567032_0.36665938631631434"
- },
- "_npmUser": {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- "_npmVersion": "4.0.0",
- "_phantomChildren": {},
- "_requested": {
- "raw": "yargs@6.4.0",
- "scope": null,
- "escapedName": "yargs",
- "name": "yargs",
- "rawSpec": "6.4.0",
- "spec": "6.4.0",
- "type": "version"
- },
- "_requiredBy": [
- "/browser-sync"
- ],
- "_resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
- "_shasum": "816e1a866d5598ccf34e5596ddce22d92da490d4",
- "_shrinkwrap": null,
- "_spec": "yargs@6.4.0",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync",
- "bugs": {
- "url": "https://github.com/yargs/yargs/issues"
- },
- "dependencies": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "window-size": "^0.2.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.1.0"
- },
- "description": "yargs the modern, pirate-themed, successor to optimist.",
- "devDependencies": {
- "chai": "^3.4.1",
- "chalk": "^1.1.3",
- "coveralls": "^2.11.11",
- "cpr": "^2.0.0",
- "cross-spawn": "^5.0.1",
- "es6-promise": "^4.0.2",
- "hashish": "0.0.4",
- "mocha": "^3.0.1",
- "nyc": "^8.3.2",
- "rimraf": "^2.5.0",
- "standard": "^8.2.0",
- "standard-version": "^3.0.0",
- "which": "^1.2.9"
- },
- "directories": {},
- "dist": {
- "shasum": "816e1a866d5598ccf34e5596ddce22d92da490d4",
- "tarball": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz"
- },
- "engine": {
- "node": ">=0.10"
- },
- "files": [
- "index.js",
- "yargs.js",
- "lib",
- "locales",
- "completion.sh.hbs",
- "LICENSE"
- ],
- "gitHead": "bf6707ef59ff2a9b5870779cf11d4d4ce1b23685",
- "greenkeeper": {
- "ignore": [
- "string-width",
- "read-pkg-up",
- "camelcase"
- ]
- },
- "homepage": "http://yargs.js.org/",
- "keywords": [
- "argument",
- "args",
- "option",
- "parser",
- "parsing",
- "cli",
- "command"
- ],
- "license": "MIT",
- "main": "./index.js",
- "maintainers": [
- {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- {
- "name": "chevex",
- "email": "alex.ford@codetunnel.com"
- },
- {
- "name": "nexdrew",
- "email": "andrew@npmjs.com"
- },
- {
- "name": "nylen",
- "email": "jnylen@gmail.com"
- }
- ],
- "name": "yargs",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/yargs.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "release": "standard-version",
- "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks"
- },
- "standard": {
- "ignore": [
- "**/example/**"
- ]
- },
- "version": "6.4.0"
-}
diff --git a/node_modules/browser-sync/node_modules/yargs/yargs.js b/node_modules/browser-sync/node_modules/yargs/yargs.js
deleted file mode 100644
index b0693c0..0000000
--- a/node_modules/browser-sync/node_modules/yargs/yargs.js
+++ /dev/null
@@ -1,989 +0,0 @@
-const assign = require('./lib/assign')
-const Command = require('./lib/command')
-const Completion = require('./lib/completion')
-const Parser = require('yargs-parser')
-const path = require('path')
-const Usage = require('./lib/usage')
-const Validation = require('./lib/validation')
-const Y18n = require('y18n')
-const objFilter = require('./lib/obj-filter')
-const setBlocking = require('set-blocking')
-
-var exports = module.exports = Yargs
-function Yargs (processArgs, cwd, parentRequire) {
- processArgs = processArgs || [] // handle calling yargs().
-
- const self = {}
- var command = null
- var completion = null
- var groups = {}
- var output = ''
- var preservedGroups = {}
- var usage = null
- var validation = null
-
- const y18n = Y18n({
- directory: path.resolve(__dirname, './locales'),
- updateFiles: false
- })
-
- if (!cwd) cwd = process.cwd()
-
- self.$0 = process.argv
- .slice(0, 2)
- .map(function (x, i) {
- // ignore the node bin, specify this in your
- // bin file with #!/usr/bin/env node
- if (i === 0 && /\b(node|iojs)(\.exe)?$/.test(x)) return
- var b = rebase(cwd, x)
- return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x
- })
- .join(' ').trim()
-
- if (process.env._ !== undefined && process.argv[1] === process.env._) {
- self.$0 = process.env._.replace(
- path.dirname(process.execPath) + '/', ''
- )
- }
-
- // use context object to keep track of resets, subcommand execution, etc
- // submodules should modify and check the state of context as necessary
- const context = { resets: -1, commands: [], files: [] }
- self.getContext = function () {
- return context
- }
-
- // puts yargs back into an initial state. any keys
- // that have been set to "global" will not be reset
- // by this action.
- var options
- self.resetOptions = self.reset = function (aliases) {
- context.resets++
- aliases = aliases || {}
- options = options || {}
- // put yargs back into an initial state, this
- // logic is used to build a nested command
- // hierarchy.
- var tmpOptions = {}
- tmpOptions.global = options.global ? options.global : []
- tmpOptions.configObjects = options.configObjects ? options.configObjects : []
-
- // if a key has been set as a global, we
- // do not want to reset it or its aliases.
- var globalLookup = {}
- tmpOptions.global.forEach(function (g) {
- globalLookup[g] = true
- ;(aliases[g] || []).forEach(function (a) {
- globalLookup[a] = true
- })
- })
-
- // preserve groups containing global keys
- preservedGroups = Object.keys(groups).reduce(function (acc, groupName) {
- var keys = groups[groupName].filter(function (key) {
- return key in globalLookup
- })
- if (keys.length > 0) {
- acc[groupName] = keys
- }
- return acc
- }, {})
- // groups can now be reset
- groups = {}
-
- var arrayOptions = [
- 'array', 'boolean', 'string', 'requiresArg', 'skipValidation',
- 'count', 'normalize', 'number'
- ]
-
- var objectOptions = [
- 'narg', 'key', 'alias', 'default', 'defaultDescription',
- 'config', 'choices', 'demanded', 'coerce'
- ]
-
- arrayOptions.forEach(function (k) {
- tmpOptions[k] = (options[k] || []).filter(function (k) {
- return globalLookup[k]
- })
- })
-
- objectOptions.forEach(function (k) {
- tmpOptions[k] = objFilter(options[k], function (k, v) {
- return globalLookup[k]
- })
- })
-
- tmpOptions.envPrefix = options.envPrefix
- options = tmpOptions
-
- // if this is the first time being executed, create
- // instances of all our helpers -- otherwise just reset.
- usage = usage ? usage.reset(globalLookup) : Usage(self, y18n)
- validation = validation ? validation.reset(globalLookup) : Validation(self, usage, y18n)
- command = command ? command.reset() : Command(self, usage, validation)
- if (!completion) completion = Completion(self, usage, command)
-
- strict = false
- completionCommand = null
- output = ''
- exitError = null
- hasOutput = false
- self.parsed = false
-
- return self
- }
- self.resetOptions()
-
- // temporary hack: allow "freezing" of reset-able state for parse(msg, cb)
- var frozen
- function freeze () {
- frozen = {}
- frozen.options = options
- frozen.configObjects = options.configObjects.slice(0)
- frozen.exitProcess = exitProcess
- frozen.groups = groups
- usage.freeze()
- validation.freeze()
- command.freeze()
- frozen.strict = strict
- frozen.completionCommand = completionCommand
- frozen.output = output
- frozen.exitError = exitError
- frozen.hasOutput = hasOutput
- frozen.parsed = self.parsed
- }
- function unfreeze () {
- options = frozen.options
- options.configObjects = frozen.configObjects
- exitProcess = frozen.exitProcess
- groups = frozen.groups
- output = frozen.output
- exitError = frozen.exitError
- hasOutput = frozen.hasOutput
- self.parsed = frozen.parsed
- usage.unfreeze()
- validation.unfreeze()
- command.unfreeze()
- strict = frozen.strict
- completionCommand = frozen.completionCommand
- parseFn = null
- parseContext = null
- frozen = undefined
- }
-
- self.boolean = function (bools) {
- options.boolean.push.apply(options.boolean, [].concat(bools))
- return self
- }
-
- self.array = function (arrays) {
- options.array.push.apply(options.array, [].concat(arrays))
- return self
- }
-
- self.nargs = function (key, n) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.nargs(k, key[k])
- })
- } else {
- options.narg[key] = n
- }
- return self
- }
-
- self.number = function (numbers) {
- options.number.push.apply(options.number, [].concat(numbers))
- return self
- }
-
- self.choices = function (key, values) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.choices(k, key[k])
- })
- } else {
- options.choices[key] = (options.choices[key] || []).concat(values)
- }
- return self
- }
-
- self.normalize = function (strings) {
- options.normalize.push.apply(options.normalize, [].concat(strings))
- return self
- }
-
- self.config = function (key, msg, parseFn) {
- // allow to pass a configuration object
- if (typeof key === 'object') {
- options.configObjects = (options.configObjects || []).concat(key)
- return self
- }
-
- // allow to provide a parsing function
- if (typeof msg === 'function') {
- parseFn = msg
- msg = null
- }
-
- key = key || 'config'
- self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file'))
- ;(Array.isArray(key) ? key : [key]).forEach(function (k) {
- options.config[k] = parseFn || true
- })
- return self
- }
-
- self.example = function (cmd, description) {
- usage.example(cmd, description)
- return self
- }
-
- self.command = function (cmd, description, builder, handler) {
- command.addHandler(cmd, description, builder, handler)
- return self
- }
-
- self.commandDir = function (dir, opts) {
- const req = parentRequire || require
- command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts)
- return self
- }
-
- self.string = function (strings) {
- options.string.push.apply(options.string, [].concat(strings))
- return self
- }
-
- // The 'defaults' alias is deprecated. It will be removed in the next major version.
- self.default = self.defaults = function (key, value, defaultDescription) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.default(k, key[k])
- })
- } else {
- if (defaultDescription) options.defaultDescription[key] = defaultDescription
- if (typeof value === 'function') {
- if (!options.defaultDescription[key]) options.defaultDescription[key] = usage.functionDescription(value)
- value = value.call()
- }
- options.default[key] = value
- }
- return self
- }
-
- self.alias = function (x, y) {
- if (typeof x === 'object') {
- Object.keys(x).forEach(function (key) {
- self.alias(key, x[key])
- })
- } else {
- options.alias[x] = (options.alias[x] || []).concat(y)
- }
- return self
- }
-
- self.coerce = function (key, fn) {
- if (typeof key === 'object' && !Array.isArray(key)) {
- Object.keys(key).forEach(function (k) {
- self.coerce(k, key[k])
- })
- } else {
- [].concat(key).forEach(function (k) {
- options.coerce[k] = fn
- })
- }
- return self
- }
-
- self.count = function (counts) {
- options.count.push.apply(options.count, [].concat(counts))
- return self
- }
-
- self.demand = self.required = self.require = function (keys, max, msg) {
- // you can optionally provide a 'max' key,
- // which will raise an exception if too many '_'
- // options are provided.
-
- if (Array.isArray(max)) {
- max.forEach(function (key) {
- self.demand(key, msg)
- })
- max = Infinity
- } else if (typeof max !== 'number') {
- msg = max
- max = Infinity
- }
-
- if (typeof keys === 'number') {
- if (!options.demanded._) options.demanded._ = { count: 0, msg: null, max: max }
- options.demanded._.count = keys
- options.demanded._.msg = msg
- } else if (Array.isArray(keys)) {
- keys.forEach(function (key) {
- self.demand(key, msg)
- })
- } else {
- if (typeof msg === 'string') {
- options.demanded[keys] = { msg: msg }
- } else if (msg === true || typeof msg === 'undefined') {
- options.demanded[keys] = { msg: undefined }
- }
- }
-
- return self
- }
-
- self.getDemanded = function () {
- return options.demanded
- }
-
- self.requiresArg = function (requiresArgs) {
- options.requiresArg.push.apply(options.requiresArg, [].concat(requiresArgs))
- return self
- }
-
- self.skipValidation = function (skipValidations) {
- options.skipValidation.push.apply(options.skipValidation, [].concat(skipValidations))
- return self
- }
-
- self.implies = function (key, value) {
- validation.implies(key, value)
- return self
- }
-
- self.usage = function (msg, opts) {
- if (!opts && typeof msg === 'object') {
- opts = msg
- msg = null
- }
-
- usage.usage(msg)
-
- if (opts) self.options(opts)
-
- return self
- }
-
- self.epilogue = self.epilog = function (msg) {
- usage.epilog(msg)
- return self
- }
-
- self.fail = function (f) {
- usage.failFn(f)
- return self
- }
-
- self.check = function (f) {
- validation.check(f)
- return self
- }
-
- self.describe = function (key, desc) {
- options.key[key] = true
- usage.describe(key, desc)
- return self
- }
-
- self.global = function (globals) {
- options.global.push.apply(options.global, [].concat(globals))
- return self
- }
-
- self.pkgConf = function (key, path) {
- var conf = null
-
- var obj = pkgUp(path)
-
- // If an object exists in the key, add it to options.configObjects
- if (obj[key] && typeof obj[key] === 'object') {
- conf = obj[key]
- options.configObjects = (options.configObjects || []).concat(conf)
- }
-
- return self
- }
-
- var pkgs = {}
- function pkgUp (path) {
- var npath = path || '*'
- if (pkgs[npath]) return pkgs[npath]
- const readPkgUp = require('read-pkg-up')
-
- var obj = {}
- try {
- obj = readPkgUp.sync({
- cwd: path || require('require-main-filename')(parentRequire || require),
- normalize: false
- })
- } catch (noop) {}
-
- pkgs[npath] = obj.pkg || {}
- return pkgs[npath]
- }
-
- var parseFn = null
- var parseContext = null
- self.parse = function (args, shortCircuit, _parseFn) {
- // a context object can optionally be provided, this allows
- // additional information to be passed to a command handler.
- if (typeof shortCircuit === 'object') {
- parseContext = shortCircuit
- shortCircuit = _parseFn
- }
-
- // by providing a function as a second argument to
- // parse you can capture output that would otherwise
- // default to printing to stdout/stderr.
- if (typeof shortCircuit === 'function') {
- parseFn = shortCircuit
- shortCircuit = null
- }
- // completion short-circuits the parsing process,
- // skipping validation, etc.
- if (!shortCircuit) processArgs = args
-
- if (parseFn) {
- freeze()
- exitProcess = false
- }
-
- var parsed = parseArgs(args, shortCircuit)
- if (parseFn) {
- parseFn(exitError, parsed, output)
- unfreeze()
- }
-
- return parsed
- }
-
- self._hasParseCallback = function () {
- return !!parseFn
- }
-
- self.option = self.options = function (key, opt) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.options(k, key[k])
- })
- } else {
- if (typeof opt !== 'object') {
- opt = {}
- }
-
- options.key[key] = true // track manually set keys.
-
- if (opt.alias) self.alias(key, opt.alias)
-
- var demand = opt.demand || opt.required || opt.require
-
- if (demand) {
- self.demand(key, demand)
- }
-
- if ('config' in opt) {
- self.config(key, opt.configParser)
- }
-
- if ('default' in opt) {
- self.default(key, opt.default)
- }
-
- if ('nargs' in opt) {
- self.nargs(key, opt.nargs)
- }
-
- if ('normalize' in opt) {
- self.normalize(key)
- }
-
- if ('choices' in opt) {
- self.choices(key, opt.choices)
- }
-
- if ('coerce' in opt) {
- self.coerce(key, opt.coerce)
- }
-
- if ('group' in opt) {
- self.group(key, opt.group)
- }
-
- if (opt.global) {
- self.global(key)
- }
-
- if (opt.boolean || opt.type === 'boolean') {
- self.boolean(key)
- if (opt.alias) self.boolean(opt.alias)
- }
-
- if (opt.array || opt.type === 'array') {
- self.array(key)
- if (opt.alias) self.array(opt.alias)
- }
-
- if (opt.number || opt.type === 'number') {
- self.number(key)
- if (opt.alias) self.number(opt.alias)
- }
-
- if (opt.string || opt.type === 'string') {
- self.string(key)
- if (opt.alias) self.string(opt.alias)
- }
-
- if (opt.count || opt.type === 'count') {
- self.count(key)
- }
-
- if (opt.defaultDescription) {
- options.defaultDescription[key] = opt.defaultDescription
- }
-
- if (opt.skipValidation) {
- self.skipValidation(key)
- }
-
- var desc = opt.describe || opt.description || opt.desc
- if (desc) {
- self.describe(key, desc)
- }
-
- if (opt.requiresArg) {
- self.requiresArg(key)
- }
- }
-
- return self
- }
- self.getOptions = function () {
- return options
- }
-
- self.group = function (opts, groupName) {
- var existing = preservedGroups[groupName] || groups[groupName]
- if (preservedGroups[groupName]) {
- // the preserved group will be moved to the set of explicitly declared
- // groups
- delete preservedGroups[groupName]
- }
-
- var seen = {}
- groups[groupName] = (existing || []).concat(opts).filter(function (key) {
- if (seen[key]) return false
- return (seen[key] = true)
- })
- return self
- }
- self.getGroups = function () {
- // combine explicit and preserved groups. explicit groups should be first
- return assign(groups, preservedGroups)
- }
-
- // as long as options.envPrefix is not undefined,
- // parser will apply env vars matching prefix to argv
- self.env = function (prefix) {
- if (prefix === false) options.envPrefix = undefined
- else options.envPrefix = prefix || ''
- return self
- }
-
- self.wrap = function (cols) {
- usage.wrap(cols)
- return self
- }
-
- var strict = false
- self.strict = function () {
- strict = true
- return self
- }
- self.getStrict = function () {
- return strict
- }
-
- self.showHelp = function (level) {
- if (!self.parsed) parseArgs(processArgs) // run parser, if it has not already been executed.
- usage.showHelp(level)
- return self
- }
-
- var versionOpt = null
- self.version = function (opt, msg, ver) {
- if (arguments.length === 0) {
- ver = guessVersion()
- opt = 'version'
- } else if (arguments.length === 1) {
- ver = opt
- opt = 'version'
- } else if (arguments.length === 2) {
- ver = msg
- }
-
- versionOpt = opt
- msg = msg || usage.deferY18nLookup('Show version number')
-
- usage.version(ver || undefined)
- self.boolean(versionOpt)
- self.global(versionOpt)
- self.describe(versionOpt, msg)
- return self
- }
-
- function guessVersion () {
- var obj = pkgUp()
-
- return obj.version || 'unknown'
- }
-
- var helpOpt = null
- var useHelpOptAsCommand = false // a call to .help() will enable this
- self.addHelpOpt = self.help = function (opt, msg, addImplicitCmd) {
- // argument shuffle
- if (arguments.length === 0) {
- useHelpOptAsCommand = true
- } else if (arguments.length === 1) {
- if (typeof opt === 'boolean') {
- useHelpOptAsCommand = opt
- opt = null
- } else {
- useHelpOptAsCommand = true
- }
- } else if (arguments.length === 2) {
- if (typeof msg === 'boolean') {
- useHelpOptAsCommand = msg
- msg = null
- } else {
- useHelpOptAsCommand = true
- }
- } else {
- useHelpOptAsCommand = Boolean(addImplicitCmd)
- }
- // use arguments, fallback to defaults for opt and msg
- helpOpt = opt || 'help'
- self.boolean(helpOpt)
- self.global(helpOpt)
- self.describe(helpOpt, msg || usage.deferY18nLookup('Show help'))
- return self
- }
-
- self.showHelpOnFail = function (enabled, message) {
- usage.showHelpOnFail(enabled, message)
- return self
- }
-
- var exitProcess = true
- self.exitProcess = function (enabled) {
- if (typeof enabled !== 'boolean') {
- enabled = true
- }
- exitProcess = enabled
- return self
- }
- self.getExitProcess = function () {
- return exitProcess
- }
-
- var completionCommand = null
- self.completion = function (cmd, desc, fn) {
- // a function to execute when generating
- // completions can be provided as the second
- // or third argument to completion.
- if (typeof desc === 'function') {
- fn = desc
- desc = null
- }
-
- // register the completion command.
- completionCommand = cmd || 'completion'
- if (!desc && desc !== false) {
- desc = 'generate bash completion script'
- }
- self.command(completionCommand, desc)
-
- // a function can be provided
- if (fn) completion.registerFunction(fn)
-
- return self
- }
-
- self.showCompletionScript = function ($0) {
- $0 = $0 || self.$0
- _logger.log(completion.generateCompletionScript($0))
- return self
- }
-
- self.getCompletion = function (args, done) {
- completion.getCompletion(args, done)
- }
-
- self.locale = function (locale) {
- if (arguments.length === 0) {
- guessLocale()
- return y18n.getLocale()
- }
- detectLocale = false
- y18n.setLocale(locale)
- return self
- }
-
- self.updateStrings = self.updateLocale = function (obj) {
- detectLocale = false
- y18n.updateLocale(obj)
- return self
- }
-
- var detectLocale = true
- self.detectLocale = function (detect) {
- detectLocale = detect
- return self
- }
- self.getDetectLocale = function () {
- return detectLocale
- }
-
- var hasOutput = false
- var exitError = null
- // maybe exit, always capture
- // context about why we wanted to exit.
- self.exit = function (code, err) {
- hasOutput = true
- exitError = err
- if (exitProcess) process.exit(code)
- }
-
- // we use a custom logger that buffers output,
- // so that we can print to non-CLIs, e.g., chat-bots.
- var _logger = {
- log: function () {
- var args = Array.prototype.slice.call(arguments)
- if (!self._hasParseCallback()) console.log.apply(console, args)
- hasOutput = true
- if (output.length) output += '\n'
- output += args.join(' ')
- },
- error: function () {
- var args = Array.prototype.slice.call(arguments)
- if (!self._hasParseCallback()) console.error.apply(console, args)
- hasOutput = true
- if (output.length) output += '\n'
- output += args.join(' ')
- }
- }
- self._getLoggerInstance = function () {
- return _logger
- }
- // has yargs output an error our help
- // message in the current execution context.
- self._hasOutput = function () {
- return hasOutput
- }
-
- var recommendCommands
- self.recommendCommands = function () {
- recommendCommands = true
- return self
- }
-
- self.getUsageInstance = function () {
- return usage
- }
-
- self.getValidationInstance = function () {
- return validation
- }
-
- self.getCommandInstance = function () {
- return command
- }
-
- self.terminalWidth = function () {
- return require('window-size').width
- }
-
- Object.defineProperty(self, 'argv', {
- get: function () {
- var args = null
-
- try {
- args = parseArgs(processArgs)
- } catch (err) {
- usage.fail(err.message, err)
- }
-
- return args
- },
- enumerable: true
- })
-
- function parseArgs (args, shortCircuit) {
- options.__ = y18n.__
- options.configuration = pkgUp(cwd)['yargs'] || {}
- const parsed = Parser.detailed(args, options)
- var argv = parsed.argv
- if (parseContext) argv = assign(parseContext, argv)
- var aliases = parsed.aliases
-
- argv.$0 = self.$0
- self.parsed = parsed
-
- guessLocale() // guess locale lazily, so that it can be turned off in chain.
-
- // while building up the argv object, there
- // are two passes through the parser. If completion
- // is being performed short-circuit on the first pass.
- if (shortCircuit) {
- return argv
- }
-
- if (argv._.length) {
- // check for helpOpt in argv._ before running commands
- // assumes helpOpt must be valid if useHelpOptAsCommand is true
- if (useHelpOptAsCommand) {
- // consider any multi-char helpOpt alias as a valid help command
- // unless all helpOpt aliases are single-char
- // note that parsed.aliases is a normalized bidirectional map :)
- var helpCmds = [helpOpt].concat(aliases[helpOpt])
- var multiCharHelpCmds = helpCmds.filter(function (k) {
- return k.length > 1
- })
- if (multiCharHelpCmds.length) helpCmds = multiCharHelpCmds
- // look for and strip any helpCmds from argv._
- argv._ = argv._.filter(function (cmd) {
- if (~helpCmds.indexOf(cmd)) {
- argv[helpOpt] = true
- return false
- }
- return true
- })
- }
-
- // if there's a handler associated with a
- // command defer processing to it.
- var handlerKeys = command.getCommands()
- if (handlerKeys.length) {
- var firstUnknownCommand
- for (var i = 0, cmd; (cmd = argv._[i]) !== undefined; i++) {
- if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) {
- setPlaceholderKeys(argv)
- return command.runCommand(cmd, self, parsed)
- } else if (!firstUnknownCommand && cmd !== completionCommand) {
- firstUnknownCommand = cmd
- }
- }
-
- // recommend a command if recommendCommands() has
- // been enabled, and no commands were found to execute
- if (recommendCommands && firstUnknownCommand) {
- validation.recommendCommands(firstUnknownCommand, handlerKeys)
- }
- }
-
- // generate a completion script for adding to ~/.bashrc.
- if (completionCommand && ~argv._.indexOf(completionCommand) && !argv[completion.completionKey]) {
- if (exitProcess) setBlocking(true)
- self.showCompletionScript()
- self.exit(0)
- }
- }
-
- // we must run completions first, a user might
- // want to complete the --help or --version option.
- if (completion.completionKey in argv) {
- if (exitProcess) setBlocking(true)
-
- // we allow for asynchronous completions,
- // e.g., loading in a list of commands from an API.
- var completionArgs = args.slice(args.indexOf('--' + completion.completionKey) + 1)
- completion.getCompletion(completionArgs, function (completions) {
- ;(completions || []).forEach(function (completion) {
- _logger.log(completion)
- })
-
- self.exit(0)
- })
- return setPlaceholderKeys(argv)
- }
-
- var skipValidation = false
-
- // Handle 'help' and 'version' options
- Object.keys(argv).forEach(function (key) {
- if (key === helpOpt && argv[key]) {
- if (exitProcess) setBlocking(true)
-
- skipValidation = true
- self.showHelp('log')
- self.exit(0)
- } else if (key === versionOpt && argv[key]) {
- if (exitProcess) setBlocking(true)
-
- skipValidation = true
- usage.showVersion()
- self.exit(0)
- }
- })
-
- // Check if any of the options to skip validation were provided
- if (!skipValidation && options.skipValidation.length > 0) {
- skipValidation = Object.keys(argv).some(function (key) {
- return options.skipValidation.indexOf(key) >= 0 && argv[key] === true
- })
- }
-
- // If the help or version options where used and exitProcess is false,
- // or if explicitly skipped, we won't run validations
- if (!skipValidation) {
- if (parsed.error) throw parsed.error
-
- // if we're executed via bash completion, don't
- // bother with validation.
- if (!argv[completion.completionKey]) {
- validation.nonOptionCount(argv)
- validation.missingArgumentValue(argv)
- validation.requiredArguments(argv)
- if (strict) validation.unknownArguments(argv, aliases)
- validation.customChecks(argv, aliases)
- validation.limitedChoices(argv)
- validation.implications(argv)
- }
- }
-
- return setPlaceholderKeys(argv)
- }
-
- function guessLocale () {
- if (!detectLocale) return
-
- try {
- const osLocale = require('os-locale')
- self.locale(osLocale.sync({ spawn: false }))
- } catch (err) {
- // if we explode looking up locale just noop
- // we'll keep using the default language 'en'.
- }
- }
-
- function setPlaceholderKeys (argv) {
- Object.keys(options.key).forEach(function (key) {
- // don't set placeholder keys for dot
- // notation options 'foo.bar'.
- if (~key.indexOf('.')) return
- if (typeof argv[key] === 'undefined') argv[key] = undefined
- })
- return argv
- }
-
- return self
-}
-
-// rebase an absolute path to a relative one with respect to a base directory
-// exported for tests
-exports.rebase = rebase
-function rebase (base, dir) {
- return path.relative(base, dir)
-}
diff --git a/node_modules/browser-sync/package.json b/node_modules/browser-sync/package.json
deleted file mode 100644
index 22fd6f1..0000000
--- a/node_modules/browser-sync/package.json
+++ /dev/null
@@ -1,179 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "browser-sync",
- "scope": null,
- "escapedName": "browser-sync",
- "name": "browser-sync",
- "rawSpec": "",
- "spec": "latest",
- "type": "tag"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect"
- ]
- ],
- "_from": "browser-sync@latest",
- "_id": "browser-sync@2.18.7",
- "_inCache": true,
- "_location": "/browser-sync",
- "_nodeVersion": "6.8.1",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/browser-sync-2.18.7.tgz_1485810370300_0.5562771006952971"
- },
- "_npmUser": {
- "name": "shakyshane",
- "email": "shakyshane@gmail.com"
- },
- "_npmVersion": "3.10.8",
- "_phantomChildren": {
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "which-module": "1.0.0",
- "wrap-ansi": "2.1.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- },
- "_requested": {
- "raw": "browser-sync",
- "scope": null,
- "escapedName": "browser-sync",
- "name": "browser-sync",
- "rawSpec": "",
- "spec": "latest",
- "type": "tag"
- },
- "_requiredBy": [
- "#DEV:/",
- "#USER"
- ],
- "_resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.7.tgz",
- "_shasum": "12d93b875d2c4dba815246cead0fcdff94a62907",
- "_shrinkwrap": null,
- "_spec": "browser-sync",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect",
- "author": {
- "name": "Shane Osbourne"
- },
- "bin": {
- "browser-sync": "bin/browser-sync.js"
- },
- "bugs": {
- "url": "https://github.com/browsersync/browser-sync/issues"
- },
- "dependencies": {
- "browser-sync-client": "2.4.4",
- "browser-sync-ui": "0.6.3",
- "bs-recipes": "1.3.4",
- "chokidar": "1.6.1",
- "connect": "3.5.0",
- "dev-ip": "^1.0.1",
- "easy-extender": "2.3.2",
- "eazy-logger": "3.0.2",
- "emitter-steward": "^1.0.0",
- "fs-extra": "1.0.0",
- "http-proxy": "1.15.2",
- "immutable": "3.8.1",
- "localtunnel": "1.8.2",
- "micromatch": "2.3.11",
- "opn": "4.0.2",
- "portscanner": "2.1.1",
- "qs": "6.2.1",
- "resp-modifier": "6.0.2",
- "rx": "4.1.0",
- "serve-index": "1.8.0",
- "serve-static": "1.11.1",
- "server-destroy": "1.0.1",
- "socket.io": "1.6.0",
- "socket.io-client": "1.6.0",
- "ua-parser-js": "0.7.12",
- "yargs": "6.4.0"
- },
- "description": "Live CSS Reload & Browser Syncing",
- "devDependencies": {
- "browser-sync-spa": "1.0.3",
- "bs-html-injector": "3.0.3",
- "bs-latency": "1.0.0",
- "bs-rewrite-rules": "2.0.0",
- "bs-snippet-injector": "2.0.1",
- "chai": "3.5.0",
- "chalk": "1.1.3",
- "compression": "1.6.2",
- "eslint": "3.7.1",
- "graceful-fs": "4.1.9",
- "gulp": "3.9.1",
- "gulp-contribs": "0.0.3",
- "gulp-conventional-changelog": "1.1.0",
- "gulp-filter": "4.0.0",
- "http2": "^3.3.6",
- "istanbul": "0.4.5",
- "istanbul-coveralls": "1.0.3",
- "lodash-cli": "4.15.0",
- "mocha": "3.0.2",
- "q": "1.4.1",
- "request": "2.74.0",
- "rimraf": "2.5.4",
- "sinon": "1.17.5",
- "socket.io-client": "1.5.0",
- "supertest": "2.0.0",
- "vinyl": "1.2.0"
- },
- "directories": {},
- "dist": {
- "shasum": "12d93b875d2c4dba815246cead0fcdff94a62907",
- "tarball": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.7.tgz"
- },
- "engines": {
- "node": ">= 0.8.0"
- },
- "files": [
- "bin",
- "index.js",
- "lib",
- "lodash.custom.js"
- ],
- "gitHead": "838c8379c2d36137cc266964e6594ada6c4a5b6a",
- "homepage": "http://www.browsersync.io/",
- "keywords": [
- "browser sync",
- "css",
- "live reload",
- "sync"
- ],
- "license": "Apache-2.0",
- "maintainers": [
- {
- "name": "shakyshane",
- "email": "shane.osbourne8@gmail.com"
- }
- ],
- "name": "browser-sync",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/browsersync/browser-sync.git"
- },
- "scripts": {
- "cover": "npm run env && npm run cover-local && npm run coveralls",
- "cover-local": "istanbul cover -x lodash.custom.js _mocha -- --timeout 10000 --recursive ./test/specs",
- "coveralls": "istanbul-coveralls",
- "env": "node ./test/env.js",
- "lint": "eslint index.js lib bin examples test/specs gulpfile.js --fix",
- "lodash": "lodash include=isUndefined,isFunction,toArray,includes,union,each,isString,merge,isObject,set exports=node",
- "pre-release": "npm test && npm run pro-local && npm run pro",
- "pro": "protractor test/protractor/config.single.js",
- "pro-local": "node test/protractor/setup.js",
- "test": "npm run lint && npm run env && npm run unit",
- "unit": "mocha --recursive test/specs --timeout 10000 --bail"
- },
- "version": "2.18.7"
-}
diff --git a/node_modules/bs-recipes/index.js b/node_modules/bs-recipes/index.js
deleted file mode 100644
index f4c05ae..0000000
--- a/node_modules/bs-recipes/index.js
+++ /dev/null
@@ -1 +0,0 @@
-/* Module resolution */
diff --git a/node_modules/bs-recipes/manifest.json b/node_modules/bs-recipes/manifest.json
deleted file mode 100644
index 3cfa7a5..0000000
--- a/node_modules/bs-recipes/manifest.json
+++ /dev/null
@@ -1,638 +0,0 @@
-[
- {
- "dir": "grunt.html.injection",
- "name": [
- "grunt",
- "html",
- "injection"
- ],
- "pkg": {
- "name": "bs-recipes-grunt-html-injection",
- "version": "1.0.0",
- "description": "Grunt, SASS, HTML/CSS injection example",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "license": "MIT",
- "devDependencies": {
- "bs-html-injector": "3.0.1",
- "grunt": "^0.4.5",
- "grunt-browser-sync": "^2.0.0",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/grunt.html.injection",
- "title": "Grunt Html Injection"
- },
- {
- "dir": "grunt.sass",
- "name": [
- "grunt",
- "sass"
- ],
- "pkg": {
- "name": "grunt.sass",
- "version": "1.0.0",
- "description": "Grunt & SASS",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "grunt": "^0.4.5",
- "grunt-browser-sync": "^2.0.0",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/grunt.sass",
- "title": "Grunt Sass"
- },
- {
- "dir": "grunt.sass.autoprefixer",
- "name": [
- "grunt",
- "sass",
- "autoprefixer"
- ],
- "pkg": {
- "name": "grunt.sass.autoprefixer",
- "version": "1.0.0",
- "description": "Grunt, SASS & Autoprefixer",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "grunt": "^0.4.5",
- "grunt-autoprefixer": "^2.2.0",
- "grunt-browser-sync": "^2.1.1",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/grunt.sass.autoprefixer",
- "title": "Grunt Sass Autoprefixer"
- },
- {
- "dir": "gulp.browserify",
- "name": [
- "gulp",
- "browserify"
- ],
- "pkg": {
- "name": "gulp.browserify",
- "version": "1.0.0",
- "description": "Browserify, Babelify + Watchify + Sourcemaps Example",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "license": "MIT",
- "devDependencies": {
- "exorcist": "^0.4.0",
- "babelify": "^6.1.2",
- "browser-sync": "^2.2.1",
- "browserify": "^8.1.3",
- "gulp": "^3.8.11",
- "gulp-util": "^3.0.3",
- "vinyl-source-stream": "^1.0.0",
- "watchify": "^2.3.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.browserify",
- "title": "Gulp Browserify"
- },
- {
- "dir": "gulp.pug",
- "name": [
- "gulp",
- "pug"
- ],
- "pkg": {
- "name": "gulp.pug",
- "version": "1.0.0",
- "description": "Gulp, SASS + Pug Templates",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.17.5",
- "gulp": "^3.9.1",
- "gulp-pug": "^3.1.0",
- "gulp-sass": "^2.3.2"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.pug",
- "title": "Gulp Pug"
- },
- {
- "dir": "gulp.ruby.sass",
- "name": [
- "gulp",
- "ruby",
- "sass"
- ],
- "pkg": {
- "name": "gulp.ruby.sass",
- "version": "1.0.0",
- "description": "Gulp & Ruby SASS",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-filter": "^2.0.2",
- "gulp-ruby-sass": "^1.0.1",
- "gulp-sass": "^1.3.3",
- "gulp-sourcemaps": "^1.5.1"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.ruby.sass",
- "title": "Gulp Ruby Sass"
- },
- {
- "dir": "gulp.sass",
- "name": [
- "gulp",
- "sass"
- ],
- "pkg": {
- "name": "gulp.sass",
- "version": "1.0.0",
- "description": "Gulp & SASS",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^2.2.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.sass",
- "title": "Gulp Sass"
- },
- {
- "dir": "gulp.swig",
- "name": [
- "gulp",
- "swig"
- ],
- "pkg": {
- "name": "gulp.swig",
- "version": "1.0.0",
- "description": "Gulp & Swig Templates",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^1.3.3",
- "gulp-swig": "^0.7.4"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.swig",
- "title": "Gulp Swig"
- },
- {
- "dir": "gulp.task.sequence",
- "name": [
- "gulp",
- "task",
- "sequence"
- ],
- "pkg": {
- "name": "gulp.sass",
- "version": "1.0.0",
- "description": "Gulp, SASS + Slow running tasks",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^1.3.3",
- "through2": "^0.6.3"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/gulp.task.sequence",
- "title": "Gulp Task Sequence"
- },
- {
- "dir": "html.injection",
- "name": [
- "html",
- "injection"
- ],
- "pkg": {
- "name": "bs-recipes-html-injection",
- "version": "1.0.0",
- "description": "HTML/CSS injection example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "devDependencies": {
- "bs-html-injector": "^2.0.3",
- "browser-sync": "^2.1.6"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/html.injection",
- "title": "Html Injection"
- },
- {
- "dir": "middleware.css.injection",
- "name": [
- "middleware",
- "css",
- "injection"
- ],
- "pkg": {
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Middleware + CSS example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6",
- "less": "^2.4.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/middleware.css.injection",
- "title": "Middleware Css Injection"
- },
- {
- "dir": "proxy.custom-css",
- "name": [
- "proxy",
- "custom-css"
- ],
- "pkg": {
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Proxy example + injecting custom css file",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.11.2"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/proxy.custom-css",
- "title": "Proxy Custom-css"
- },
- {
- "dir": "server",
- "name": [
- "server"
- ],
- "pkg": {
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Server example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/server",
- "title": "Server"
- },
- {
- "dir": "server.gzipped.assets",
- "name": [
- "server",
- "gzipped",
- "assets"
- ],
- "pkg": {
- "name": "bs-recipes-server-with-gzipped-assets",
- "version": "1.0.0",
- "description": "Server with pre-gzipped assets example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.4.0",
- "connect-gzip-static": "^1.0.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/server.gzipped.assets",
- "title": "Server Gzipped Assets"
- },
- {
- "dir": "server.includes",
- "name": [
- "server",
- "includes"
- ],
- "pkg": {
- "name": "bs-recipes-server-includes",
- "version": "1.0.0",
- "description": "Server includes example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/server.includes",
- "title": "Server Includes"
- },
- {
- "dir": "server.middleware",
- "name": [
- "server",
- "middleware"
- ],
- "pkg": {
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Server + Logging + History API fallback middlewares Example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6",
- "connect-logger": "0.0.1",
- "connect-history-api-fallback": "^1.1.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/server.middleware",
- "title": "Server Middleware"
- },
- {
- "dir": "webpack.babel",
- "name": [
- "webpack",
- "babel"
- ],
- "pkg": {
- "name": "webpack.babel",
- "version": "1.0.0",
- "description": "Webpack + Babel",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node app"
- },
- "dependencies": {},
- "devDependencies": {
- "babel-core": "^6.1.2",
- "babel-loader": "^6.1.0",
- "babel-plugin-transform-runtime": "^6.1.2",
- "babel-preset-es2015": "^6.1.2",
- "babel-preset-stage-0": "^6.1.2",
- "browser-sync": "^2.8.0",
- "bs-fullscreen-message": "^1.0.0",
- "strip-ansi": "^3.0.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.babel",
- "title": "Webpack Babel"
- },
- {
- "dir": "webpack.monkey-hot-loader",
- "name": [
- "webpack",
- "monkey-hot-loader"
- ],
- "pkg": {
- "name": "webpack.monkey-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + Monkey Hot Loader",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "browser-sync": "^2.8.0",
- "monkey-hot-loader": "0.0.3",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^1.1.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.monkey-hot-loader",
- "title": "Webpack Monkey-hot-loader"
- },
- {
- "dir": "webpack.preact-hot-loader",
- "name": [
- "webpack",
- "preact-hot-loader"
- ],
- "pkg": {
- "name": "webpack.preact-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + Preact Hot Loader",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node .",
- "build": "webpack"
- },
- "dependencies": {
- "babel": "^6.5.2",
- "babel-core": "^6.14.0",
- "babel-eslint": "^7.0.0",
- "babel-loader": "^6.2.5",
- "babel-plugin-transform-decorators-legacy": "^1.3.4",
- "babel-plugin-transform-react-jsx": "^6.8.0",
- "babel-preset-es2015": "^6.14.0",
- "babel-register": "^6.14.0",
- "babel-runtime": "^6.11.6",
- "browser-sync": "^2.8.0",
- "compression-webpack-plugin": "^0.3.2",
- "preact": "^6.4.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^1.1.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.preact-hot-loader",
- "title": "Webpack Preact-hot-loader"
- },
- {
- "dir": "webpack.react-hot-loader",
- "name": [
- "webpack",
- "react-hot-loader"
- ],
- "pkg": {
- "name": "webpack.react-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + React Hot Loader",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "babel-core": "^6.21.0",
- "babel-loader": "^6.2.10",
- "babel-preset-es2015": "^6.9.0",
- "babel-preset-react": "^6.16.0",
- "browser-sync": "^2.8.0",
- "react": "^15.4.1",
- "react-dom": "^15.4.1",
- "react-hot-loader": "^1.2.8",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^2.13.2"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.react-hot-loader",
- "title": "Webpack React-hot-loader"
- },
- {
- "dir": "webpack.react-transform-hmr",
- "name": [
- "webpack",
- "react-transform-hmr"
- ],
- "pkg": {
- "name": "webpack.react-transform-hmr",
- "version": "1.0.0",
- "description": "Webpack + React Transform HMR",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "babel-core": "^6.21.0",
- "babel-loader": "^6.2.10",
- "babel-plugin-react-transform": "^2.0.2",
- "babel-preset-es2015": "^6.9.0",
- "babel-preset-react": "^6.16.0",
- "browser-sync": "^2.8.0",
- "react": "^15.4.1",
- "react-dom": "^15.4.1",
- "react-transform-hmr": "^1.0.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^2.13.2"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.react-transform-hmr",
- "title": "Webpack React-transform-hmr"
- },
- {
- "dir": "webpack.typescript",
- "name": [
- "webpack",
- "typescript"
- ],
- "pkg": {
- "name": "webpack.typescript",
- "version": "1.0.0",
- "description": "Webpack + TypeScript",
- "main": "app.js",
- "author": "Shane Osbourne and John Lindquist",
- "license": "MIT",
- "scripts": {
- "start": "node app"
- },
- "dependencies": {},
- "devDependencies": {
- "ts-loader": "^0.8.1",
- "typescript": "^1.7.5",
- "browser-sync": "^2.8.0",
- "bs-fullscreen-message": "^1.0.0",
- "strip-ansi": "^3.0.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.typescript",
- "title": "Webpack Typescript"
- },
- {
- "dir": "webpack.typescript.react",
- "name": [
- "webpack",
- "typescript",
- "react"
- ],
- "pkg": {
- "name": "webpack.typescript.react",
- "version": "1.0.0",
- "description": "Webpack, TypeScript + React",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node app",
- "build": "webpack",
- "preview": "npm run build && node preview"
- },
- "dependencies": {},
- "devDependencies": {
- "browser-sync": "^2.8.0",
- "bs-fullscreen-message": "^1.0.0",
- "compression": "1.6.1",
- "react": "0.14.7",
- "react-dom": "0.14.7",
- "react-lite": "0.15.3",
- "strip-ansi": "^3.0.0",
- "ts-loader": "^0.8.1",
- "typescript": "^1.7.5",
- "typings": "0.7.9",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0"
- }
- },
- "link": "https://github.com/Browsersync/recipes/tree/master/recipes/webpack.typescript.react",
- "title": "Webpack Typescript React"
- }
-]
\ No newline at end of file
diff --git a/node_modules/bs-recipes/package.json b/node_modules/bs-recipes/package.json
deleted file mode 100644
index e597d08..0000000
--- a/node_modules/bs-recipes/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "bs-recipes@1.3.4",
- "scope": null,
- "escapedName": "bs-recipes",
- "name": "bs-recipes",
- "rawSpec": "1.3.4",
- "spec": "1.3.4",
- "type": "version"
- },
- "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync"
- ]
- ],
- "_from": "bs-recipes@1.3.4",
- "_id": "bs-recipes@1.3.4",
- "_inCache": true,
- "_location": "/bs-recipes",
- "_nodeVersion": "6.8.1",
- "_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/bs-recipes-1.3.4.tgz_1483691988195_0.5061966790817678"
- },
- "_npmUser": {
- "name": "shakyshane",
- "email": "shakyshane@gmail.com"
- },
- "_npmVersion": "3.10.8",
- "_phantomChildren": {},
- "_requested": {
- "raw": "bs-recipes@1.3.4",
- "scope": null,
- "escapedName": "bs-recipes",
- "name": "bs-recipes",
- "rawSpec": "1.3.4",
- "spec": "1.3.4",
- "type": "version"
- },
- "_requiredBy": [
- "/browser-sync"
- ],
- "_resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
- "_shasum": "0d2d4d48a718c8c044769fdc4f89592dc8b69585",
- "_shrinkwrap": null,
- "_spec": "bs-recipes@1.3.4",
- "_where": "/Users/rajush/DEVELOPMENT/Github/angular-dropdown-multiselect/node_modules/browser-sync",
- "author": {
- "name": "Shane Osbourne"
- },
- "bugs": {
- "url": "https://github.com/browsersync/recipes/issues"
- },
- "dependencies": {},
- "description": "Fully working project examples showing how to use BrowserSync in various ways",
- "devDependencies": {
- "crossbow": "^0.4.5",
- "node-dir": "^0.1.6"
- },
- "directories": {},
- "dist": {
- "shasum": "0d2d4d48a718c8c044769fdc4f89592dc8b69585",
- "tarball": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz"
- },
- "files": [
- "recipes",
- "index.js",
- "manifest.json"
- ],
- "gitHead": "cd5056d3c6cf3cec71cec78f79fff9f48b80931e",
- "homepage": "http://www.browsersync.io/docs/recipes/",
- "license": "ISC",
- "main": "index.js",
- "maintainers": [
- {
- "name": "shakyshane",
- "email": "shakyshane@gmail.com"
- }
- ],
- "name": "bs-recipes",
- "optionalDependencies": {},
- "readme": "ERROR: No README data found!",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/browsersync/recipes.git"
- },
- "scripts": {
- "build": "node crossbow.js",
- "clean:nm": "find ./recipes -name node_modules | xargs rm -rf",
- "clean:other": "find . -name .sass-cache | xargs rm -rf && find . -name .idea | xargs rm -rf",
- "prepublish": "npm run clean:nm && npm run clean:other",
- "test": "npm run-script build"
- },
- "version": "1.3.4"
-}
diff --git a/node_modules/bs-recipes/readme.md b/node_modules/bs-recipes/readme.md
deleted file mode 100644
index 8a00751..0000000
--- a/node_modules/bs-recipes/readme.md
+++ /dev/null
@@ -1,97 +0,0 @@
-## Browsersync recipes.
-
-There are endless amounts of possible integrations and workflow scenarios when using Browsersync, so this project is an
-attempt to highlight as many of them as we can, whilst providing full, working examples.
-
-Here's what we have currently...
-
-- [Grunt, SASS, HTML/CSS injection example](https://github.com/Browsersync/recipes/tree/master/recipes/grunt.html.injection)
-- [Grunt & SASS](https://github.com/Browsersync/recipes/tree/master/recipes/grunt.sass)
-- [Grunt, SASS & Autoprefixer](https://github.com/Browsersync/recipes/tree/master/recipes/grunt.sass.autoprefixer)
-- [Browserify, Babelify + Watchify + Sourcemaps Example](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.browserify)
-- [Gulp, SASS + Pug Templates](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.pug)
-- [Gulp & Ruby SASS](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.ruby.sass)
-- [Gulp & SASS](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.sass)
-- [Gulp & Swig Templates](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.swig)
-- [Gulp, SASS + Slow running tasks](https://github.com/Browsersync/recipes/tree/master/recipes/gulp.task.sequence)
-- [HTML/CSS injection example](https://github.com/Browsersync/recipes/tree/master/recipes/html.injection)
-- [Middleware + CSS example](https://github.com/Browsersync/recipes/tree/master/recipes/middleware.css.injection)
-- [Proxy example + injecting custom css file](https://github.com/Browsersync/recipes/tree/master/recipes/proxy.custom-css)
-- [Server example](https://github.com/Browsersync/recipes/tree/master/recipes/server)
-- [Server with pre-gzipped assets example](https://github.com/Browsersync/recipes/tree/master/recipes/server.gzipped.assets)
-- [Server includes example](https://github.com/Browsersync/recipes/tree/master/recipes/server.includes)
-- [Server + Logging + History API fallback middlewares Example](https://github.com/Browsersync/recipes/tree/master/recipes/server.middleware)
-- [Webpack + Babel](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.babel)
-- [Webpack + Monkey Hot Loader](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.monkey-hot-loader)
-- [Webpack + Preact Hot Loader](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.preact-hot-loader)
-- [Webpack + React Hot Loader](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.react-hot-loader)
-- [Webpack + React Transform HMR](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.react-transform-hmr)
-- [Webpack + TypeScript](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.typescript)
-- [Webpack, TypeScript + React](https://github.com/Browsersync/recipes/tree/master/recipes/webpack.typescript.react)
-
-... each one is a full, working example - just have a look at the `readme.md` in each one for installation
-instructions.
-
-
-### Contributions / Feedback
-
-Spotted an error? Couldn't get one of the examples running? Have your own sweet setup that you want to show off to the world?
-We'd love to receive your feedback and contributions - so please get in touch! We aim to make this project the canonical source
-of example projects & code snippets related to running Browsersync.
-
-### How to contribute an example
-
-First thing you should do, is take a look at our [simplest example here](https://github.com/Browsersync/recipes/tree/master/recipes/server) -
-this will give you a great head-start on setting up your code.
-
-Then, `fork` this repo and `clone` your fork down to your local machine. Now create a new folder inside `recipes`
-(note the naming structure). This is where you create your awesome example. You're free to do as you like,
-but there are a couple of rules you'll need to follow to ensure the project can build.
-
-**Required Files**
-
-- `package.json` (see below for requirements)
-- `app.js` (or any JS file showing the example)
-- `./app` directory. Always include the minimum HTML, JS & CSS needed to prove your example.
-
-**Do NOT include**
-- `readme.md` (this is created dynamically for you)
-- any other files that are not related to your example.
-
-
-### package.json requirements
-
-
-**start command**: For consistency, ensure your example can be run with the command `npm start`. To
-do this, you just need to provide something along these lines:
-
-```json
-"scripts": {
- "start": "node app.js"
-},
-```
-
-**main file**: We inline your main Javascript file into the `readme.md`, so
-don't miss this field.
-
-```json
-"main": "app.js" // or gulpfile.js etc
-```
-
-**description**: We use this as the Title. So make it short and descriptive, such as
-
-```json
-"description": "Server example"
-```
-
-### Finally, build.
-After you've added your example in the recipes folder, return to the root and run
-
-```bash
-npm install && npm run build
-```
-
-This will install [Crossbow.js](https://github.com/shakyShane/crossbow.js) and compile the project.
-Commit everything that has changed and push it up to your fork. Send a Pull Request when you're
-ready, or if you'd like us to have a look over your code before that, just ping us [twitter](https://twitter.com/browsersync) and we'll
-take a look!
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/Gruntfile.js b/node_modules/bs-recipes/recipes/grunt.html.injection/Gruntfile.js
deleted file mode 100644
index ed38967..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/Gruntfile.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// This shows a full config file!
-module.exports = function (grunt) {
- grunt.initConfig({
- watch: {
- files: 'app/scss/**/*.scss',
- tasks: ['bsReload:css']
- },
- sass: {
- dev: {
- files: {
- 'app/css/main.css': 'app/scss/main.scss'
- }
- }
- },
- browserSync: {
- dev: {
- options: {
- watchTask: true,
- server: './app',
- plugins: [
- {
- module: "bs-html-injector",
- options: {
- files: "./app/*.html"
- }
- }
- ]
- }
- }
- },
- bsReload: {
- css: "main.css"
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-contrib-watch');
- grunt.loadNpmTasks('grunt-browser-sync');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/app/css/main.css b/node_modules/bs-recipes/recipes/grunt.html.injection/app/css/main.css
deleted file mode 100644
index 0e373dc..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/app/css/main.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
- background: white;
- color: black;
-}
-
-p.lede {
- font-size: 2em;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/app/index.html b/node_modules/bs-recipes/recipes/grunt.html.injection/app/index.html
deleted file mode 100644
index db834d3..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/app/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Browsersync Grunt + HTML Injection Example
-
-
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/desc.md b/node_modules/bs-recipes/recipes/grunt.html.injection/desc.md
deleted file mode 100644
index 8b0b58e..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/desc.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-To see the live HTML injecting, along with CSS injection, simply perform changes to either `index.html` or `css/main.css`
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/package.json b/node_modules/bs-recipes/recipes/grunt.html.injection/package.json
deleted file mode 100644
index 3e5b1e5..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "bs-recipes-grunt-html-injection",
- "version": "1.0.0",
- "description": "Grunt, SASS, HTML/CSS injection example",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "license": "MIT",
- "devDependencies": {
- "bs-html-injector": "3.0.1",
- "grunt": "^0.4.5",
- "grunt-browser-sync": "^2.0.0",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/grunt.html.injection/readme.md b/node_modules/bs-recipes/recipes/grunt.html.injection/readme.md
deleted file mode 100644
index fb74eb7..0000000
--- a/node_modules/bs-recipes/recipes/grunt.html.injection/readme.md
+++ /dev/null
@@ -1,79 +0,0 @@
-#Browsersync - Grunt, SASS, HTML/CSS injection example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/grunt.html.injection
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-To see the live HTML injecting, along with CSS injection, simply perform changes to either `index.html` or `css/main.css`
-
-### Preview of `Gruntfile.js`:
-```js
-// This shows a full config file!
-module.exports = function (grunt) {
- grunt.initConfig({
- watch: {
- files: 'app/scss/**/*.scss',
- tasks: ['bsReload:css']
- },
- sass: {
- dev: {
- files: {
- 'app/css/main.css': 'app/scss/main.scss'
- }
- }
- },
- browserSync: {
- dev: {
- options: {
- watchTask: true,
- server: './app',
- plugins: [
- {
- module: "bs-html-injector",
- options: {
- files: "./app/*.html"
- }
- }
- ]
- }
- }
- },
- bsReload: {
- css: "main.css"
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-contrib-watch');
- grunt.loadNpmTasks('grunt-browser-sync');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
-```
-
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/Gruntfile.js b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/Gruntfile.js
deleted file mode 100644
index 4cb97a1..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/Gruntfile.js
+++ /dev/null
@@ -1,62 +0,0 @@
-module.exports = function (grunt) {
- grunt.initConfig({
- dirs: {
- css: "app/css",
- scss: "app/scss"
- },
- watch: {
- options: {
- spawn: false
- },
- sass: {
- files: '<%= dirs.scss %>/**/*.scss',
- tasks: ['sass', 'autoprefixer', 'bsReload:css']
- },
- html: {
- files: 'app/*.html',
- tasks: ['bsReload:all']
- }
- },
- sass: {
- dev: {
- files: {
- '<%= dirs.css %>/main.css': '<%= dirs.scss %>/main.scss'
- }
- }
- },
- autoprefixer: {
- options: {
- browsers: ['last 5 versions', 'ie 8']
- },
- css: {
- src: '<%= dirs.css %>/main.css',
- dest: '<%= dirs.css %>/main.css'
- }
- },
- browserSync: {
- dev: {
- options: {
- server: "./app",
- background: true
- }
- }
- },
- bsReload: {
- css: {
- reload: "main.css"
- },
- all: {
- reload: true
- }
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-autoprefixer');
- grunt.loadNpmTasks('grunt-browser-sync');
- grunt.loadNpmTasks('grunt-contrib-watch');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/css/main.css b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/css/main.css
deleted file mode 100644
index 1da050e..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/css/main.css
+++ /dev/null
@@ -1,44 +0,0 @@
-@-webkit-keyframes bounce {
- 0%, 20%, 53%, 80%, 100% {
- -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0); }
- 40%, 43% {
- -webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- -webkit-transform: translate3d(0, -30px, 0);
- transform: translate3d(0, -30px, 0); }
- 70% {
- -webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- -webkit-transform: translate3d(0, -15px, 0);
- transform: translate3d(0, -15px, 0); }
- 90% {
- -webkit-transform: translate3d(0, -4px, 0);
- transform: translate3d(0, -4px, 0); } }
-@keyframes bounce {
- 0%, 20%, 53%, 80%, 100% {
- -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0); }
- 40%, 43% {
- -webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- -webkit-transform: translate3d(0, -30px, 0);
- transform: translate3d(0, -30px, 0); }
- 70% {
- -webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
- -webkit-transform: translate3d(0, -15px, 0);
- transform: translate3d(0, -15px, 0); }
- 90% {
- -webkit-transform: translate3d(0, -4px, 0);
- transform: translate3d(0, -4px, 0); } }
-.bounce {
- -webkit-animation-name: bounce;
- animation-name: bounce;
- -webkit-transform-origin: center bottom;
- -ms-transform-origin: center bottom;
- transform-origin: center bottom; }
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/index.html b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/index.html
deleted file mode 100644
index 1979179..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync, Grunt + SASS Example
-
-
-
- Browsersync, Grunt + SASS Example
-
-
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/scss/main.scss b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/scss/main.scss
deleted file mode 100644
index 157e844..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/scss/main.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-@keyframes bounce {
- 0%, 20%, 53%, 80%, 100% {
- transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
- transform: translate3d(0,0,0);
- }
-
- 40%, 43% {
- transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
- transform: translate3d(0, -30px, 0);
- }
-
- 70% {
- transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
- transform: translate3d(0, -15px, 0);
- }
-
- 90% {
- transform: translate3d(0,-4px,0);
- }
-}
-
-.bounce {
- animation-name: bounce;
- transform-origin: center bottom;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/desc.md b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/desc.md
deleted file mode 100644
index 3cf331b..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/desc.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
-This example shows how you can chain potentially slow-running tasks, but still achieve CSS
-Injection. The trick, as seen below, is to use the `bsReload` task that now comes
-bundled with `grunt-browser-sync` since `2.1.0`
-
-Don't forget the `spawn: false` option for the watch task - it's a requirement
-that allows Browsersync to work correctly
-
-```js
-watch: {
- options: {
- spawn: false // Important, don't remove this!
- },
- files: 'app/**/*.scss',
- tasks: ['sass', 'autoprefixer', 'bsReload:css']
-},
-```
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/package.json b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/package.json
deleted file mode 100644
index aa38b7f..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "grunt.sass.autoprefixer",
- "version": "1.0.0",
- "description": "Grunt, SASS & Autoprefixer",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "grunt": "^0.4.5",
- "grunt-autoprefixer": "^2.2.0",
- "grunt-browser-sync": "^2.1.1",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/readme.md b/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/readme.md
deleted file mode 100644
index b3f5721..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/readme.md
+++ /dev/null
@@ -1,114 +0,0 @@
-#Browsersync - Grunt, SASS & Autoprefixer
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/grunt.sass.autoprefixer
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example shows how you can chain potentially slow-running tasks, but still achieve CSS
-Injection. The trick, as seen below, is to use the `bsReload` task that now comes
-bundled with `grunt-browser-sync` since `2.1.0`
-
-Don't forget the `spawn: false` option for the watch task - it's a requirement
-that allows Browsersync to work correctly
-
-```js
-watch: {
- options: {
- spawn: false // Important, don't remove this!
- },
- files: 'app/**/*.scss',
- tasks: ['sass', 'autoprefixer', 'bsReload:css']
-},
-```
-
-
-### Preview of `Gruntfile.js`:
-```js
-module.exports = function (grunt) {
- grunt.initConfig({
- dirs: {
- css: "app/css",
- scss: "app/scss"
- },
- watch: {
- options: {
- spawn: false
- },
- sass: {
- files: '<%= dirs.scss %>/**/*.scss',
- tasks: ['sass', 'autoprefixer', 'bsReload:css']
- },
- html: {
- files: 'app/*.html',
- tasks: ['bsReload:all']
- }
- },
- sass: {
- dev: {
- files: {
- '<%= dirs.css %>/main.css': '<%= dirs.scss %>/main.scss'
- }
- }
- },
- autoprefixer: {
- options: {
- browsers: ['last 5 versions', 'ie 8']
- },
- css: {
- src: '<%= dirs.css %>/main.css',
- dest: '<%= dirs.css %>/main.css'
- }
- },
- browserSync: {
- dev: {
- options: {
- server: "./app",
- background: true
- }
- }
- },
- bsReload: {
- css: {
- reload: "main.css"
- },
- all: {
- reload: true
- }
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-autoprefixer');
- grunt.loadNpmTasks('grunt-browser-sync');
- grunt.loadNpmTasks('grunt-contrib-watch');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
-```
-
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/Gruntfile.js b/node_modules/bs-recipes/recipes/grunt.sass/Gruntfile.js
deleted file mode 100644
index 57197ae..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/Gruntfile.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// This shows a full config file!
-module.exports = function (grunt) {
- grunt.initConfig({
- watch: {
- files: 'app/scss/**/*.scss',
- tasks: ['sass']
- },
- sass: {
- dev: {
- files: {
- 'app/css/main.css': 'app/scss/main.scss'
- }
- }
- },
- browserSync: {
- dev: {
- bsFiles: {
- src : [
- 'app/css/*.css',
- 'app/*.html'
- ]
- },
- options: {
- watchTask: true,
- server: './app'
- }
- }
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-contrib-watch');
- grunt.loadNpmTasks('grunt-browser-sync');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/app/css/main.css b/node_modules/bs-recipes/recipes/grunt.sass/app/css/main.css
deleted file mode 100644
index c8a4cd6..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/app/css/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: orange; }
-
-/*# sourceMappingURL=main.css.map */
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/app/index.html b/node_modules/bs-recipes/recipes/grunt.sass/app/index.html
deleted file mode 100644
index 1979179..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync, Grunt + SASS Example
-
-
-
- Browsersync, Grunt + SASS Example
-
-
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/app/scss/main.scss b/node_modules/bs-recipes/recipes/grunt.sass/app/scss/main.scss
deleted file mode 100644
index 62d8214..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/app/scss/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: orange;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/desc.md b/node_modules/bs-recipes/recipes/grunt.sass/desc.md
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/package.json b/node_modules/bs-recipes/recipes/grunt.sass/package.json
deleted file mode 100644
index c04895a..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "grunt.sass",
- "version": "1.0.0",
- "description": "Grunt & SASS",
- "main": "Gruntfile.js",
- "scripts": {
- "start": "grunt"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "grunt": "^0.4.5",
- "grunt-browser-sync": "^2.0.0",
- "grunt-contrib-sass": "^0.9.2",
- "grunt-contrib-watch": "^0.6.1"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/grunt.sass/readme.md b/node_modules/bs-recipes/recipes/grunt.sass/readme.md
deleted file mode 100644
index 7cc34c6..0000000
--- a/node_modules/bs-recipes/recipes/grunt.sass/readme.md
+++ /dev/null
@@ -1,72 +0,0 @@
-#Browsersync - Grunt & SASS
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/grunt.sass
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-### Preview of `Gruntfile.js`:
-```js
-// This shows a full config file!
-module.exports = function (grunt) {
- grunt.initConfig({
- watch: {
- files: 'app/scss/**/*.scss',
- tasks: ['sass']
- },
- sass: {
- dev: {
- files: {
- 'app/css/main.css': 'app/scss/main.scss'
- }
- }
- },
- browserSync: {
- dev: {
- bsFiles: {
- src : [
- 'app/css/*.css',
- 'app/*.html'
- ]
- },
- options: {
- watchTask: true,
- server: './app'
- }
- }
- }
- });
-
- // load npm tasks
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-contrib-watch');
- grunt.loadNpmTasks('grunt-browser-sync');
-
- // define default task
- grunt.registerTask('default', ['browserSync', 'watch']);
-};
-```
-
diff --git a/node_modules/bs-recipes/recipes/gulp.browserify/app/css/main.css b/node_modules/bs-recipes/recipes/gulp.browserify/app/css/main.css
deleted file mode 100644
index ea1517e..0000000
--- a/node_modules/bs-recipes/recipes/gulp.browserify/app/css/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: white;
- color: black;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.browserify/app/index.html b/node_modules/bs-recipes/recipes/gulp.browserify/app/index.html
deleted file mode 100644
index 9ec1d22..0000000
--- a/node_modules/bs-recipes/recipes/gulp.browserify/app/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- Browsersync Browserify Example
-
-
-
- Browsersync Browserify Example
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/app.js b/node_modules/bs-recipes/recipes/gulp.browserify/app/js/app.js
deleted file mode 100644
index b7267ea..0000000
--- a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/app.js
+++ /dev/null
@@ -1 +0,0 @@
-let app = 'awesome';
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/.npmignore b/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/.npmignore
deleted file mode 100644
index 4c43fe6..0000000
--- a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-*.js
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/bundle.js.map b/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/bundle.js.map
deleted file mode 100644
index 40ba722..0000000
--- a/node_modules/bs-recipes/recipes/gulp.browserify/app/js/dist/bundle.js.map
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "version": 3,
- "sources": [
- "node_modules/browserify/node_modules/browser-pack/_prelude.js",
- "app.js"
- ],
- "names": [],
- "mappings": "AAAA;;;ACAA,IAAI,GAAG,GAAG,SAAS,CAAC;AACpB,SAAS",
- "file": "generated.js",
- "sourceRoot": "",
- "sourcesContent": [
- "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o
-
-
-
- Browsersync, Gulp + Ruby SASS Example
-
-
-
- Browsersync, Gulp + Ruby SASS Example
-
-
diff --git a/node_modules/bs-recipes/recipes/gulp.ruby.sass/app/scss/main.scss b/node_modules/bs-recipes/recipes/gulp.ruby.sass/app/scss/main.scss
deleted file mode 100644
index cb071b7..0000000
--- a/node_modules/bs-recipes/recipes/gulp.ruby.sass/app/scss/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: white;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.ruby.sass/desc.md b/node_modules/bs-recipes/recipes/gulp.ruby.sass/desc.md
deleted file mode 100644
index f1b5641..0000000
--- a/node_modules/bs-recipes/recipes/gulp.ruby.sass/desc.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-This example highlights both the stream support for injecting CSS, aswell
-as the support for calling `reload` directly following html changes.
-
-We also need to filter out any source maps created by ruby-sass.
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.ruby.sass/gulpfile.js b/node_modules/bs-recipes/recipes/gulp.ruby.sass/gulpfile.js
deleted file mode 100644
index 4e36934..0000000
--- a/node_modules/bs-recipes/recipes/gulp.ruby.sass/gulpfile.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var filter = require('gulp-filter');
-var sass = require('gulp-ruby-sass');
-var sourcemaps = require('gulp-sourcemaps');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-/**
- * Kick off the sass stream with source maps + error handling
- */
-function sassStream () {
- return sass('app/scss', {sourcemap: true})
- .on('error', function (err) {
- console.error('Error!', err.message);
- })
- .pipe(sourcemaps.write('./', {
- includeContent: false,
- sourceRoot: '/app/scss'
- }));
-}
-
-/**
- * Start the Browsersync Static Server + Watch files
- */
-gulp.task('serve', ['sass'], function() {
-
- browserSync({
- server: "./app"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html).on('change', reload);
-});
-
-/**
- * Compile sass, filter the results, inject CSS into all browsers
- */
-gulp.task('sass', function() {
- return sassStream()
- .pipe(gulp.dest(src.css))
- .pipe(filter("**/*.css"))
- .pipe(reload({stream: true}));
-});
-
-/**
- * Default task
- */
-gulp.task('default', ['serve']);
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.ruby.sass/package.json b/node_modules/bs-recipes/recipes/gulp.ruby.sass/package.json
deleted file mode 100644
index b852da3..0000000
--- a/node_modules/bs-recipes/recipes/gulp.ruby.sass/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "gulp.ruby.sass",
- "version": "1.0.0",
- "description": "Gulp & Ruby SASS",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-filter": "^2.0.2",
- "gulp-ruby-sass": "^1.0.1",
- "gulp-sass": "^1.3.3",
- "gulp-sourcemaps": "^1.5.1"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/gulp.ruby.sass/readme.md b/node_modules/bs-recipes/recipes/gulp.ruby.sass/readme.md
deleted file mode 100644
index a5d54a4..0000000
--- a/node_modules/bs-recipes/recipes/gulp.ruby.sass/readme.md
+++ /dev/null
@@ -1,93 +0,0 @@
-#Browsersync - Gulp & Ruby SASS
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/gulp.ruby.sass
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example highlights both the stream support for injecting CSS, aswell
-as the support for calling `reload` directly following html changes.
-
-We also need to filter out any source maps created by ruby-sass.
-
-### Preview of `gulpfile.js`:
-```js
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var filter = require('gulp-filter');
-var sass = require('gulp-ruby-sass');
-var sourcemaps = require('gulp-sourcemaps');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-/**
- * Kick off the sass stream with source maps + error handling
- */
-function sassStream () {
- return sass('app/scss', {sourcemap: true})
- .on('error', function (err) {
- console.error('Error!', err.message);
- })
- .pipe(sourcemaps.write('./', {
- includeContent: false,
- sourceRoot: '/app/scss'
- }));
-}
-
-/**
- * Start the Browsersync Static Server + Watch files
- */
-gulp.task('serve', ['sass'], function() {
-
- browserSync({
- server: "./app"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html).on('change', reload);
-});
-
-/**
- * Compile sass, filter the results, inject CSS into all browsers
- */
-gulp.task('sass', function() {
- return sassStream()
- .pipe(gulp.dest(src.css))
- .pipe(filter("**/*.css"))
- .pipe(reload({stream: true}));
-});
-
-/**
- * Default task
- */
-gulp.task('default', ['serve']);
-```
-
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/app/css/main.css b/node_modules/bs-recipes/recipes/gulp.sass/app/css/main.css
deleted file mode 100644
index 9e31394..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/app/css/main.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body {
- background: white; }
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/app/index.html b/node_modules/bs-recipes/recipes/gulp.sass/app/index.html
deleted file mode 100644
index 2f40e11..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync, Gulp + SASS Example
-
-
-
- Browsersync, Gulp + SASS Example
-
-
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/app/scss/main.scss b/node_modules/bs-recipes/recipes/gulp.sass/app/scss/main.scss
deleted file mode 100644
index cb071b7..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/app/scss/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: white;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/desc.md b/node_modules/bs-recipes/recipes/gulp.sass/desc.md
deleted file mode 100644
index 50a3093..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/desc.md
+++ /dev/null
@@ -1,3 +0,0 @@
-
-This example highlights both the stream support for injecting CSS, as well
-as the support for calling `reload` directly following html changes.
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/gulpfile.js b/node_modules/bs-recipes/recipes/gulp.sass/gulpfile.js
deleted file mode 100644
index 7f506d5..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/gulpfile.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var gulp = require('gulp');
-var browserSync = require('browser-sync').create();
-var sass = require('gulp-sass');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-// Static Server + watching scss/html files
-gulp.task('serve', ['sass'], function() {
-
- browserSync.init({
- server: "./app"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html).on('change', reload);
-});
-
-// Compile sass into CSS
-gulp.task('sass', function() {
- return gulp.src(src.scss)
- .pipe(sass())
- .pipe(gulp.dest(src.css))
- .pipe(reload({stream: true}));
-});
-
-gulp.task('default', ['serve']);
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/package.json b/node_modules/bs-recipes/recipes/gulp.sass/package.json
deleted file mode 100644
index 34caa70..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "gulp.sass",
- "version": "1.0.0",
- "description": "Gulp & SASS",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^2.2.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/gulp.sass/readme.md b/node_modules/bs-recipes/recipes/gulp.sass/readme.md
deleted file mode 100644
index 11287c3..0000000
--- a/node_modules/bs-recipes/recipes/gulp.sass/readme.md
+++ /dev/null
@@ -1,70 +0,0 @@
-#Browsersync - Gulp & SASS
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/gulp.sass
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example highlights both the stream support for injecting CSS, as well
-as the support for calling `reload` directly following html changes.
-
-
-### Preview of `gulpfile.js`:
-```js
-var gulp = require('gulp');
-var browserSync = require('browser-sync').create();
-var sass = require('gulp-sass');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-// Static Server + watching scss/html files
-gulp.task('serve', ['sass'], function() {
-
- browserSync.init({
- server: "./app"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html).on('change', reload);
-});
-
-// Compile sass into CSS
-gulp.task('sass', function() {
- return gulp.src(src.scss)
- .pipe(sass())
- .pipe(gulp.dest(src.css))
- .pipe(reload({stream: true}));
-});
-
-gulp.task('default', ['serve']);
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/.npmignore b/node_modules/bs-recipes/recipes/gulp.swig/.npmignore
deleted file mode 100644
index 7773828..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-dist/
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/app/css/main.css b/node_modules/bs-recipes/recipes/gulp.swig/app/css/main.css
deleted file mode 100644
index 9e31394..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/app/css/main.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body {
- background: white; }
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/app/index.html b/node_modules/bs-recipes/recipes/gulp.swig/app/index.html
deleted file mode 100644
index db1d368..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync, Gulp + Swig templates
-
-
-
- Browsersync, Gulp + Swig templates
-
-
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/app/scss/main.scss b/node_modules/bs-recipes/recipes/gulp.swig/app/scss/main.scss
deleted file mode 100644
index cb071b7..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/app/scss/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: white;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/desc.md b/node_modules/bs-recipes/recipes/gulp.swig/desc.md
deleted file mode 100644
index 4b5c053..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/desc.md
+++ /dev/null
@@ -1,3 +0,0 @@
-This example will build HTML files from `./app` with `gulp-swig`
-and place them into the `dist` folder. Browsersync then serves from that
-folder and reloads after the templates are compiled.
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/gulpfile.js b/node_modules/bs-recipes/recipes/gulp.swig/gulpfile.js
deleted file mode 100644
index a48e3b3..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/gulpfile.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var sass = require('gulp-sass');
-var swig = require('gulp-swig');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-// Static Server + watching scss/html files
-gulp.task('serve', ['sass'], function() {
-
- browserSync({
- server: "./dist"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html, ['templates']);
-});
-
-// Swig templates
-gulp.task('templates', function() {
- return gulp.src(src.html)
- .pipe(swig())
- .pipe(gulp.dest('./dist'))
- .on("end", reload);
-});
-
-// Compile sass into CSS
-gulp.task('sass', function() {
- return gulp.src(src.scss)
- .pipe(sass())
- .pipe(gulp.dest(src.css))
- .pipe(reload({stream: true}));
-});
-
-gulp.task('default', ['serve']);
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/package.json b/node_modules/bs-recipes/recipes/gulp.swig/package.json
deleted file mode 100644
index 1d87870..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "gulp.swig",
- "version": "1.0.0",
- "description": "Gulp & Swig Templates",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^1.3.3",
- "gulp-swig": "^0.7.4"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/gulp.swig/readme.md b/node_modules/bs-recipes/recipes/gulp.swig/readme.md
deleted file mode 100644
index 9c7a157..0000000
--- a/node_modules/bs-recipes/recipes/gulp.swig/readme.md
+++ /dev/null
@@ -1,77 +0,0 @@
-#Browsersync - Gulp & Swig Templates
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/gulp.swig
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-This example will build HTML files from `./app` with `gulp-swig`
-and place them into the `dist` folder. Browsersync then serves from that
-folder and reloads after the templates are compiled.
-
-### Preview of `gulpfile.js`:
-```js
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var sass = require('gulp-sass');
-var swig = require('gulp-swig');
-var reload = browserSync.reload;
-
-var src = {
- scss: 'app/scss/*.scss',
- css: 'app/css',
- html: 'app/*.html'
-};
-
-// Static Server + watching scss/html files
-gulp.task('serve', ['sass'], function() {
-
- browserSync({
- server: "./dist"
- });
-
- gulp.watch(src.scss, ['sass']);
- gulp.watch(src.html, ['templates']);
-});
-
-// Swig templates
-gulp.task('templates', function() {
- return gulp.src(src.html)
- .pipe(swig())
- .pipe(gulp.dest('./dist'))
- .on("end", reload);
-});
-
-// Compile sass into CSS
-gulp.task('sass', function() {
- return gulp.src(src.scss)
- .pipe(sass())
- .pipe(gulp.dest(src.css))
- .pipe(reload({stream: true}));
-});
-
-gulp.task('default', ['serve']);
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/css/main.css b/node_modules/bs-recipes/recipes/gulp.task.sequence/app/css/main.css
deleted file mode 100644
index 9e31394..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/css/main.css
+++ /dev/null
@@ -1,2 +0,0 @@
-body {
- background: white; }
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/index.html b/node_modules/bs-recipes/recipes/gulp.task.sequence/app/index.html
deleted file mode 100644
index f378424..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync, Gulp, SASS + Slow tasks example
-
-
-
- Browsersync, Gulp, SASS + Slow tasks example
-
-
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/scss/main.scss b/node_modules/bs-recipes/recipes/gulp.task.sequence/app/scss/main.scss
deleted file mode 100644
index cb071b7..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/app/scss/main.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: white;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/desc.md b/node_modules/bs-recipes/recipes/gulp.task.sequence/desc.md
deleted file mode 100644
index 2169f5a..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/desc.md
+++ /dev/null
@@ -1,5 +0,0 @@
-
-This example highlights a common problem where you don't want to reload
- the browser until a 2 or more slow-running tasks have completed. The solution
- is to create the intermediate task that ensures `browserSync.reload` is not
- called until both slow tasks are complete.
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/gulpfile.js b/node_modules/bs-recipes/recipes/gulp.task.sequence/gulpfile.js
deleted file mode 100644
index d5427fd..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/gulpfile.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var sass = require('gulp-sass');
-var reload = browserSync.reload;
-var through = require("through2");
-
-/**
- * A slow task
- */
-gulp.task('slow1', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
-});
-
-/**
- * Another Slow task
- */
-gulp.task('slow2', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
-});
-
-/**
- * Separate task for the reaction to a file change
- */
-gulp.task('html-watch', ['slow1', 'slow2'], reload);
-
-/**
- * Sass task for live injecting into all browsers
- */
-gulp.task('sass', function () {
- return gulp.src('./app/scss/*.scss')
- .pipe(sass())
- .pipe(gulp.dest('./app/css'))
- .pipe(reload({stream: true}));
-});
-
-/**
- * Serve and watch the html files for changes
- */
-gulp.task('default', function () {
-
- browserSync({server: './app'});
-
- gulp.watch('./app/scss/*.scss', ['sass']);
- gulp.watch('./app/*.html', ['html-watch']);
-});
-
-/**
- * Simulate a slow task
- */
-function slowStream () {
- return through.obj(function (file, enc, cb) {
- this.push(file);
- setTimeout(cb, 2000);
- });
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/package.json b/node_modules/bs-recipes/recipes/gulp.task.sequence/package.json
deleted file mode 100644
index 442ecfd..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "gulp.sass",
- "version": "1.0.0",
- "description": "Gulp, SASS + Slow running tasks",
- "main": "gulpfile.js",
- "scripts": {
- "start": "gulp"
- },
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.2.0",
- "gulp": "^3.8.11",
- "gulp-sass": "^1.3.3",
- "through2": "^0.6.3"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/gulp.task.sequence/readme.md b/node_modules/bs-recipes/recipes/gulp.task.sequence/readme.md
deleted file mode 100644
index 2565a38..0000000
--- a/node_modules/bs-recipes/recipes/gulp.task.sequence/readme.md
+++ /dev/null
@@ -1,97 +0,0 @@
-#Browsersync - Gulp, SASS + Slow running tasks
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/gulp.task.sequence
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example highlights a common problem where you don't want to reload
- the browser until a 2 or more slow-running tasks have completed. The solution
- is to create the intermediate task that ensures `browserSync.reload` is not
- called until both slow tasks are complete.
-
-
-### Preview of `gulpfile.js`:
-```js
-var gulp = require('gulp');
-var browserSync = require('browser-sync');
-var sass = require('gulp-sass');
-var reload = browserSync.reload;
-var through = require("through2");
-
-/**
- * A slow task
- */
-gulp.task('slow1', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
-});
-
-/**
- * Another Slow task
- */
-gulp.task('slow2', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
-});
-
-/**
- * Separate task for the reaction to a file change
- */
-gulp.task('html-watch', ['slow1', 'slow2'], reload);
-
-/**
- * Sass task for live injecting into all browsers
- */
-gulp.task('sass', function () {
- return gulp.src('./app/scss/*.scss')
- .pipe(sass())
- .pipe(gulp.dest('./app/css'))
- .pipe(reload({stream: true}));
-});
-
-/**
- * Serve and watch the html files for changes
- */
-gulp.task('default', function () {
-
- browserSync({server: './app'});
-
- gulp.watch('./app/scss/*.scss', ['sass']);
- gulp.watch('./app/*.html', ['html-watch']);
-});
-
-/**
- * Simulate a slow task
- */
-function slowStream () {
- return through.obj(function (file, enc, cb) {
- this.push(file);
- setTimeout(cb, 2000);
- });
-}
-```
-
diff --git a/node_modules/bs-recipes/recipes/html.injection/app.js b/node_modules/bs-recipes/recipes/html.injection/app.js
deleted file mode 100644
index e198ff1..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/app.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Require Browsersync
- */
-var bs = require('browser-sync').create();
-
-/**
- * Run Browsersync with server config
- */
-bs.init({
- server: "app",
- files: ["app/css/*.css"],
- plugins: [
- {
- module: "bs-html-injector",
- options: {
- files: ["app/*.html"]
- }
- }
- ]
-});
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/html.injection/app/css/main.css b/node_modules/bs-recipes/recipes/html.injection/app/css/main.css
deleted file mode 100644
index 0e373dc..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/app/css/main.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
- background: white;
- color: black;
-}
-
-p.lede {
- font-size: 2em;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/html.injection/app/index.html b/node_modules/bs-recipes/recipes/html.injection/app/index.html
deleted file mode 100644
index 57cd4aa..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/app/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Browsersync Server Example
-
-
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/html.injection/desc.md b/node_modules/bs-recipes/recipes/html.injection/desc.md
deleted file mode 100644
index 8b0b58e..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/desc.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-To see the live HTML injecting, along with CSS injection, simply perform changes to either `index.html` or `css/main.css`
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/html.injection/package.json b/node_modules/bs-recipes/recipes/html.injection/package.json
deleted file mode 100644
index 6cd1e97..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "bs-recipes-html-injection",
- "version": "1.0.0",
- "description": "HTML/CSS injection example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "devDependencies": {
- "bs-html-injector": "^2.0.3",
- "browser-sync": "^2.1.6"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/html.injection/readme.md b/node_modules/bs-recipes/recipes/html.injection/readme.md
deleted file mode 100644
index d964585..0000000
--- a/node_modules/bs-recipes/recipes/html.injection/readme.md
+++ /dev/null
@@ -1,56 +0,0 @@
-#Browsersync - HTML/CSS injection example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/html.injection
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-To see the live HTML injecting, along with CSS injection, simply perform changes to either `index.html` or `css/main.css`
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var bs = require('browser-sync').create();
-
-/**
- * Run Browsersync with server config
- */
-bs.init({
- server: "app",
- files: ["app/css/*.css"],
- plugins: [
- {
- module: "bs-html-injector",
- options: {
- files: ["app/*.html"]
- }
- }
- ]
-});
-```
-
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/app.js b/node_modules/bs-recipes/recipes/middleware.css.injection/app.js
deleted file mode 100644
index f819cf2..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/app.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require("browser-sync");
-
-/**
- * Run the middleware on files that contain .less
- */
-function lessMiddleware (req, res, next) {
- var parsed = require("url").parse(req.url);
- if (parsed.pathname.match(/\.less$/)) {
- return less(parsed.pathname).then(function (o) {
- res.setHeader('Content-Type', 'text/css');
- res.end(o.css);
- });
- }
- next();
-}
-
-/**
- * Compile less
- */
-function less(src) {
- var f = require('fs').readFileSync('app' + src).toString();
- return require('less').render(f);
-}
-
-/**
- * Run Browsersync with less middleware
- */
-browserSync({
- files: "app/css/*.less",
- server: "app",
- injectFileTypes: ["less"],
- /**
- * Catch all requests, if any are for .less files, recompile on the fly and
- * send back a CSS response
- */
- middleware: lessMiddleware
-});
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/app/css/main.less b/node_modules/bs-recipes/recipes/middleware.css.injection/app/css/main.less
deleted file mode 100644
index 27da818..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/app/css/main.less
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: white;
- color: blue;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/app/index.html b/node_modules/bs-recipes/recipes/middleware.css.injection/app/index.html
deleted file mode 100644
index bab55d2..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync Server Example
-
-
-
- Browsersync Middleware CSS injection Example
-
-
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/desc.md b/node_modules/bs-recipes/recipes/middleware.css.injection/desc.md
deleted file mode 100644
index e226f76..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-- Perform changes to `app/css/main.less` to see live css injection
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/package.json b/node_modules/bs-recipes/recipes/middleware.css.injection/package.json
deleted file mode 100644
index 61486c0..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Middleware + CSS example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6",
- "less": "^2.4.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/middleware.css.injection/readme.md b/node_modules/bs-recipes/recipes/middleware.css.injection/readme.md
deleted file mode 100644
index 042999b..0000000
--- a/node_modules/bs-recipes/recipes/middleware.css.injection/readme.md
+++ /dev/null
@@ -1,75 +0,0 @@
-#Browsersync - Middleware + CSS example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/middleware.css.injection
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-- Perform changes to `app/css/main.less` to see live css injection
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require("browser-sync");
-
-/**
- * Run the middleware on files that contain .less
- */
-function lessMiddleware (req, res, next) {
- var parsed = require("url").parse(req.url);
- if (parsed.pathname.match(/\.less$/)) {
- return less(parsed.pathname).then(function (o) {
- res.setHeader('Content-Type', 'text/css');
- res.end(o.css);
- });
- }
- next();
-}
-
-/**
- * Compile less
- */
-function less(src) {
- var f = require('fs').readFileSync('app' + src).toString();
- return require('less').render(f);
-}
-
-/**
- * Run Browsersync with less middleware
- */
-browserSync({
- files: "app/css/*.less",
- server: "app",
- injectFileTypes: ["less"],
- /**
- * Catch all requests, if any are for .less files, recompile on the fly and
- * send back a CSS response
- */
- middleware: lessMiddleware
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/proxy.custom-css/app.js b/node_modules/bs-recipes/recipes/proxy.custom-css/app.js
deleted file mode 100644
index 031f426..0000000
--- a/node_modules/bs-recipes/recipes/proxy.custom-css/app.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-
-/**
- * Run Browsersync with server config
- * You can use an arrays for files to specify multiple files
- */
-browserSync.init({
- proxy: "example.com",
- serveStatic: ["app/static"],
- files: "app/static/_custom.css",
- snippetOptions: {
- rule: {
- match: /<\/head>/i,
- fn: function (snippet, match) {
- return ' ' + snippet + match;
- }
- }
- }
-});
diff --git a/node_modules/bs-recipes/recipes/proxy.custom-css/app/static/_custom.css b/node_modules/bs-recipes/recipes/proxy.custom-css/app/static/_custom.css
deleted file mode 100644
index fa06cc1..0000000
--- a/node_modules/bs-recipes/recipes/proxy.custom-css/app/static/_custom.css
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: black;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/proxy.custom-css/desc.md b/node_modules/bs-recipes/recipes/proxy.custom-css/desc.md
deleted file mode 100644
index 70489d1..0000000
--- a/node_modules/bs-recipes/recipes/proxy.custom-css/desc.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-To see the live-updating and CSS injecting, simply perform changes to `app/static/_custom.css`
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/proxy.custom-css/package.json b/node_modules/bs-recipes/recipes/proxy.custom-css/package.json
deleted file mode 100644
index 8058523..0000000
--- a/node_modules/bs-recipes/recipes/proxy.custom-css/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Proxy example + injecting custom css file",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.11.2"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/proxy.custom-css/readme.md b/node_modules/bs-recipes/recipes/proxy.custom-css/readme.md
deleted file mode 100644
index 62b7136..0000000
--- a/node_modules/bs-recipes/recipes/proxy.custom-css/readme.md
+++ /dev/null
@@ -1,59 +0,0 @@
-#Browsersync - Proxy example + injecting custom css file
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/proxy.custom-css
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-To see the live-updating and CSS injecting, simply perform changes to `app/static/_custom.css`
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-
-/**
- * Run Browsersync with server config
- * You can use an arrays for files to specify multiple files
- */
-browserSync.init({
- proxy: "example.com",
- serveStatic: ["app/static"],
- files: "app/static/_custom.css",
- snippetOptions: {
- rule: {
- match: /<\/head>/i,
- fn: function (snippet, match) {
- return ' ' + snippet + match;
- }
- }
- }
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/app.js b/node_modules/bs-recipes/recipes/server.gzipped.assets/app.js
deleted file mode 100644
index d6d9a5c..0000000
--- a/node_modules/bs-recipes/recipes/server.gzipped.assets/app.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var middleware = require('connect-gzip-static')('./app');
-
-/**
- * Run Browsersync with server config
- * Add middleware with override:true to ensure all files are
- * picked up.
- */
-browserSync.init({
- server: 'app',
- files: ['app/*.html', 'app/css/*.css']
-}, function (err, bs) {
- bs.addMiddleware("*", middleware, {
- override: true
- });
-});
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/app/css/main.css.gz b/node_modules/bs-recipes/recipes/server.gzipped.assets/app/css/main.css.gz
deleted file mode 100644
index 38b5103..0000000
Binary files a/node_modules/bs-recipes/recipes/server.gzipped.assets/app/css/main.css.gz and /dev/null differ
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/app/index.html b/node_modules/bs-recipes/recipes/server.gzipped.assets/app/index.html
deleted file mode 100644
index ae3fc76..0000000
--- a/node_modules/bs-recipes/recipes/server.gzipped.assets/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync Server + Gzipped assets Example
-
-
-
- Browsersync Server + Gzipped assets Example
-
-
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/desc.md b/node_modules/bs-recipes/recipes/server.gzipped.assets/desc.md
deleted file mode 100644
index 166caac..0000000
--- a/node_modules/bs-recipes/recipes/server.gzipped.assets/desc.md
+++ /dev/null
@@ -1,3 +0,0 @@
-
-This example shows how you can use the `connect-gzip-static` middleware
-to serve already-gzipped assets.
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/package.json b/node_modules/bs-recipes/recipes/server.gzipped.assets/package.json
deleted file mode 100644
index 2fbe9fe..0000000
--- a/node_modules/bs-recipes/recipes/server.gzipped.assets/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "bs-recipes-server-with-gzipped-assets",
- "version": "1.0.0",
- "description": "Server with pre-gzipped assets example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.4.0",
- "connect-gzip-static": "^1.0.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/server.gzipped.assets/readme.md b/node_modules/bs-recipes/recipes/server.gzipped.assets/readme.md
deleted file mode 100644
index 083b14d..0000000
--- a/node_modules/bs-recipes/recipes/server.gzipped.assets/readme.md
+++ /dev/null
@@ -1,56 +0,0 @@
-#Browsersync - Server with pre-gzipped assets example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/server.gzipped.assets
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example shows how you can use the `connect-gzip-static` middleware
-to serve already-gzipped assets.
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var middleware = require('connect-gzip-static')('./app');
-
-/**
- * Run Browsersync with server config
- * Add middleware with override:true to ensure all files are
- * picked up.
- */
-browserSync.init({
- server: 'app',
- files: ['app/*.html', 'app/css/*.css']
-}, function (err, bs) {
- bs.addMiddleware("*", middleware, {
- override: true
- });
-});
-```
-
diff --git a/node_modules/bs-recipes/recipes/server.includes/app.js b/node_modules/bs-recipes/recipes/server.includes/app.js
deleted file mode 100644
index 524560c..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/app.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var fs = require('fs');
-
-/**
- * Run Browsersync with server config
- */
-browserSync.init({
- server: 'app',
- files: ['app/*.html', 'app/css/*.css'],
- rewriteRules: [
- {
- match: /@include\("(.+?)"\)/g,
- fn: function (match, filename) {
- if (fs.existsSync(filename)) {
- return fs.readFileSync(filename);
- } else {
- return ''+filename+' could not be found ';
- }
- }
- }
- ]
-});
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.includes/app/css/main.css b/node_modules/bs-recipes/recipes/server.includes/app/css/main.css
deleted file mode 100644
index ea1517e..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/app/css/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: white;
- color: black;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.includes/app/footer.html b/node_modules/bs-recipes/recipes/server.includes/app/footer.html
deleted file mode 100644
index 640b8a1..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/app/footer.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.includes/app/header.html b/node_modules/bs-recipes/recipes/server.includes/app/header.html
deleted file mode 100644
index cd5b01a..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/app/header.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.includes/app/index.html b/node_modules/bs-recipes/recipes/server.includes/app/index.html
deleted file mode 100644
index 316da74..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/app/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- Browsersync Server Includes Example
-
-
-
- @include("app/header.html")
- Browsersync Server Includes Example
- @include("app/footer.html")
-
-
diff --git a/node_modules/bs-recipes/recipes/server.includes/desc.md b/node_modules/bs-recipes/recipes/server.includes/desc.md
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/bs-recipes/recipes/server.includes/package.json b/node_modules/bs-recipes/recipes/server.includes/package.json
deleted file mode 100644
index be195fc..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "bs-recipes-server-includes",
- "version": "1.0.0",
- "description": "Server includes example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/server.includes/readme.md b/node_modules/bs-recipes/recipes/server.includes/readme.md
deleted file mode 100644
index e16a475..0000000
--- a/node_modules/bs-recipes/recipes/server.includes/readme.md
+++ /dev/null
@@ -1,59 +0,0 @@
-#Browsersync - Server includes example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/server.includes
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var fs = require('fs');
-
-/**
- * Run Browsersync with server config
- */
-browserSync.init({
- server: 'app',
- files: ['app/*.html', 'app/css/*.css'],
- rewriteRules: [
- {
- match: /@include\("(.+?)"\)/g,
- fn: function (match, filename) {
- if (fs.existsSync(filename)) {
- return fs.readFileSync(filename);
- } else {
- return ''+filename+' could not be found ';
- }
- }
- }
- ]
-});
-```
-
diff --git a/node_modules/bs-recipes/recipes/server.middleware/app.js b/node_modules/bs-recipes/recipes/server.middleware/app.js
deleted file mode 100644
index 8ce1fba..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/app.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var historyApiFallback = require('connect-history-api-fallback')
-
-/**
- * Run Browsersync with server config
- */
-browserSync.init({
- server: "app",
- files: ["app/*.html", "app/css/*.css"],
- middleware: [require("connect-logger")(), historyApiFallback()]
-});
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.middleware/app/css/main.css b/node_modules/bs-recipes/recipes/server.middleware/app/css/main.css
deleted file mode 100644
index 2fcc0c2..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/app/css/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: white;
- color: pink;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.middleware/app/index.html b/node_modules/bs-recipes/recipes/server.middleware/app/index.html
deleted file mode 100644
index ab741f4..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync Server Example
-
-
-
- Browsersync Server Example
-
-
diff --git a/node_modules/bs-recipes/recipes/server.middleware/desc.md b/node_modules/bs-recipes/recipes/server.middleware/desc.md
deleted file mode 100644
index bca4929..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/desc.md
+++ /dev/null
@@ -1,4 +0,0 @@
-
-This example adds the [connect-logger](https://www.npmjs.com/package/connect-logger) middleware
-
-
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server.middleware/package.json b/node_modules/bs-recipes/recipes/server.middleware/package.json
deleted file mode 100644
index 80b99ab..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Server + Logging + History API fallback middlewares Example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6",
- "connect-logger": "0.0.1",
- "connect-history-api-fallback": "^1.1.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/server.middleware/readme.md b/node_modules/bs-recipes/recipes/server.middleware/readme.md
deleted file mode 100644
index e2f5314..0000000
--- a/node_modules/bs-recipes/recipes/server.middleware/readme.md
+++ /dev/null
@@ -1,52 +0,0 @@
-#Browsersync - Server + Logging + History API fallback middlewares Example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/server.middleware
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-This example adds the [connect-logger](https://www.npmjs.com/package/connect-logger) middleware
-
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync').create();
-var historyApiFallback = require('connect-history-api-fallback')
-
-/**
- * Run Browsersync with server config
- */
-browserSync.init({
- server: "app",
- files: ["app/*.html", "app/css/*.css"],
- middleware: [require("connect-logger")(), historyApiFallback()]
-});
-```
-
diff --git a/node_modules/bs-recipes/recipes/server/app.js b/node_modules/bs-recipes/recipes/server/app.js
deleted file mode 100644
index 49a697b..0000000
--- a/node_modules/bs-recipes/recipes/server/app.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync');
-
-/**
- * Run Browsersync with server config
- */
-browserSync({
- server: "app",
- files: ["app/*.html", "app/css/*.css"]
-});
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server/app/css/main.css b/node_modules/bs-recipes/recipes/server/app/css/main.css
deleted file mode 100644
index 2fcc0c2..0000000
--- a/node_modules/bs-recipes/recipes/server/app/css/main.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- background: white;
- color: pink;
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server/app/index.html b/node_modules/bs-recipes/recipes/server/app/index.html
deleted file mode 100644
index ab741f4..0000000
--- a/node_modules/bs-recipes/recipes/server/app/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Browsersync Server Example
-
-
-
- Browsersync Server Example
-
-
diff --git a/node_modules/bs-recipes/recipes/server/desc.md b/node_modules/bs-recipes/recipes/server/desc.md
deleted file mode 100644
index a8ce3c8..0000000
--- a/node_modules/bs-recipes/recipes/server/desc.md
+++ /dev/null
@@ -1,2 +0,0 @@
-
-To see the live-updating and CSS injecting, simply perform changes to either `index.html` or `css/main.css`
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/server/package.json b/node_modules/bs-recipes/recipes/server/package.json
deleted file mode 100644
index e20b703..0000000
--- a/node_modules/bs-recipes/recipes/server/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "bs-recipes-server",
- "version": "1.0.0",
- "description": "Server example",
- "main": "app.js",
- "scripts": {
- "start": "node app.js"
- },
- "license": "MIT",
- "dependencies": {
- "browser-sync": "^2.1.6"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/server/readme.md b/node_modules/bs-recipes/recipes/server/readme.md
deleted file mode 100644
index e61a4da..0000000
--- a/node_modules/bs-recipes/recipes/server/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-#Browsersync - Server example
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/server
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-
-
-To see the live-updating and CSS injecting, simply perform changes to either `index.html` or `css/main.css`
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync
- */
-var browserSync = require('browser-sync');
-
-/**
- * Run Browsersync with server config
- */
-browserSync({
- server: "app",
- files: ["app/*.html", "app/css/*.css"]
-});
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/.npmignore b/node_modules/bs-recipes/recipes/webpack.babel/.npmignore
deleted file mode 100644
index 3c3629e..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/app.js b/node_modules/bs-recipes/recipes/webpack.babel/app.js
deleted file mode 100644
index af7cd15..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/app.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var stripAnsi = require('strip-ansi');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Reload all devices when bundle is complete
- * or send a fullscreen error message to the browser instead
- */
-bundler.plugin('done', function (stats) {
- if (stats.hasErrors() || stats.hasWarnings()) {
- return browserSync.sockets.emit('fullscreen:message', {
- title: "Webpack Error:",
- body: stripAnsi(stats.toString()),
- timeout: 100000
- });
- }
- browserSync.reload();
-});
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync.init({
- server: 'app',
- open: false,
- logFileChanges: false,
- middleware: [
- webpackDevMiddleware(bundler, {
- publicPath: webpackConfig.output.publicPath,
- stats: {colors: true}
- })
- ],
- plugins: ['bs-fullscreen-message'],
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/app/index.html b/node_modules/bs-recipes/recipes/webpack.babel/app/index.html
deleted file mode 100644
index 646b8a9..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/app/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Browsersync, Webpack + Babel
-
-
-
- Browsersync, Webpack + Babel Example
-
- 0
- Increase
- Decrease
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/desc.md b/node_modules/bs-recipes/recipes/webpack.babel/desc.md
deleted file mode 100644
index cf60d90..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-Edit any files within the `src` folder
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/package.json b/node_modules/bs-recipes/recipes/webpack.babel/package.json
deleted file mode 100644
index 15a6875..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "webpack.babel",
- "version": "1.0.0",
- "description": "Webpack + Babel",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node app"
- },
- "dependencies": {},
- "devDependencies": {
- "babel-core": "^6.1.2",
- "babel-loader": "^6.1.0",
- "babel-plugin-transform-runtime": "^6.1.2",
- "babel-preset-es2015": "^6.1.2",
- "babel-preset-stage-0": "^6.1.2",
- "browser-sync": "^2.8.0",
- "bs-fullscreen-message": "^1.0.0",
- "strip-ansi": "^3.0.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/readme.md b/node_modules/bs-recipes/recipes/webpack.babel/readme.md
deleted file mode 100644
index 9167a8e..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/readme.md
+++ /dev/null
@@ -1,84 +0,0 @@
-#Browsersync - Webpack + Babel
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.babel
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-Edit any files within the `src` folder
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var stripAnsi = require('strip-ansi');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Reload all devices when bundle is complete
- * or send a fullscreen error message to the browser instead
- */
-bundler.plugin('done', function (stats) {
- if (stats.hasErrors() || stats.hasWarnings()) {
- return browserSync.sockets.emit('fullscreen:message', {
- title: "Webpack Error:",
- body: stripAnsi(stats.toString()),
- timeout: 100000
- });
- }
- browserSync.reload();
-});
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync.init({
- server: 'app',
- open: false,
- logFileChanges: false,
- middleware: [
- webpackDevMiddleware(bundler, {
- publicPath: webpackConfig.output.publicPath,
- stats: {colors: true}
- })
- ],
- plugins: ['bs-fullscreen-message'],
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/src/actions.js b/node_modules/bs-recipes/recipes/webpack.babel/src/actions.js
deleted file mode 100644
index 8d7b979..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/src/actions.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export function inc (value) {
- return value + 10;
-}
-
-export function dec (value) {
- return value - 10;
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/src/main.js b/node_modules/bs-recipes/recipes/webpack.babel/src/main.js
deleted file mode 100644
index 282cac8..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/src/main.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import {inc, dec} from './actions';
-
-window.onload = function() {
- let number = document.getElementById('number');
- let incBtn = document.getElementById('inc');
- let decBtn = document.getElementById('dec');
-
- incBtn.addEventListener('click', function() {
- number.innerHTML = inc(+number.innerHTML);
- }, false);
-
- decBtn.addEventListener('click', function() {
- number.innerHTML = dec(+number.innerHTML);
- }, false);
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.babel/webpack.config.js b/node_modules/bs-recipes/recipes/webpack.babel/webpack.config.js
deleted file mode 100644
index af5ae31..0000000
--- a/node_modules/bs-recipes/recipes/webpack.babel/webpack.config.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-
-module.exports = {
- debug: true,
- devtool: '#eval-source-map',
-
- entry: [
- './src/main'
- ],
-
- output: {
- path: path.join(__dirname, 'app'),
- publicPath: '/',
- filename: 'dist/bundle.js'
- },
-
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.NoErrorsPlugin()
- ],
-
- module: {
- loaders: [
- {
- loader: "babel-loader",
-
- // Only run `.js` and `.jsx` files through Babel
- test: /\.jsx?$/,
-
- exclude: /node_modules/,
-
- // Options to configure babel with
- query: {
- plugins: ['transform-runtime'],
- presets: ['es2015', 'stage-0'],
- }
- },
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app.js b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app.js
deleted file mode 100644
index 6c25931..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/index.html b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/index.html
deleted file mode 100644
index 0d4e19e..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Browsersync, Webpack + Monkey Hot Loader Example
-
-
-
- Browsersync, Webpack + Monkey Hot Loader Example
-
- 0
- Increase
- Decrease
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/main.js b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/main.js
deleted file mode 100644
index 6dd0770..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/app/main.js
+++ /dev/null
@@ -1,24 +0,0 @@
-function inc(value) { // Play with me
- return value + 1;
-}
-
-function dec(value) { // and me
- return value - 1;
-}
-
-// IMPORTANT: it won't work as expected if you'll use addEventListener
-// or $(document).ready as it will bind events again and again...
-// So you may need some workaround for this or split modules in a particular way
-window.onload = function() {
- var number = document.getElementById('number');
- var incBtn = document.getElementById('inc');
- var decBtn = document.getElementById('dec');
-
- incBtn.addEventListener('click', function() {
- number.innerHTML = inc(+number.innerHTML);
- }, false);
-
- decBtn.addEventListener('click', function() {
- number.innerHTML = dec(+number.innerHTML);
- }, false);
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/desc.md b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/desc.md
deleted file mode 100644
index 95f0c6a..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/desc.md
+++ /dev/null
@@ -1,2 +0,0 @@
-To see `monkey-hot-loader` in action, edit top-level functions (`inc`, `dec`)
-inside `main.js` file
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/package.json b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/package.json
deleted file mode 100644
index d50b14a..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "webpack.monkey-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + Monkey Hot Loader",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "browser-sync": "^2.8.0",
- "monkey-hot-loader": "0.0.3",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^1.1.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/readme.md b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/readme.md
deleted file mode 100644
index 8af73b9..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/readme.md
+++ /dev/null
@@ -1,83 +0,0 @@
-#Browsersync - Webpack + Monkey Hot Loader
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.monkey-hot-loader
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-To see `monkey-hot-loader` in action, edit top-level functions (`inc`, `dec`)
-inside `main.js` file
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/webpack.config.js b/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/webpack.config.js
deleted file mode 100644
index 2648862..0000000
--- a/node_modules/bs-recipes/recipes/webpack.monkey-hot-loader/webpack.config.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-
-module.exports = {
- debug: true,
- devtool: '#eval-source-map',
- context: path.join(__dirname, 'app'),
-
- entry: [
- 'webpack/hot/dev-server',
- 'webpack-hot-middleware/client',
- './main'
- ],
-
- output: {
- path: path.join(__dirname, 'app'),
- publicPath: '/',
- filename: 'bundle.js'
- },
-
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoErrorsPlugin()
- ],
-
- module: {
- loaders: [
- { test: /\.js$/, exclude: /node_modules/, loaders: ['monkey-hot'] }
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.babelrc b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.babelrc
deleted file mode 100644
index b21d6c9..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.babelrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "presets": [
- "es2015"
- ],
- "plugins": [
- ["transform-decorators-legacy"],
- ["transform-react-jsx", { "pragma": "h" }]
- ]
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.npmignore b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.npmignore
deleted file mode 100644
index 0b1fab8..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/app/dist/
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app.js b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app.js
deleted file mode 100644
index 4d58c57..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config.dev');
-var bundler = webpack(webpackConfig);
-
-/**
- *
- */
-browserSync.init({
- server: 'app',
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: {colors: true}
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ],
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/css/main.css b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/css/main.css
deleted file mode 100644
index e9bd4c2..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/css/main.css
+++ /dev/null
@@ -1,35 +0,0 @@
-.hello-world {
- margin: 200px 0;
- font-size: 70px;
- text-align: center;
-}
-
-.hello-world__i {
- display: inline-block;
- -webkit-animation: rotate 4000ms infinite linear;
- animation: rotate 4000ms infinite linear;
-}
-
-@keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-@-webkit-keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/index.html b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/index.html
deleted file mode 100644
index 7b29218..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Browsersync, Webpack + Preact Hot Loader Example
-
-
-
-
- Browsersync, Webpack + Preact Hot Loader Example
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/HelloWorld.jsx b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/HelloWorld.jsx
deleted file mode 100644
index 820755f..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/HelloWorld.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import {h, Component} from 'preact';
-
-export default class HelloWorld extends Component {
- render() {
- // Play with it...
- const name = 'World';
-
- return (
-
- Hello, {name}
-
- );
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/main.js b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/main.js
deleted file mode 100644
index 2b3e41f..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/app/js/main.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import {h, render} from 'preact';
-
-if (module.hot) {
- module.hot.accept('./HelloWorld.jsx', () => requestAnimationFrame(() => {
- init();
- }));
-}
-
-let root;
-
-function init() {
- const HellowWorld = require('./HelloWorld.jsx').default;
- root = render( , document.getElementById('preact-root'), root);
-}
-
-init();
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/desc.md b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/desc.md
deleted file mode 100644
index 54ad885..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-To see `preact-hot-loader` in action, edit `js/HelloWorld.jsx`
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/package.json b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/package.json
deleted file mode 100644
index ceb5112..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "webpack.preact-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + Preact Hot Loader",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node .",
- "build": "webpack"
- },
- "dependencies": {
- "babel": "^6.5.2",
- "babel-core": "^6.14.0",
- "babel-eslint": "^7.0.0",
- "babel-loader": "^6.2.5",
- "babel-plugin-transform-decorators-legacy": "^1.3.4",
- "babel-plugin-transform-react-jsx": "^6.8.0",
- "babel-preset-es2015": "^6.14.0",
- "babel-register": "^6.14.0",
- "babel-runtime": "^6.11.6",
- "browser-sync": "^2.8.0",
- "compression-webpack-plugin": "^0.3.2",
- "preact": "^6.4.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^1.1.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/readme.md b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/readme.md
deleted file mode 100644
index 97f2a28..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/readme.md
+++ /dev/null
@@ -1,78 +0,0 @@
-#Browsersync - Webpack + Preact Hot Loader
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.preact-hot-loader
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-To see `preact-hot-loader` in action, edit `js/HelloWorld.jsx`
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config.dev');
-var bundler = webpack(webpackConfig);
-
-/**
- *
- */
-browserSync.init({
- server: 'app',
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: {colors: true}
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ],
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.dev.js b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.dev.js
deleted file mode 100644
index ef579d0..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.dev.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-
-module.exports = {
- debug: true,
- devtool: 'source-map',
- context: path.join(__dirname, 'app', 'js'),
-
- entry: [
- 'webpack/hot/dev-server',
- 'webpack-hot-middleware/client',
- './main'
- ],
-
- output: {
- path: path.join(__dirname, 'app', 'js'),
- publicPath: '/js/',
- filename: 'bundle.js'
- },
-
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoErrorsPlugin()
- ],
- resolve: {
- extensions: ['', '.jsx', '.js']
- },
- module: {
- loaders: [
- {
- test: /\.jsx?$/,
- exclude: /node_modules/,
- loaders: ['babel']
- }
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.js b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.js
deleted file mode 100644
index d503b53..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/webpack.config.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-var CompressionPlugin = require("compression-webpack-plugin");
-
-module.exports = {
- devtool: 'source-map',
- context: path.join(__dirname, 'app', 'js'),
- entry: [
- './main'
- ],
- output: {
- path: path.join(__dirname, 'app', 'dist'),
- filename: 'bundle.js'
- },
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.NoErrorsPlugin(),
- new CompressionPlugin({
- asset: "[path].gz[query]",
- algorithm: "gzip",
- test: /\.js$/,
- threshold: 10240,
- minRatio: 0.8
- }),
- new webpack.optimize.UglifyJsPlugin({
- compress: {
- warnings: false
- },
- mangle: true
- })
- ],
- resolve: {
- extensions: ['', '.jsx', '.js']
- },
- module: {
- loaders: [
- {
- test: /\.jsx?$/,
- exclude: /node_modules/,
- loaders: ['babel']
- }
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/yarn.lock b/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/yarn.lock
deleted file mode 100644
index 6a4f572..0000000
--- a/node_modules/bs-recipes/recipes/webpack.preact-hot-loader/yarn.lock
+++ /dev/null
@@ -1,2967 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-abbrev@1:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
-accepts@~1.3.3, accepts@1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
- dependencies:
- mime-types "~2.1.11"
- negotiator "0.6.1"
-
-acorn@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-
-after@0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-regex@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d"
-
-ansi-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-anymatch@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
- dependencies:
- arrify "^1.0.0"
- micromatch "^2.1.5"
-
-aproba@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0"
-
-are-we-there-yet@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3"
- dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.0 || ^1.1.13"
-
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- dependencies:
- arr-flatten "^1.0.1"
-
-arr-flatten@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
-
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
-
-arraybuffer.slice@0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
-
-arrify@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-
-asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-
-asn1@0.1.11:
- version "0.1.11"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7"
-
-assert-plus@^0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
-
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-
-assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assert@^1.1.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
- dependencies:
- util "0.10.3"
-
-async-each-series@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432"
-
-async-each@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
-
-async@^0.9.0:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-
-async@^1.3.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-async@^2.0.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385"
- dependencies:
- lodash "^4.14.0"
-
-async@~0.2.6, async@0.2.x:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-
-async@0.1.15:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/async/-/async-0.1.15.tgz#2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
-aws4@^1.2.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
-
-babel-code-frame@^6.16.0:
- version "6.16.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de"
- dependencies:
- chalk "^1.1.0"
- esutils "^2.0.2"
- js-tokens "^2.0.0"
-
-babel-core@^6.14.0, babel-core@^6.18.0:
- version "6.18.2"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.18.2.tgz#d8bb14dd6986fa4f3566a26ceda3964fa0e04e5b"
- dependencies:
- babel-code-frame "^6.16.0"
- babel-generator "^6.18.0"
- babel-helpers "^6.16.0"
- babel-messages "^6.8.0"
- babel-register "^6.18.0"
- babel-runtime "^6.9.1"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
- babylon "^6.11.0"
- convert-source-map "^1.1.0"
- debug "^2.1.1"
- json5 "^0.5.0"
- lodash "^4.2.0"
- minimatch "^3.0.2"
- path-is-absolute "^1.0.0"
- private "^0.1.6"
- slash "^1.0.0"
- source-map "^0.5.0"
-
-babel-eslint@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.0.tgz#d506a5174ba224e25a2d17e128e2ba8987139ddc"
- dependencies:
- babel-traverse "^6.15.0"
- babel-types "^6.15.0"
- babylon "^6.11.2"
- lodash.pickby "^4.6.0"
-
-babel-generator@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.18.0.tgz#e4f104cb3063996d9850556a45aae4a022060a07"
- dependencies:
- babel-messages "^6.8.0"
- babel-runtime "^6.9.0"
- babel-types "^6.18.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.2.0"
- source-map "^0.5.0"
-
-babel-helper-builder-react-jsx@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.18.0.tgz#ab02f19a2eb7ace936dd87fa55896d02be59bf71"
- dependencies:
- babel-runtime "^6.9.0"
- babel-types "^6.18.0"
- esutils "^2.0.0"
- lodash "^4.2.0"
-
-babel-helper-call-delegate@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz#05b14aafa430884b034097ef29e9f067ea4133bd"
- dependencies:
- babel-helper-hoist-variables "^6.18.0"
- babel-runtime "^6.0.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
-
-babel-helper-define-map@^6.18.0, babel-helper-define-map@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz#8d6c85dc7fbb4c19be3de40474d18e97c3676ec2"
- dependencies:
- babel-helper-function-name "^6.18.0"
- babel-runtime "^6.9.0"
- babel-types "^6.18.0"
- lodash "^4.2.0"
-
-babel-helper-function-name@^6.18.0, babel-helper-function-name@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz#68ec71aeba1f3e28b2a6f0730190b754a9bf30e6"
- dependencies:
- babel-helper-get-function-arity "^6.18.0"
- babel-runtime "^6.0.0"
- babel-template "^6.8.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
-
-babel-helper-get-function-arity@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz#a5b19695fd3f9cdfc328398b47dafcd7094f9f24"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.18.0"
-
-babel-helper-hoist-variables@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz#a835b5ab8b46d6de9babefae4d98ea41e866b82a"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.18.0"
-
-babel-helper-optimise-call-expression@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz#9261d0299ee1a4f08a6dd28b7b7c777348fd8f0f"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.18.0"
-
-babel-helper-regex@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz#ae0ebfd77de86cb2f1af258e2cc20b5fe893ecc6"
- dependencies:
- babel-runtime "^6.9.0"
- babel-types "^6.18.0"
- lodash "^4.2.0"
-
-babel-helper-replace-supers@^6.18.0, babel-helper-replace-supers@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz#28ec69877be4144dbd64f4cc3a337e89f29a924e"
- dependencies:
- babel-helper-optimise-call-expression "^6.18.0"
- babel-messages "^6.8.0"
- babel-runtime "^6.0.0"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
-
-babel-helpers@^6.16.0:
- version "6.16.0"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.16.0.tgz#1095ec10d99279460553e67eb3eee9973d3867e3"
- dependencies:
- babel-runtime "^6.0.0"
- babel-template "^6.16.0"
-
-babel-loader@^6.2.5:
- version "6.2.7"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.7.tgz#16fdbf64328030dc5a606827d389c8b92a2a8032"
- dependencies:
- find-cache-dir "^0.1.1"
- loader-utils "^0.2.11"
- mkdirp "^0.5.1"
- object-assign "^4.0.1"
-
-babel-messages@^6.8.0:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-check-es2015-constants@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz#dbf024c32ed37bfda8dee1e76da02386a8d26fe7"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-syntax-decorators@^6.1.18:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
-
-babel-plugin-syntax-jsx@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
-
-babel-plugin-transform-decorators-legacy@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz#741b58f6c5bce9e6027e0882d9c994f04f366925"
- dependencies:
- babel-plugin-syntax-decorators "^6.1.18"
- babel-runtime "^6.2.0"
- babel-template "^6.3.0"
-
-babel-plugin-transform-es2015-arrow-functions@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz#5b63afc3181bdc9a8c4d481b5a4f3f7d7fef3d9d"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-block-scoped-functions@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz#ed95d629c4b5a71ae29682b998f70d9833eb366d"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-block-scoping@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.18.0.tgz#3bfdcfec318d46df22525cdea88f1978813653af"
- dependencies:
- babel-runtime "^6.9.0"
- babel-template "^6.15.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
- lodash "^4.2.0"
-
-babel-plugin-transform-es2015-classes@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz#ffe7a17321bf83e494dcda0ae3fc72df48ffd1d9"
- dependencies:
- babel-helper-define-map "^6.18.0"
- babel-helper-function-name "^6.18.0"
- babel-helper-optimise-call-expression "^6.18.0"
- babel-helper-replace-supers "^6.18.0"
- babel-messages "^6.8.0"
- babel-runtime "^6.9.0"
- babel-template "^6.14.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
-
-babel-plugin-transform-es2015-computed-properties@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz#f51010fd61b3bd7b6b60a5fdfd307bb7a5279870"
- dependencies:
- babel-helper-define-map "^6.8.0"
- babel-runtime "^6.0.0"
- babel-template "^6.8.0"
-
-babel-plugin-transform-es2015-destructuring@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.18.0.tgz#a08fb89415ab82058649558bedb7bf8dafa76ba5"
- dependencies:
- babel-runtime "^6.9.0"
-
-babel-plugin-transform-es2015-duplicate-keys@^6.6.0:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.8.0"
-
-babel-plugin-transform-es2015-for-of@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz#4c517504db64bf8cfc119a6b8f177211f2028a70"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-function-name@^6.9.0:
- version "6.9.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz#8c135b17dbd064e5bba56ec511baaee2fca82719"
- dependencies:
- babel-helper-function-name "^6.8.0"
- babel-runtime "^6.9.0"
- babel-types "^6.9.0"
-
-babel-plugin-transform-es2015-literals@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz#50aa2e5c7958fc2ab25d74ec117e0cc98f046468"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-modules-amd@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz#49a054cbb762bdf9ae2d8a807076cfade6141e40"
- dependencies:
- babel-plugin-transform-es2015-modules-commonjs "^6.18.0"
- babel-runtime "^6.0.0"
- babel-template "^6.8.0"
-
-babel-plugin-transform-es2015-modules-commonjs@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz#c15ae5bb11b32a0abdcc98a5837baa4ee8d67bcc"
- dependencies:
- babel-plugin-transform-strict-mode "^6.18.0"
- babel-runtime "^6.0.0"
- babel-template "^6.16.0"
- babel-types "^6.18.0"
-
-babel-plugin-transform-es2015-modules-systemjs@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.18.0.tgz#f09294707163edae4d3b3e8bfacecd01d920b7ad"
- dependencies:
- babel-helper-hoist-variables "^6.18.0"
- babel-runtime "^6.11.6"
- babel-template "^6.14.0"
-
-babel-plugin-transform-es2015-modules-umd@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz#23351770ece5c1f8e83ed67cb1d7992884491e50"
- dependencies:
- babel-plugin-transform-es2015-modules-amd "^6.18.0"
- babel-runtime "^6.0.0"
- babel-template "^6.8.0"
-
-babel-plugin-transform-es2015-object-super@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz#1b858740a5a4400887c23dcff6f4d56eea4a24c5"
- dependencies:
- babel-helper-replace-supers "^6.8.0"
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-parameters@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.18.0.tgz#9b2cfe238c549f1635ba27fc1daa858be70608b1"
- dependencies:
- babel-helper-call-delegate "^6.18.0"
- babel-helper-get-function-arity "^6.18.0"
- babel-runtime "^6.9.0"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
-
-babel-plugin-transform-es2015-shorthand-properties@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.18.0"
-
-babel-plugin-transform-es2015-spread@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz#0217f737e3b821fa5a669f187c6ed59205f05e9c"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-sticky-regex@^6.3.13:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz#e73d300a440a35d5c64f5c2a344dc236e3df47be"
- dependencies:
- babel-helper-regex "^6.8.0"
- babel-runtime "^6.0.0"
- babel-types "^6.8.0"
-
-babel-plugin-transform-es2015-template-literals@^6.6.0:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz#86eb876d0a2c635da4ec048b4f7de9dfc897e66b"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-typeof-symbol@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz#0b14c48629c90ff47a0650077f6aa699bee35798"
- dependencies:
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-es2015-unicode-regex@^6.3.13:
- version "6.11.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz#6298ceabaad88d50a3f4f392d8de997260f6ef2c"
- dependencies:
- babel-helper-regex "^6.8.0"
- babel-runtime "^6.0.0"
- regexpu-core "^2.0.0"
-
-babel-plugin-transform-react-jsx@^6.8.0:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.8.0.tgz#94759942f70af18c617189aa7f3593f1644a71ab"
- dependencies:
- babel-helper-builder-react-jsx "^6.8.0"
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-regenerator@^6.16.0:
- version "6.16.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59"
- dependencies:
- babel-runtime "^6.9.0"
- babel-types "^6.16.0"
- private "~0.1.5"
-
-babel-plugin-transform-strict-mode@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz#df7cf2991fe046f44163dcd110d5ca43bc652b9d"
- dependencies:
- babel-runtime "^6.0.0"
- babel-types "^6.18.0"
-
-babel-preset-es2015@^6.14.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312"
- dependencies:
- babel-plugin-check-es2015-constants "^6.3.13"
- babel-plugin-transform-es2015-arrow-functions "^6.3.13"
- babel-plugin-transform-es2015-block-scoped-functions "^6.3.13"
- babel-plugin-transform-es2015-block-scoping "^6.18.0"
- babel-plugin-transform-es2015-classes "^6.18.0"
- babel-plugin-transform-es2015-computed-properties "^6.3.13"
- babel-plugin-transform-es2015-destructuring "^6.18.0"
- babel-plugin-transform-es2015-duplicate-keys "^6.6.0"
- babel-plugin-transform-es2015-for-of "^6.18.0"
- babel-plugin-transform-es2015-function-name "^6.9.0"
- babel-plugin-transform-es2015-literals "^6.3.13"
- babel-plugin-transform-es2015-modules-amd "^6.18.0"
- babel-plugin-transform-es2015-modules-commonjs "^6.18.0"
- babel-plugin-transform-es2015-modules-systemjs "^6.18.0"
- babel-plugin-transform-es2015-modules-umd "^6.18.0"
- babel-plugin-transform-es2015-object-super "^6.3.13"
- babel-plugin-transform-es2015-parameters "^6.18.0"
- babel-plugin-transform-es2015-shorthand-properties "^6.18.0"
- babel-plugin-transform-es2015-spread "^6.3.13"
- babel-plugin-transform-es2015-sticky-regex "^6.3.13"
- babel-plugin-transform-es2015-template-literals "^6.6.0"
- babel-plugin-transform-es2015-typeof-symbol "^6.18.0"
- babel-plugin-transform-es2015-unicode-regex "^6.3.13"
- babel-plugin-transform-regenerator "^6.16.0"
-
-babel-register@^6.14.0, babel-register@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68"
- dependencies:
- babel-core "^6.18.0"
- babel-runtime "^6.11.6"
- core-js "^2.4.0"
- home-or-tmp "^2.0.0"
- lodash "^4.2.0"
- mkdirp "^0.5.1"
- source-map-support "^0.4.2"
-
-babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.2.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.18.0.tgz#0f4177ffd98492ef13b9f823e9994a02584c9078"
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.9.5"
-
-babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.3.0, babel-template@^6.8.0:
- version "6.16.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca"
- dependencies:
- babel-runtime "^6.9.0"
- babel-traverse "^6.16.0"
- babel-types "^6.16.0"
- babylon "^6.11.0"
- lodash "^4.2.0"
-
-babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.18.0.tgz#5aeaa980baed2a07c8c47329cd90c3b90c80f05e"
- dependencies:
- babel-code-frame "^6.16.0"
- babel-messages "^6.8.0"
- babel-runtime "^6.9.0"
- babel-types "^6.18.0"
- babylon "^6.11.0"
- debug "^2.2.0"
- globals "^9.0.0"
- invariant "^2.2.0"
- lodash "^4.2.0"
-
-babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.8.0, babel-types@^6.9.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.18.0.tgz#1f7d5a73474c59eb9151b2417bbff4e4fce7c3f8"
- dependencies:
- babel-runtime "^6.9.1"
- esutils "^2.0.2"
- lodash "^4.2.0"
- to-fast-properties "^1.0.1"
-
-babel@^6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/babel/-/babel-6.5.2.tgz#59140607438270920047ff56f02b2d8630c2d129"
-
-babylon@^6.11.0, babylon@^6.11.2:
- version "6.13.1"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.13.1.tgz#adca350e088f0467647157652bafead6ddb8dfdb"
-
-backo2@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
-
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
-
-base64-arraybuffer@0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
-
-base64-js@^1.0.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
-
-Base64@~0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028"
-
-base64id@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f"
-
-batch@0.5.3:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464"
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4"
- dependencies:
- tweetnacl "^0.14.3"
-
-benchmark@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73"
-
-better-assert@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
- dependencies:
- callsite "1.0.0"
-
-big.js@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
-
-binary-extensions@^1.0.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d"
-
-bl@~1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e"
- dependencies:
- readable-stream "~2.0.5"
-
-blob@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
-
-block-stream@*:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
- dependencies:
- inherits "~2.0.0"
-
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- dependencies:
- hoek "2.x.x"
-
-brace-expansion@^1.0.0:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
- dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
-
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
-browser-sync-client@^2.3.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.4.3.tgz#e965033e0c83e5f06caacb516755b694836cea4f"
- dependencies:
- etag "^1.7.0"
- fresh "^0.3.0"
-
-browser-sync-ui@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-0.6.1.tgz#d8b98ea3b755632287350a37ee2eaaacabea28d2"
- dependencies:
- async-each-series "0.1.1"
- connect-history-api-fallback "^1.1.0"
- immutable "^3.7.6"
- server-destroy "1.0.1"
- stream-throttle "^0.1.3"
- weinre "^2.0.0-pre-I0Z7U9OV"
-
-browser-sync@^2.8.0:
- version "2.17.5"
- resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.17.5.tgz#8e0a9ddfc2e162e7aada085f76181c57b6dbdf7a"
- dependencies:
- browser-sync-client "^2.3.3"
- browser-sync-ui "0.6.1"
- bs-recipes "1.2.3"
- chokidar "1.6.0"
- connect "3.5.0"
- dev-ip "^1.0.1"
- easy-extender "2.3.2"
- eazy-logger "3.0.2"
- emitter-steward "^1.0.0"
- fs-extra "0.30.0"
- http-proxy "1.15.1"
- immutable "3.8.1"
- localtunnel "1.8.1"
- micromatch "2.3.11"
- opn "4.0.2"
- portscanner "^1.0.0"
- qs "6.2.1"
- resp-modifier "6.0.2"
- rx "4.1.0"
- serve-index "1.8.0"
- serve-static "1.11.1"
- server-destroy "1.0.1"
- socket.io "1.5.0"
- ua-parser-js "0.7.10"
- yargs "6.0.0"
-
-browserify-zlib@~0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
- dependencies:
- pako "~0.2.0"
-
-bs-recipes@1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.2.3.tgz#0e4d17bb1cff92ef6c36608b8487d9a07571ac54"
-
-buffer-shims@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
-buffer@^4.9.0:
- version "4.9.1"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-builtin-modules@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
-callsite@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
-
-camelcase@^1.0.2, camelcase@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-camelcase@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
-
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chalk@^1.1.0, chalk@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chokidar@^1.0.0:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
- dependencies:
- anymatch "^1.3.0"
- async-each "^1.0.0"
- glob-parent "^2.0.0"
- inherits "^2.0.1"
- is-binary-path "^1.0.0"
- is-glob "^2.0.0"
- path-is-absolute "^1.0.0"
- readdirp "^2.0.0"
- optionalDependencies:
- fsevents "^1.0.0"
-
-chokidar@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058"
- dependencies:
- anymatch "^1.3.0"
- async-each "^1.0.0"
- glob-parent "^2.0.0"
- inherits "^2.0.1"
- is-binary-path "^1.0.0"
- is-glob "^2.0.0"
- path-is-absolute "^1.0.0"
- readdirp "^2.0.0"
- optionalDependencies:
- fsevents "^1.0.0"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-cliui@^3.0.3, cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
-clone@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-
-combined-stream@^1.0.5, combined-stream@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@^2.2.0, commander@^2.8.1, commander@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-commondir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-
-component-bind@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
-
-component-emitter@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
-
-component-emitter@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
-
-component-inherit@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
-
-compression-webpack-plugin@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-0.3.2.tgz#1edfb0e749d7366d3e701670c463359b2c0cf704"
- dependencies:
- async "0.2.x"
- webpack-sources "^0.1.0"
- optionalDependencies:
- node-zopfli "^2.0.0"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-connect-history-api-fallback@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169"
-
-connect@1.x:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/connect/-/connect-1.9.2.tgz#42880a22e9438ae59a8add74e437f58ae8e52807"
- dependencies:
- formidable "1.0.x"
- mime ">= 0.0.1"
- qs ">= 0.4.0"
-
-connect@3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198"
- dependencies:
- debug "~2.2.0"
- finalhandler "0.5.0"
- parseurl "~1.3.1"
- utils-merge "1.0.0"
-
-console-browserify@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
- dependencies:
- date-now "^0.1.4"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-
-constants-browserify@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2"
-
-convert-source-map@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
-
-core-js@^2.4.0:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
-
-core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- dependencies:
- boom "2.x.x"
-
-crypto-browserify@~3.2.6:
- version "3.2.8"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189"
- dependencies:
- pbkdf2-compat "2.0.1"
- ripemd160 "0.2.0"
- sha.js "2.2.6"
-
-ctype@0.5.3:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f"
-
-dashdash@^1.12.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141"
- dependencies:
- assert-plus "^1.0.0"
-
-date-now@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-
-debug@^2.1.1, debug@^2.2.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30"
- dependencies:
- ms "0.7.2"
-
-debug@~2.2.0, debug@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- dependencies:
- ms "0.7.1"
-
-debug@0.7.4:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
-
-decamelize@^1.0.0, decamelize@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-deep-extend@~0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
-
-defaults@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
- dependencies:
- clone "^1.0.2"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-
-depd@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
-
-destroy@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- dependencies:
- repeating "^2.0.0"
-
-dev-ip@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0"
-
-domain-browser@^1.1.1:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
-
-easy-extender@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.2.tgz#3d3248febe2b159607316d8f9cf491c16648221d"
- dependencies:
- lodash "^3.10.1"
-
-eazy-logger@3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.0.2.tgz#a325aa5e53d13a2225889b2ac4113b2b9636f4fc"
- dependencies:
- tfunk "^3.0.1"
-
-ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
- dependencies:
- jsbn "~0.1.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-
-emitter-steward@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/emitter-steward/-/emitter-steward-1.0.0.tgz#f3411ade9758a7565df848b2da0cbbd1b46cbd64"
-
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-
-encodeurl@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
-
-engine.io-client@1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.7.0.tgz#0bb81d3563ab7afb668f1e1b400c9403b03006ee"
- dependencies:
- component-emitter "1.1.2"
- component-inherit "0.0.3"
- debug "2.2.0"
- engine.io-parser "1.3.0"
- has-cors "1.1.0"
- indexof "0.0.1"
- parsejson "0.0.1"
- parseqs "0.0.2"
- parseuri "0.0.4"
- ws "1.1.1"
- xmlhttprequest-ssl "1.5.1"
- yeast "0.1.2"
-
-engine.io-parser@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.0.tgz#61a35c7f3a3ccd1b179e4f52257a7a8cfacaeb21"
- dependencies:
- after "0.8.1"
- arraybuffer.slice "0.0.6"
- base64-arraybuffer "0.1.5"
- blob "0.0.4"
- has-binary "0.1.6"
- wtf-8 "1.0.0"
-
-engine.io@1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.7.0.tgz#a417857af4995d9bbdf8a0e03a87e473ebe64fbe"
- dependencies:
- accepts "1.3.3"
- base64id "0.1.0"
- debug "2.2.0"
- engine.io-parser "1.3.0"
- ws "1.1.1"
-
-enhanced-resolve@~0.9.0:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
- dependencies:
- graceful-fs "^4.1.2"
- memory-fs "^0.2.0"
- tapable "^0.1.8"
-
-errno@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
- dependencies:
- prr "~0.0.0"
-
-error-ex@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
- dependencies:
- is-arrayish "^0.2.1"
-
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-
-escape-string-regexp@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-esutils@^2.0.0, esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-etag@^1.7.0, etag@~1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8"
-
-eventemitter3@1.x.x:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
-
-events@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
-
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- dependencies:
- is-posix-bracket "^0.1.0"
-
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- dependencies:
- fill-range "^2.1.0"
-
-express@2.5.x:
- version "2.5.11"
- resolved "https://registry.yarnpkg.com/express/-/express-2.5.11.tgz#4ce8ea1f3635e69e49f0ebb497b6a4b0a51ce6f0"
- dependencies:
- connect "1.x"
- mime "1.2.4"
- mkdirp "0.3.0"
- qs "0.4.x"
-
-extend@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
-
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- dependencies:
- is-extglob "^1.0.0"
-
-extsprintf@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
-
-filename-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
-
-fill-range@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^1.1.3"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
-finalhandler@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7"
- dependencies:
- debug "~2.2.0"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- statuses "~1.3.0"
- unpipe "~1.0.0"
-
-find-cache-dir@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
- dependencies:
- commondir "^1.0.1"
- mkdirp "^0.5.1"
- pkg-dir "^1.0.0"
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-for-in@^0.1.5:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
-
-for-own@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072"
- dependencies:
- for-in "^0.1.5"
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-
-form-data@~1.0.0-rc3:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c"
- dependencies:
- async "^2.0.1"
- combined-stream "^1.0.5"
- mime-types "^2.1.11"
-
-form-data@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-formidable@1.0.x:
- version "1.0.17"
- resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559"
-
-fresh@^0.3.0, fresh@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f"
-
-fs-extra@0.30.0:
- version "0.30.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
- path-is-absolute "^1.0.0"
- rimraf "^2.2.8"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-fsevents@^1.0.0:
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44"
- dependencies:
- nan "^2.3.0"
- node-pre-gyp "^0.6.29"
-
-fstream-ignore@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
- dependencies:
- fstream "^1.0.0"
- inherits "2"
- minimatch "^3.0.0"
-
-fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822"
- dependencies:
- graceful-fs "^4.1.2"
- inherits "~2.0.0"
- mkdirp ">=0.5 0"
- rimraf "2"
-
-gauge@~2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46"
- dependencies:
- aproba "^1.0.3"
- console-control-strings "^1.0.0"
- has-color "^0.1.7"
- has-unicode "^2.0.0"
- object-assign "^4.1.0"
- signal-exit "^3.0.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wide-align "^1.1.0"
-
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
-get-caller-file@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-
-getpass@^0.1.1:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
- dependencies:
- assert-plus "^1.0.0"
-
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- dependencies:
- is-glob "^2.0.0"
-
-glob@^7.0.5:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^9.0.0:
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.13.0.tgz#d97706b61600d8dbe94708c367d3fdcf48470b8f"
-
-graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131"
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-
-har-validator@~2.0.2, har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-has-binary@0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10"
- dependencies:
- isarray "0.0.1"
-
-has-binary@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
- dependencies:
- isarray "0.0.1"
-
-has-color@^0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
-
-has-cors@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-
-hawk@~3.1.0, hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
-home-or-tmp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
-
-hosted-git-info@^2.1.4:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
-
-http-browserify@^1.3.2:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20"
- dependencies:
- Base64 "~0.2.0"
- inherits "~2.0.1"
-
-http-errors@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.0.tgz#b1cb3d8260fd8e2386cad3189045943372d48211"
- dependencies:
- inherits "2.0.1"
- setprototypeof "1.0.1"
- statuses ">= 1.3.0 < 2"
-
-http-proxy@1.15.1:
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.15.1.tgz#91a6088172e79bc0e821d5eb04ce702f32446393"
- dependencies:
- eventemitter3 "1.x.x"
- requires-port "1.x.x"
-
-http-signature@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.11.0.tgz#1796cf67a001ad5cd6849dca0991485f09089fe6"
- dependencies:
- asn1 "0.1.11"
- assert-plus "^0.1.5"
- ctype "0.5.3"
-
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-https-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd"
-
-ieee754@^1.1.4:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
-
-immutable@^3.7.6, immutable@3.8.1:
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2"
-
-indexof@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-inherits@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-
-ini@~1.3.0:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
-
-interpret@^0.6.4:
- version "0.6.6"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b"
-
-invariant@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.1.tgz#b097010547668c7e337028ebe816ebe36c8a8d54"
- dependencies:
- loose-envify "^1.0.0"
-
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-
-is-binary-path@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
- dependencies:
- binary-extensions "^1.0.0"
-
-is-buffer@^1.0.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
-
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- dependencies:
- builtin-modules "^1.0.0"
-
-is-dotfile@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- dependencies:
- is-primitive "^2.0.0"
-
-is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
-
-is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- dependencies:
- is-extglob "^1.0.0"
-
-is-my-json-valid@^2.12.4:
- version "2.15.0"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-number@^2.0.2, is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- dependencies:
- kind-of "^3.0.2"
-
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
-
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
-
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
-is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
-is-utf8@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
-
-isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- dependencies:
- isarray "1.0.0"
-
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-
-jodid25519@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
- dependencies:
- jsbn "~0.1.0"
-
-js-tokens@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5"
-
-jsbn@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
-
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-
-json3@3.2.6:
- version "3.2.6"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b"
-
-json3@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-json5@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2"
-
-jsonfile@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonpointer@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5"
-
-jsprim@^1.2.2:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
- dependencies:
- extsprintf "1.0.2"
- json-schema "0.2.3"
- verror "1.3.6"
-
-kind-of@^3.0.2:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74"
- dependencies:
- is-buffer "^1.0.2"
-
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- dependencies:
- invert-kv "^1.0.0"
-
-limiter@^1.0.5:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.0.tgz#6e2bd12ca3fcdaa11f224e2e53c896df3f08d913"
-
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
-loader-utils@^0.2.11:
- version "0.2.16"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d"
- dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
- object-assign "^4.0.1"
-
-localtunnel@1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.8.1.tgz#d51b2bb7a7066afb05b57fc9db844015098f2e17"
- dependencies:
- debug "2.2.0"
- openurl "1.1.0"
- request "2.65.0"
- yargs "3.29.0"
-
-lodash.pickby@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff"
-
-lodash@^3.10.1:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-
-lodash@^4.14.0, lodash@^4.2.0:
- version "4.16.6"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777"
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-loose-envify@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8"
- dependencies:
- js-tokens "^2.0.0"
-
-memory-fs@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
-
-memory-fs@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20"
- dependencies:
- errno "^0.1.3"
- readable-stream "^2.0.1"
-
-micromatch@^2.1.5, micromatch@2.3.11:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
-mime-db@~1.24.0:
- version "1.24.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.24.0.tgz#e2d13f939f0016c6e4e9ad25a8652f126c467f0c"
-
-mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7:
- version "2.1.12"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.12.tgz#152ba256777020dd4663f54c2e7bc26381e71729"
- dependencies:
- mime-db "~1.24.0"
-
-mime@^1.3.4, "mime@>= 0.0.1", mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
-
-mime@1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.4.tgz#11b5fdaf29c2509255176b80ad520294f5de92b7"
-
-minimatch@^3.0.0, minimatch@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
- dependencies:
- brace-expansion "^1.0.0"
-
-minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-mkdirp@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
-
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-
-nan@^2.0.0, nan@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232"
-
-negotiator@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-
-node-libs-browser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c"
- dependencies:
- assert "^1.1.1"
- browserify-zlib "~0.1.4"
- buffer "^4.9.0"
- console-browserify "^1.1.0"
- constants-browserify "0.0.1"
- crypto-browserify "~3.2.6"
- domain-browser "^1.1.1"
- events "^1.0.0"
- http-browserify "^1.3.2"
- https-browserify "0.0.0"
- os-browserify "~0.1.2"
- path-browserify "0.0.0"
- process "^0.11.0"
- punycode "^1.2.4"
- querystring-es3 "~0.2.0"
- readable-stream "^1.1.13"
- stream-browserify "^1.0.0"
- string_decoder "~0.10.25"
- timers-browserify "^1.0.1"
- tty-browserify "0.0.0"
- url "~0.10.1"
- util "~0.10.3"
- vm-browserify "0.0.4"
-
-node-pre-gyp@^0.6.29, node-pre-gyp@^0.6.4:
- version "0.6.31"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017"
- dependencies:
- mkdirp "~0.5.1"
- nopt "~3.0.6"
- npmlog "^4.0.0"
- rc "~1.1.6"
- request "^2.75.0"
- rimraf "~2.5.4"
- semver "~5.3.0"
- tar "~2.2.1"
- tar-pack "~3.3.0"
-
-node-uuid@~1.4.3, node-uuid@~1.4.7:
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f"
-
-node-zopfli@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/node-zopfli/-/node-zopfli-2.0.2.tgz#a7a473ae92aaea85d4c68d45bbf2c944c46116b8"
- dependencies:
- commander "^2.8.1"
- defaults "^1.0.2"
- nan "^2.0.0"
- node-pre-gyp "^0.6.4"
-
-nopt@~3.0.6, nopt@3.0.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
-normalize-package-data@^2.3.2:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df"
- dependencies:
- hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-path@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
-
-npmlog@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f"
- dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.6.0"
- set-blocking "~2.0.0"
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-oauth-sign@~0.8.0, oauth-sign@~0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-
-object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
-
-object-component@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
-
-object-path@^0.9.0:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5"
-
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- dependencies:
- ee-first "1.1.1"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-once@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
- dependencies:
- wrappy "1"
-
-openurl@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.0.tgz#e2f2189d999c04823201f083f0f1a7cd8903187a"
-
-opn@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
- dependencies:
- object-assign "^4.0.1"
- pinkie-promise "^2.0.0"
-
-optimist@~0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-options@>=0.0.5:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
-
-os-browserify@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54"
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-os-locale@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
- dependencies:
- lcid "^1.0.0"
-
-os-tmpdir@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-
-pako@~0.2.0:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
-
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- dependencies:
- error-ex "^1.2.0"
-
-parsejson@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc"
- dependencies:
- better-assert "~1.0.0"
-
-parseqs@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7"
- dependencies:
- better-assert "~1.0.0"
-
-parseuri@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350"
- dependencies:
- better-assert "~1.0.0"
-
-parseurl@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
-
-path-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-pbkdf2-compat@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288"
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- dependencies:
- find-up "^1.0.0"
-
-portscanner@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-1.0.0.tgz#3b5cfe393828b5160abc600e6270ebc2f1590558"
- dependencies:
- async "0.1.15"
-
-preact@^6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/preact/-/preact-6.4.0.tgz#1b8c99754b002639a1c33e68175eefa98a01cc14"
-
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-
-private@^0.1.6, private@~0.1.5:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.6.tgz#55c6a976d0f9bafb9924851350fe47b9b5fbb7c1"
-
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-process@^0.11.0, process@~0.11.0:
- version "0.11.9"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1"
-
-prr@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
-
-punycode@^1.2.4, punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-
-"qs@>= 0.4.0", qs@~6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
-
-qs@~5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.1.tgz#801fee030e0b9450d6385adc48a4cc55b44aedfc"
-
-qs@0.4.x:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-0.4.2.tgz#3cac4c861e371a8c9c4770ac23cda8de639b8e5f"
-
-qs@6.2.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625"
-
-querystring-es3@~0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-
-randomatic@^1.1.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b"
- dependencies:
- is-number "^2.0.2"
- kind-of "^3.0.2"
-
-range-parser@^1.0.3, range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
-
-rc@~1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9"
- dependencies:
- deep-extend "~0.4.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~1.0.4"
-
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
-
-readable-stream@^1.0.27-1, readable-stream@^1.1.13:
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.1.tgz#c459a6687ad6195f936b959870776edef27a7655"
- dependencies:
- buffer-shims "^1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
-readable-stream@~2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
-readable-stream@~2.1.4:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
- dependencies:
- buffer-shims "^1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~0.10.x"
- util-deprecate "~1.0.1"
-
-readdirp@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
- dependencies:
- graceful-fs "^4.1.2"
- minimatch "^3.0.2"
- readable-stream "^2.0.2"
- set-immediate-shim "^1.0.1"
-
-regenerate@^1.2.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
-
-regenerator-runtime@^0.9.5:
- version "0.9.6"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029"
-
-regex-cache@^0.4.2:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
- dependencies:
- is-equal-shallow "^0.1.3"
- is-primitive "^2.0.0"
-
-regexpu-core@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
- dependencies:
- regenerate "^1.2.1"
- regjsgen "^0.2.0"
- regjsparser "^0.1.4"
-
-regjsgen@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-
-regjsparser@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
- dependencies:
- jsesc "~0.5.0"
-
-repeat-element@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- dependencies:
- is-finite "^1.0.0"
-
-request@^2.75.0:
- version "2.78.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.78.0.tgz#e1c8dec346e1c81923b24acdb337f11decabe9cc"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- node-uuid "~1.4.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
-
-request@2.65.0:
- version "2.65.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.65.0.tgz#cc1a3bc72b96254734fc34296da322f9486ddeba"
- dependencies:
- aws-sign2 "~0.6.0"
- bl "~1.0.0"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~1.0.0-rc3"
- har-validator "~2.0.2"
- hawk "~3.1.0"
- http-signature "~0.11.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- node-uuid "~1.4.3"
- oauth-sign "~0.8.0"
- qs "~5.2.0"
- stringstream "~0.0.4"
- tough-cookie "~2.2.0"
- tunnel-agent "~0.4.1"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
-
-requires-port@1.x.x:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
-
-resp-modifier@6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f"
- dependencies:
- debug "^2.2.0"
- minimatch "^3.0.2"
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
-rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2:
- version "2.5.4"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
- dependencies:
- glob "^7.0.5"
-
-ripemd160@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce"
-
-rx@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
-
-semver@~5.3.0, "semver@2 || 3 || 4 || 5":
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-
-send@0.14.1:
- version "0.14.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a"
- dependencies:
- debug "~2.2.0"
- depd "~1.1.0"
- destroy "~1.0.4"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.7.0"
- fresh "0.3.0"
- http-errors "~1.5.0"
- mime "1.3.4"
- ms "0.7.1"
- on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.3.0"
-
-serve-index@1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b"
- dependencies:
- accepts "~1.3.3"
- batch "0.5.3"
- debug "~2.2.0"
- escape-html "~1.0.3"
- http-errors "~1.5.0"
- mime-types "~2.1.11"
- parseurl "~1.3.1"
-
-serve-static@1.11.1:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805"
- dependencies:
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- parseurl "~1.3.1"
- send "0.14.1"
-
-server-destroy@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
-
-set-blocking@^2.0.0, set-blocking@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-
-set-immediate-shim@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
-
-setprototypeof@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.1.tgz#52009b27888c4dc48f591949c0a8275834c1ca7e"
-
-sha.js@2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba"
-
-signal-exit@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81"
-
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- dependencies:
- hoek "2.x.x"
-
-socket.io-adapter@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f"
- dependencies:
- debug "2.2.0"
- socket.io-parser "2.2.2"
-
-socket.io-client@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.5.0.tgz#08232d0adb5a665a7c24bd9796557a33f58f38ae"
- dependencies:
- backo2 "1.0.2"
- component-bind "1.0.0"
- component-emitter "1.2.0"
- debug "2.2.0"
- engine.io-client "1.7.0"
- has-binary "0.1.7"
- indexof "0.0.1"
- object-component "0.0.3"
- parseuri "0.0.4"
- socket.io-parser "2.2.6"
- to-array "0.1.4"
-
-socket.io-parser@2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417"
- dependencies:
- benchmark "1.0.0"
- component-emitter "1.1.2"
- debug "0.7.4"
- isarray "0.0.1"
- json3 "3.2.6"
-
-socket.io-parser@2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99"
- dependencies:
- benchmark "1.0.0"
- component-emitter "1.1.2"
- debug "2.2.0"
- isarray "0.0.1"
- json3 "3.3.2"
-
-socket.io@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.5.0.tgz#024dd9719d9267d6a6984eebe2ab5ceb9a0b8a98"
- dependencies:
- debug "2.2.0"
- engine.io "1.7.0"
- has-binary "0.1.7"
- socket.io-adapter "0.4.0"
- socket.io-client "1.5.0"
- socket.io-parser "2.2.6"
-
-source-list-map@~0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f"
-
-source-map-support@^0.4.2:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.6.tgz#32552aa64b458392a85eab3b0b5ee61527167aeb"
- dependencies:
- source-map "^0.5.3"
-
-source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-
-source-map@~0.4.1:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
-spdx-correct@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
- dependencies:
- spdx-license-ids "^1.0.2"
-
-spdx-expression-parse@~1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
-
-spdx-license-ids@^1.0.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
-
-sshpk@^1.7.0:
- version "1.10.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0"
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
- bcrypt-pbkdf "^1.0.0"
- ecc-jsbn "~0.1.1"
- jodid25519 "^1.0.0"
- jsbn "~0.1.0"
- tweetnacl "~0.14.0"
-
-"statuses@>= 1.3.0 < 2", statuses@~1.3.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
-stream-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193"
- dependencies:
- inherits "~2.0.1"
- readable-stream "^1.0.27-1"
-
-stream-throttle@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3"
- dependencies:
- commander "^2.2.0"
- limiter "^1.0.5"
-
-string_decoder@~0.10.25, string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string-width@^1.0.1, string-width@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-stringstream@~0.0.4:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
-
-strip-ansi@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"
- dependencies:
- ansi-regex "^1.0.0"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- dependencies:
- is-utf8 "^0.2.0"
-
-strip-json-comments@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-supports-color@^3.1.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
- dependencies:
- has-flag "^1.0.0"
-
-tapable@^0.1.8, tapable@~0.1.8:
- version "0.1.10"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
-
-tar-pack@~3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae"
- dependencies:
- debug "~2.2.0"
- fstream "~1.0.10"
- fstream-ignore "~1.0.5"
- once "~1.3.3"
- readable-stream "~2.1.4"
- rimraf "~2.5.1"
- tar "~2.2.1"
- uid-number "~0.0.6"
-
-tar@~2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
- dependencies:
- block-stream "*"
- fstream "^1.0.2"
- inherits "2"
-
-tfunk@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.0.2.tgz#327ebc6176af2680c6cd0d6d22297c79d7f96efd"
- dependencies:
- chalk "^1.1.1"
- object-path "^0.9.0"
-
-timers-browserify@^1.0.1:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
- dependencies:
- process "~0.11.0"
-
-to-array@0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
-
-to-fast-properties@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320"
-
-tough-cookie@~2.2.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.2.2.tgz#c83a1830f4e5ef0b93ef2a3488e724f8de016ac7"
-
-tough-cookie@~2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
- dependencies:
- punycode "^1.4.1"
-
-tty-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
-
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.3.tgz#3da382f670f25ded78d7b3d1792119bca0b7132d"
-
-ua-parser-js@0.7.10:
- version "0.7.10"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.10.tgz#917559ddcce07cbc09ece7d80495e4c268f4ef9f"
-
-uglify-js@~2.7.3:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2"
- dependencies:
- async "~0.2.6"
- source-map "~0.5.1"
- uglify-to-browserify "~1.0.0"
- yargs "~3.10.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-uid-number@~0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
-
-ultron@1.0.x:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
-
-underscore@1.7.x:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
-
-unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-
-url@~0.10.1:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64"
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-util@~0.10.3, util@0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
- dependencies:
- inherits "2.0.1"
-
-utils-merge@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
-
-validate-npm-package-license@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
- dependencies:
- spdx-correct "~1.0.0"
- spdx-expression-parse "~1.0.0"
-
-verror@1.3.6:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
- dependencies:
- extsprintf "1.0.2"
-
-vm-browserify@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
- dependencies:
- indexof "0.0.1"
-
-watchpack@^0.2.1:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b"
- dependencies:
- async "^0.9.0"
- chokidar "^1.0.0"
- graceful-fs "^4.1.2"
-
-webpack-core@~0.6.0:
- version "0.6.8"
- resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a"
- dependencies:
- source-list-map "~0.1.0"
- source-map "~0.4.1"
-
-webpack-dev-middleware@^1.2.0:
- version "1.8.4"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.8.4.tgz#e8765c9122887ce9e3abd4cc9c3eb31b61e0948d"
- dependencies:
- memory-fs "~0.3.0"
- mime "^1.3.4"
- path-is-absolute "^1.0.0"
- range-parser "^1.0.3"
-
-webpack-hot-middleware@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-1.2.0.tgz#6f741eb474b182f27ccbe85a25e80fbab0b89818"
- dependencies:
- strip-ansi "^2.0.1"
-
-webpack-sources@^0.1.0:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.3.tgz#15ce2fb79d0a1da727444ba7c757bf164294f310"
- dependencies:
- source-list-map "~0.1.0"
- source-map "~0.5.3"
-
-webpack@^1.10.5:
- version "1.13.3"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815"
- dependencies:
- acorn "^3.0.0"
- async "^1.3.0"
- clone "^1.0.2"
- enhanced-resolve "~0.9.0"
- interpret "^0.6.4"
- loader-utils "^0.2.11"
- memory-fs "~0.3.0"
- mkdirp "~0.5.0"
- node-libs-browser "^0.6.0"
- optimist "~0.6.0"
- supports-color "^3.1.0"
- tapable "~0.1.8"
- uglify-js "~2.7.3"
- watchpack "^0.2.1"
- webpack-core "~0.6.0"
-
-weinre@^2.0.0-pre-I0Z7U9OV:
- version "2.0.0-pre-I0Z7U9OV"
- resolved "https://registry.yarnpkg.com/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz#fef8aa223921f7b40bbbbd4c3ed4302f6fd0a813"
- dependencies:
- express "2.5.x"
- nopt "3.0.x"
- underscore "1.7.x"
-
-which-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-
-wide-align@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
- dependencies:
- string-width "^1.0.1"
-
-window-size@^0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
-
-window-size@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wrap-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f"
- dependencies:
- string-width "^1.0.1"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-ws@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018"
- dependencies:
- options ">=0.0.5"
- ultron "1.0.x"
-
-wtf-8@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
-
-xmlhttprequest-ssl@1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67"
-
-xtend@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-y18n@^3.2.0, y18n@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
-
-yargs-parser@^4.0.2:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.1.0.tgz#313df030f20124124aeae8fbab2da53ec28c56d7"
- dependencies:
- camelcase "^3.0.0"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
-
-yargs@3.29.0:
- version "3.29.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c"
- dependencies:
- camelcase "^1.2.1"
- cliui "^3.0.3"
- decamelize "^1.0.0"
- os-locale "^1.4.0"
- window-size "^0.1.2"
- y18n "^3.2.0"
-
-yargs@6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.0.0.tgz#900479df4e8bf6ab0e87216f5ed2b2760b968345"
- dependencies:
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- window-size "^0.2.0"
- y18n "^3.2.1"
- yargs-parser "^4.0.2"
-
-yeast@0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
-
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/.babelrc b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/.babelrc
deleted file mode 100644
index 8d73672..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/.babelrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "presets": ["react", "es2015"]
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app.js b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app.js
deleted file mode 100644
index 6c25931..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/css/main.css b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/css/main.css
deleted file mode 100644
index e9bd4c2..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/css/main.css
+++ /dev/null
@@ -1,35 +0,0 @@
-.hello-world {
- margin: 200px 0;
- font-size: 70px;
- text-align: center;
-}
-
-.hello-world__i {
- display: inline-block;
- -webkit-animation: rotate 4000ms infinite linear;
- animation: rotate 4000ms infinite linear;
-}
-
-@keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-@-webkit-keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/index.html b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/index.html
deleted file mode 100644
index f2ef135..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Browsersync, Webpack + React Hot Loader Example
-
-
-
-
- Browsersync, Webpack + React Hot Loader Example
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/HelloWorld.jsx b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/HelloWorld.jsx
deleted file mode 100644
index 1dc36e7..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/HelloWorld.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React, { Component } from 'react';
-
-export default class HelloWorld extends Component {
- render() {
- // Play with it...
- const name = 'World';
-
- return (
-
- Hello, {name}
-
- );
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/main.js b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/main.js
deleted file mode 100644
index e5a9d72..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/app/js/main.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react';
-import { render } from 'react-dom';
-// It's important to not define HelloWorld component right in this file
-// because in that case it will do full page reload on change
-import HelloWorld from './HelloWorld.jsx';
-
-render( , document.getElementById('react-root'));
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/desc.md b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/desc.md
deleted file mode 100644
index 83b9766..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-To see `react-hot-loader` in action, edit `js/HelloWorld.jsx`
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/package.json b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/package.json
deleted file mode 100644
index 29e3f87..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "webpack.react-hot-loader",
- "version": "1.0.0",
- "description": "Webpack + React Hot Loader",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "babel-core": "^6.21.0",
- "babel-loader": "^6.2.10",
- "babel-preset-es2015": "^6.9.0",
- "babel-preset-react": "^6.16.0",
- "browser-sync": "^2.8.0",
- "react": "^15.4.1",
- "react-dom": "^15.4.1",
- "react-hot-loader": "^1.2.8",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^2.13.2"
- }
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/readme.md b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/readme.md
deleted file mode 100644
index 3122cda..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/readme.md
+++ /dev/null
@@ -1,82 +0,0 @@
-#Browsersync - Webpack + React Hot Loader
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.react-hot-loader
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-To see `react-hot-loader` in action, edit `js/HelloWorld.jsx`
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/webpack.config.js b/node_modules/bs-recipes/recipes/webpack.react-hot-loader/webpack.config.js
deleted file mode 100644
index 0ae3a09..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-hot-loader/webpack.config.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-
-module.exports = {
- debug: true,
- devtool: '#eval-source-map',
- context: path.join(__dirname, 'app', 'js'),
-
- entry: [
- 'webpack/hot/dev-server',
- 'webpack-hot-middleware/client',
- './main'
- ],
-
- output: {
- path: path.join(__dirname, 'app', 'js'),
- publicPath: '/js/',
- filename: 'bundle.js'
- },
-
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoErrorsPlugin()
- ],
-
- module: {
- loaders: [
- { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['react-hot', 'babel'] }
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/.babelrc b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/.babelrc
deleted file mode 100644
index 5bb7e4a..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/.babelrc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Source:
-// https://github.com/gaearon/react-transform-hmr/tree/f22f9a938ed295e0c5ebe756d73fdae4c3a6fdef
-{
- "presets": ["react", "es2015"],
- "env": {
- // only enable it when process.env.NODE_ENV is 'development' or undefined
- "development": {
- "plugins": [
- ["react-transform", {
- "transforms": [{
- "transform": "react-transform-hmr",
- // if you use React Native, pass "react-native" instead:
- "imports": ["react"],
- // this is important for Webpack HMR:
- "locals": ["module"]
- }]
- }]
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app.js b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app.js
deleted file mode 100644
index 6c25931..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/css/main.css b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/css/main.css
deleted file mode 100644
index e9bd4c2..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/css/main.css
+++ /dev/null
@@ -1,35 +0,0 @@
-.hello-world {
- margin: 200px 0;
- font-size: 70px;
- text-align: center;
-}
-
-.hello-world__i {
- display: inline-block;
- -webkit-animation: rotate 4000ms infinite linear;
- animation: rotate 4000ms infinite linear;
-}
-
-@keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-
-@-webkit-keyframes rotate {
- from {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
-
- to {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/index.html b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/index.html
deleted file mode 100644
index f2ef135..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Browsersync, Webpack + React Hot Loader Example
-
-
-
-
- Browsersync, Webpack + React Hot Loader Example
-
-
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/HelloWorld.jsx b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/HelloWorld.jsx
deleted file mode 100644
index 1dc36e7..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/HelloWorld.jsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import React, { Component } from 'react';
-
-export default class HelloWorld extends Component {
- render() {
- // Play with it...
- const name = 'World';
-
- return (
-
- Hello, {name}
-
- );
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/main.js b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/main.js
deleted file mode 100644
index e5a9d72..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/app/js/main.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import React from 'react';
-import { render } from 'react-dom';
-// It's important to not define HelloWorld component right in this file
-// because in that case it will do full page reload on change
-import HelloWorld from './HelloWorld.jsx';
-
-render( , document.getElementById('react-root'));
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/desc.md b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/desc.md
deleted file mode 100644
index f4c7b99..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-To see `react-transform-hmr` in action, edit `js/HelloWorld.jsx`
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/package.json b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/package.json
deleted file mode 100644
index f278b06..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/package.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "webpack.react-transform-hmr",
- "version": "1.0.0",
- "description": "Webpack + React Transform HMR",
- "main": "app.js",
- "author": "Sergey Slipchenko ",
- "license": "MIT",
- "scripts": {
- "start": "node ."
- },
- "dependencies": {
- "babel-core": "^6.21.0",
- "babel-loader": "^6.2.10",
- "babel-plugin-react-transform": "^2.0.2",
- "babel-preset-es2015": "^6.9.0",
- "babel-preset-react": "^6.16.0",
- "browser-sync": "^2.8.0",
- "react": "^15.4.1",
- "react-dom": "^15.4.1",
- "react-transform-hmr": "^1.0.0",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0",
- "webpack-hot-middleware": "^2.13.2"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/readme.md b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/readme.md
deleted file mode 100644
index 526d8ff..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/readme.md
+++ /dev/null
@@ -1,82 +0,0 @@
-#Browsersync - Webpack + React Transform HMR
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.react-transform-hmr
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-To see `react-transform-hmr` in action, edit `js/HelloWorld.jsx`
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync');
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var webpackHotMiddleware = require('webpack-hot-middleware');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync({
- server: {
- baseDir: 'app',
-
- middleware: [
- webpackDevMiddleware(bundler, {
- // IMPORTANT: dev middleware can't access config, so we should
- // provide publicPath by ourselves
- publicPath: webpackConfig.output.publicPath,
-
- // pretty colored output
- stats: { colors: true }
-
- // for other settings see
- // http://webpack.github.io/docs/webpack-dev-middleware.html
- }),
-
- // bundler should be the same as above
- webpackHotMiddleware(bundler)
- ]
- },
-
- // no need to watch '*.js' here, webpack will take care of it for us,
- // including full page reloads if HMR won't work
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/webpack.config.js b/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/webpack.config.js
deleted file mode 100644
index 840feaa..0000000
--- a/node_modules/bs-recipes/recipes/webpack.react-transform-hmr/webpack.config.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// For instructions about this file refer to
-// webpack and webpack-hot-middleware documentation
-var webpack = require('webpack');
-var path = require('path');
-
-module.exports = {
- debug: true,
- devtool: '#eval-source-map',
- context: path.join(__dirname, 'app', 'js'),
-
- entry: [
- 'webpack/hot/dev-server',
- 'webpack-hot-middleware/client',
- './main'
- ],
-
- output: {
- path: path.join(__dirname, 'app', 'js'),
- publicPath: '/js/',
- filename: 'bundle.js'
- },
-
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoErrorsPlugin()
- ],
-
- module: {
- loaders: [
- { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'] }
- ]
- }
-};
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/app.js b/node_modules/bs-recipes/recipes/webpack.typescript.react/app.js
deleted file mode 100644
index a7b2712..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/app.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var stripAnsi = require('strip-ansi');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.dev.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Reload all devices when bundle is complete
- * or send a fullscreen error message to the browser instead
- */
-bundler.plugin('done', function (stats) {
- if (stats.hasErrors() || stats.hasWarnings()) {
- return browserSync.sockets.emit('fullscreen:message', {
- title: "Webpack Error:",
- body: stripAnsi(stats.toString()),
- timeout: 100000
- });
- }
- browserSync.reload();
-});
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync.init({
- server: 'app',
- logFileChanges: false,
- middleware: [
- webpackDevMiddleware(bundler, {
- publicPath: webpackConfig.output.publicPath,
- stats: {colors: true}
- })
- ],
- plugins: ['bs-fullscreen-message'],
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/app/dist/bundle.js b/node_modules/bs-recipes/recipes/webpack.typescript.react/app/dist/bundle.js
deleted file mode 100644
index 080bce5..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/app/dist/bundle.js
+++ /dev/null
@@ -1,6 +0,0 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}([function(e,t,n){e.exports=n(3)},function(e,t){/*!
- * react-lite.js v0.15.3
- * (c) 2016 Jade Gu
- * Released under the MIT License.
- */
-"use strict";function n(e,t){if(!t)return e;for(var n=Object.keys(t),r=n.length;r--;)void 0!==t[n[r]]&&(e[n[r]]=t[n[r]]);return e}function r(e,t,n,r){var o=n;return null==t?(fe(e,n),n.parentNode.removeChild(n)):e.type!==t.type||t.key!==e.key?(fe(e,n),o=pe(t,r,n.namespaceURI),n.parentNode.replaceChild(o,n)):e!==t&&(o=de(e,t,n,r)),o}function o(e){this.instance=e,this.pendingStates=[],this.pendingCallbacks=[],this.isPending=!1,this.nextProps=this.nextContext=null,this.clearCallbacks=this.clearCallbacks.bind(this)}function i(e,t){this.$updater=new o(this),this.$cache={isMounted:!1},this.props=e,this.state={},this.refs={},this.context=t||{}}var a=!0,l="http://www.w3.org/1999/xlink",c="http://www.w3.org/XML/1998/namespace",s="http://www.w3.org/2000/svg",u="liteid",p=2,d=3,f=4,h=5,v={clipPath:"clip-path",fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space",acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",autoCompconste:"autocompconste",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"},m={xlinkActuate:l,xlinkArcrole:l,xlinkHref:l,xlinkRole:l,xlinkShow:l,xlinkTitle:l,xlinkType:l,xmlBase:c,xmlLang:c,xmlSpace:c},y={children:a,type:a,clipPath:a,cx:a,cy:a,d:a,dx:a,dy:a,fill:a,fillOpacity:a,fontFamily:a,fontSize:a,fx:a,fy:a,gradientTransform:a,gradientUnits:a,markerEnd:a,markerMid:a,markerStart:a,offset:a,opacity:a,patternContentUnits:a,patternUnits:a,points:a,preserveAspectRatio:a,r:a,rx:a,ry:a,spreadMethod:a,stopColor:a,stopOpacity:a,stroke:a,strokeDasharray:a,strokeLinecap:a,strokeOpacity:a,strokeWidth:a,textAnchor:a,transform:a,version:a,viewBox:a,x1:a,x2:a,x:a,xlinkActuate:a,xlinkArcrole:a,xlinkHref:a,xlinkRole:a,xlinkShow:a,xlinkTitle:a,xlinkType:a,xmlBase:a,xmlLang:a,xmlSpace:a,y1:a,y2:a,y:a,allowFullScreen:a,allowTransparency:a,charSet:a,challenge:a,classID:a,cols:a,contextMenu:a,dateTime:a,form:a,formAction:a,formEncType:a,formMethod:a,formTarget:a,frameBorder:a,height:a,inputMode:a,is:a,keyParams:a,keyType:a,list:a,manifest:a,maxLength:a,media:a,minLength:a,nonce:a,role:a,rows:a,size:a,sizes:a,srcSet:a,width:a,wmode:a,about:a,datatype:a,inlist:a,prefix:a,property:a,resource:a,"typeof":a,vocab:a,autoCapitalize:a,autoCorrect:a,itemProp:a,itemType:a,itemID:a,itemRef:a,security:a,unselectable:a},x={nodeName:a,nodeValue:a,nodeType:a,parentNode:a,childNodes:a,classList:a,firstChild:a,lastChild:a,previousSibling:a,previousElementSibling:a,nextSibling:a,nextElementSibling:a,attributes:a,ownerDocument:a,namespaceURI:a,localName:a,baseURI:a,prefix:a,length:a,specified:a,tagName:a,offsetTop:a,offsetLeft:a,offsetWidth:a,offsetHeight:a,offsetParent:a,scrollWidth:a,scrollHeight:a,clientTop:a,clientLeft:a,clientWidth:a,clientHeight:a,x:a,y:a},g={animationIterationCount:a,boxFlex:a,boxFlexGroup:a,boxOrdinalGroup:a,columnCount:a,flex:a,flexGrow:a,flexPositive:a,flexShrink:a,flexNegative:a,flexOrder:a,fontWeight:a,lineClamp:a,lineHeight:a,opacity:a,order:a,orphans:a,tabSize:a,widows:a,zIndex:a,zoom:a,fillOpacity:a,stopOpacity:a,strokeDashoffset:a,strokeOpacity:a,strokeWidth:a},k={value:a,checked:a},b={onDoubleClick:"ondblclick"},C={onmouseleave:a,onmouseenter:a,onload:a,onunload:a,onscroll:a,onfocus:a,onblur:a,onrowexit:a,onbeforeunload:a,onstop:a,ondragdrop:a,ondragenter:a,ondragexit:a,ondraggesture:a,ondragover:a,oncontextmenu:a},w=function(e){return"string"==typeof e},S=function(e){return"function"==typeof e},P=function(e){return"boolean"==typeof e},O=Array.isArray,T=function(){},E=function(e){return e},N=function(e,t){return function(){return e.apply(this,arguments),t.apply(this,arguments)}},M=function wt(e,t,n,r){for(var o=e.length,i=-1;o--;){var a=e[++i];O(a)?wt(a,t,n,r):t(a,n,r)}},U=function(e,t){for(var n=0,r=e.length;r>n;n++)t(e[n],n)},I=function(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)},_=function(e,t,n){var r={};for(var o in e)e.hasOwnProperty(o)&&(r[o]=!0,n(o));for(var o in t)t.hasOwnProperty(o)&&r[o]!==!0&&n(o)},A=0,D=function(){return++A},$=/^on/i,L=function(e){return"dangerouslySetInnerHTML"===e},R=function(e){return"style"===e},W=function(e,t,n){if("children"!==t){var r=t;t=v[t]||t,$.test(t)?ze(e,t,n):R(t)?X(e,n):L(t)?n&&null!=n.__html&&(e.innerHTML=n.__html):t in e&&y[r]!==!0?x[t]!==!0&&("title"===t&&null==n&&(n=""),e[t]=n):null==n?e.removeAttribute(t):m.hasOwnProperty(r)?e.setAttributeNS(m[r],t,n):e.setAttribute(t,n)}},z=function(e,t){for(var n in t)t.hasOwnProperty(n)&&W(e,n,t[n])},H=function(e,t,n){if("children"!==t)if(t=v[t]||t,$.test(t))He(e,t);else if(R(t))V(e,n);else if(L(t))e.innerHTML="";else if(t in e&&y[t]!==!0)if(S(n))e[t]=null;else if(w(n))e[t]="";else if(P(n))e[t]=!1;else try{delete e[t]}catch(r){}else e.removeAttribute(t)},j=null,B=null,F=null,q=function(e){if("children"!==e){var t=B[e],n=1==k[e]?F[e]:j[e];if(t!==n){if(void 0===t)return void H(F,e,n);if(R(e))Z(F,n,t);else if(L(e)){var r=n&&n.__html,o=t&&t.__html;null!=o&&o!==r&&(F.innerHTML=o)}else W(F,e,t)}}},G=function(e,t,n){F=e,j=t,B=n,_(t,n,q),F=j=B=null},V=function(e,t){if(t){var n=e.style;for(var r in t)t.hasOwnProperty(r)&&(n[r]="")}},X=function(e,t){if(t){var n=e.style;for(var r in t)t.hasOwnProperty(r)&&oe(n,r,t[r])}},Y=null,J=null,K=null,Q=function(e){var t=K[e],n=J[e];t!==n&&oe(Y,e,t)},Z=function(e,t,n){t!==n&&(!n&&t?V(e,t):n&&!t?X(e,n):(Y=e.style,J=t,K=n,_(t,n,Q),Y=J=K=null))},ee={},te=["Webkit","ms","Moz","O"],ne=function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)};I(g,function(e,t){U(te,function(e){return ee[ne(e,t)]=!0})}),I(ee,function(e,t){g[t]=e});var re=/^-?\d+(\.\d+)?$/,oe=function(e,t,n){!g[t]&&re.test(n)?e[t]=n+"px":(t="float"===t?"cssFloat":t,n=null==n||P(n)?"":n,e[t]=n)};Object.freeze||(Object.freeze=E);var ie=T,ae=null,le=function(e,t){return{vtype:p,type:e,props:t,refs:ae}},ce=function(e,t){return{vtype:d,id:D(),type:e,props:t}},se=function(e,t){return{vtype:f,id:D(),type:e,props:t,refs:ae}},ue=function(e){return{vtype:h,comment:e}},pe=function(e,t,n){var r=e.vtype,o=null;return r?r===p?o=he(e,t,n):r===f?o=Oe(e,t,n):r===d?o=Ce(e,t,n):r===h&&(o=document.createComment(e.comment)):o=document.createTextNode(e),o},de=function(e,t,n,r){var o=n,i=e.vtype;return i===p?o=ke(e,t,n,r):i===f?o=Te(e,t,n,r):i===d&&(o=we(e,t,n,r)),o},fe=function(e,t){var n=e.vtype;n===p?be(e,t):n===f?Ee(e,t):n===d&&Se(e,t)},he=function(e,t,n){var r=e.type,o=e.props,i=null;return"svg"===r||n===s?(i=document.createElementNS(s,r),n=s):i=document.createElement(r),ve(i,o.children,t),z(i,o),null!==e.ref&&Ae(e.refs,e.ref,i),i},ve=function(e,t,n){e.vchildren=[],O(t)?M(t,xe,e,n):xe(t,e,n)},me=function(e,t,n){for(var r=e.vchildren,o=e.childNodes,i=e.namespaceURI,a=e.vchildren=[],l=0,c=r.length;c>l;l++)r[l].node=o[l];O(t)?M(t,ge,a,r):ge(t,a,r);for(var l=0,c=a.length;c>l;l++){var s=a[l],u=s.vnode,p=s.prev,d=null;p?(d=p.node,s.prev=null,p.index!==s.index&&ye(e,d,o[s.index],r),u!==p.vnode&&(u.vtype?d=de(p.vnode,u,d,n):d.nodeValue=u)):(d=pe(u,n,i),ye(e,d,o[s.index],r,!0))}for(var l=0,c=r.length;c>l;l++){var f=r[l];fe(f.vnode,f.node),e.removeChild(f.node)}},ye=function(e,t,n,r,o){if(n){if(n!==t){o||e.removeChild(t);for(var i=0,a=r.length;a>i;i++){var l=r[i];if(l.node===n)return r.splice(i,1),fe(l.vnode,l.node),void e.replaceChild(t,n)}e.insertBefore(t,n)}}else e.appendChild(t)},xe=function(e,t,n){if(null==e||P(e))return!1;e=e.vtype?e:""+e;var r=pe(e,n,t.namespaceURI);t.appendChild(r),t.vchildren.push({vnode:e,index:t.vchildren.length})},ge=function(e,t,n){if(null==e||P(e))return!1;var r=null;e=e.vtype?e:""+e;for(var o=e,i=o.refs,a=o.type,l=o.key,c=0,s=n.length;s>c;c++){var u=n[c],p=u.vnode;if(p===e||p.refs===i&&p.type===a&&p.key===l){r=u,n.splice(c,1);break}}t.push({prev:r,vnode:e,index:t.length})},ke=function(e,t,n,r){var o=e.props,i=t.props,a=o.dangerouslySetInnerHTML&&o.dangerouslySetInnerHTML.__html,l=i.children;return null==a&&n.vchildren.length?(me(n,l,r),G(n,o,i)):(G(n,o,i),ve(n,l,r)),null!==e.ref?null!==t.ref?Ae(t.refs,t.ref,n):De(e.refs,e.ref):Ae(t.refs,t.ref,n),n},be=function(e,t){for(var n=e.props,r=t.vchildren,o=t.childNodes,i=0,a=r.length;a>i;i++){var l=r[i];fe(l.vnode,o[i])}null!==e.ref&&De(e.refs,e.ref),t.eventStore=t.vchildren=null;for(var c in n)n.hasOwnProperty(c)&&$.test(c)&&(c=Re(c),C[c]===!0&&(t[c]=null))},Ce=function(e,t,n){var r=Pe(e,t),o=pe(r,t,n);return o.cache=o.cache||{},o.cache[e.id]=r,o},we=function(e,t,o,i){var a=e.id,l=o.cache[a];delete o.cache[a];var c=Pe(t,i),s=r(l,c,o,i);return s.cache=s.cache||{},s.cache[t.id]=c,s!==o&&n(s.cache,o.cache),s},Se=function(e,t){var n=e.id,r=t.cache[n];delete t.cache[n],fe(r,t)},Pe=function(e,t){var n=e.type,r=e.props,o=Ne(t,n.contextTypes),i=n(r,o);if(i&&i.render&&(i=i.render()),null===i||i===!1)i=ue("react-empty: "+D());else if(!i||!i.vtype)throw new Error("@"+n.name+"#render:You may have returned undefined, an array or some other invalid object");return i},Oe=function(e,t,n){var r=e.type,o=e.props,i=e.id,a=Ne(t,r.contextTypes),l=new r(o,a),c=l.$updater,s=l.$cache;s.parentContext=t,c.isPending=!0,l.props=l.props||o,l.context=l.context||a,l.componentWillMount&&(l.componentWillMount(),l.state=c.getState());var u=Me(l,t),p=pe(u,u.context,n);return p.cache=p.cache||{},p.cache[i]=l,s.vnode=u,s.node=p,s.isMounted=!0,Ue.push(l),null!==e.ref&&Ae(e.refs,e.ref,l),p},Te=function(e,t,n,r){var o=e.id,i=n.cache[o],a=i.$updater,l=i.$cache,c=t.type,s=t.props,u=Ne(r,c.contextTypes);return delete n.cache[o],n.cache[t.id]=i,l.parentContext=r,i.componentWillReceiveProps&&(a.isPending=!0,i.componentWillReceiveProps(s,u),a.isPending=!1),a.emitUpdate(s,u),null!==e.ref?null!==t.ref?Ae(t.refs,t.ref,i):De(e.refs,e.ref):Ae(t.refs,t.ref,i),l.node},Ee=function(e,t){var n=e.id,r=t.cache[n],o=r.$cache;delete t.cache[n],null!==e.ref&&De(e.refs,e.ref),r.setState=r.forceUpdate=ie,r.componentWillUnmount&&r.componentWillUnmount(),fe(o.vnode,t),delete r.setState,o.isMounted=!1,o.node=o.parentContext=o.vnode=r.refs=r.context=null},Ne=function(e,t){var n={};if(!t||!e)return n;for(var r in t)t.hasOwnProperty(r)&&(n[r]=e[r]);return n},Me=function(e,t){ae=e.refs;var r=e.render();if(null===r||r===!1)r=ue("react-empty: "+D());else if(!r||!r.vtype)throw new Error("@"+e.constructor.name+"#render:You may have returned undefined, an array or some other invalid object");var o=ae=null;return e.getChildContext&&(o=e.getChildContext()),o=o?n(n({},t),o):t,r.context=o,r},Ue=[],Ie=function(){var e=Ue,t=e.length;if(t){Ue=[];for(var n=-1;t--;){var r=e[++n],o=r.$updater;r.componentDidMount&&r.componentDidMount(),o.isPending=!1,o.emitUpdate()}}},_e=function(){return this},Ae=function(e,t,n){e&&null!=t&&n&&(n.nodeName&&!n.getDOMNode&&(n.getDOMNode=_e),S(t)?t(n):e[t]=n)},De=function(e,t){e&&null!=t&&(S(t)?t(null):delete e[t])},$e={updaters:[],isPending:!1,add:function(e){this.updaters.push(e)},batchUpdate:function(){if(!this.isPending){this.isPending=!0;for(var e=this.updaters,t=void 0;t=e.pop();)t.updateComponent();this.isPending=!1}}};o.prototype={emitUpdate:function(e,t){this.nextProps=e,this.nextContext=t,e||!$e.isPending?this.updateComponent():$e.add(this)},updateComponent:function(){var e=this.instance,t=this.pendingStates,n=this.nextProps,r=this.nextContext;(n||t.length>0)&&(n=n||e.props,r=r||e.context,this.nextProps=this.nextContext=null,Le(e,n,this.getState(),r,this.clearCallbacks))},addState:function(e){e&&(this.pendingStates.push(e),this.isPending||this.emitUpdate())},replaceState:function(e){var t=this.pendingStates;t.pop(),t.push([e])},getState:function(){var e=this.instance,t=this.pendingStates,r=e.state,o=e.props;return t.length&&(r=n({},r),U(t,function(t){return O(t)?void(r=n({},t[0])):(S(t)&&(t=t.call(e,r,o)),void n(r,t))}),t.length=0),r},clearCallbacks:function(){var e=this.pendingCallbacks,t=this.instance;e.length>0&&(this.pendingCallbacks=[],U(e,function(e){return e.call(t)}))},addCallback:function(e){S(e)&&this.pendingCallbacks.push(e)}},i.prototype={constructor:i,forceUpdate:function(e){var t=this.$updater,o=this.$cache,i=this.props,a=this.state,l=this.context;if(!t.isPending&&o.isMounted){var c=o.props||i,s=o.state||a,u=o.context||{},p=o.parentContext,d=o.node,f=o.vnode;o.props=o.state=o.context=null,t.isPending=!0,this.componentWillUpdate&&this.componentWillUpdate(c,s,u),this.state=s,this.props=c,this.context=u;var h=Me(this,p),v=r(f,h,d,h.context);v!==d&&(v.cache=v.cache||{},n(v.cache,d.cache)),o.vnode=h,o.node=v,Ie(),this.componentDidUpdate&&this.componentDidUpdate(i,a,l),e&&e.call(this),t.isPending=!1,t.emitUpdate()}},setState:function(e,t){var n=this.$updater;n.addCallback(t),n.addState(e)},replaceState:function(e,t){var n=this.$updater;n.addCallback(t),n.replaceState(e)},getDOMNode:function(){var e=this.$cache.node;return e&&"#comment"===e.nodeName?null:e},isMounted:function(){return this.$cache.isMounted}};var Le=function(e,t,n,r,o){var i=!0;if(e.shouldComponentUpdate&&(i=e.shouldComponentUpdate(t,n,r)),i===!1)return e.props=t,e.state=n,void(e.context=r||{});var a=e.$cache;a.props=t,a.state=n,a.context=r||{},e.forceUpdate(o)},Re=function(e){return e=b[e]||e,e.toLowerCase()},We={},ze=function St(e,t,n){if(t=Re(t),C[t]===!0)return void(e[t]=n);var r=e.eventStore||(e.eventStore={});r[t]=n,We[t]||(document.addEventListener(t.substr(2),je),We[t]=!0);var o=e.nodeName;"onchange"!==t||"INPUT"!==o&&"TEXTAREA"!==o||St(e,"oninput",n)},He=function(e,t){if(t=Re(t),C[t]===!0)return void(e[t]=null);var n=e.eventStore||(e.eventStore={});delete n[t];var r=e.nodeName;"onchange"!==t||"INPUT"!==r&&"TEXTAREA"!==r||delete n.oninput},je=function(e){var t=e.target,n=e.type,r="on"+n,o=void 0;for($e.isPending=!0;t;){var i=t,a=i.eventStore,l=a&&a[r];if(l){if(o||(o=Be(e)),o.currentTarget=t,l.call(t,o),o.$cancalBubble)break;t=t.parentNode}else t=t.parentNode}$e.isPending=!1,$e.batchUpdate()},Be=function(e){var t={},n=function(){return t.$cancalBubble=!0};t.nativeEvent=e;for(var r in e)"function"!=typeof e[r]?t[r]=e[r]:"stopPropagation"===r||"stopImmediatePropagation"===r?t[r]=n:t[r]=e[r].bind(e);return t},Fe={},qe={},Ge=function Pt(e,t,n,o){if(!e.vtype)throw new Error("cannot render "+e+" to container");var i=t[u]||(t[u]=D()),a=Fe[i];if(a)return void(a===!0?Fe[i]=a=[e,n,o]:(a[0]=e,a[2]=o,n&&(a[1]=a[1]?N(a[1],n):n)));Fe[i]=!0;var l=null,c=null;if(l=qe[i])c=r(l,e,t.firstChild,o);else{c=pe(e,o,t.namespaceURI);for(var s=null;s=t.lastChild;)t.removeChild(s);t.appendChild(c)}qe[i]=e;var d=$e.isPending;$e.isPending=!0,Ie(),a=Fe[i],delete Fe[i];var h=null;return O(a)?h=Pt(a[0],t,a[1],a[2]):e.vtype===p?h=c:e.vtype===f&&(h=c.cache[e.id]),d||($e.isPending=!1,$e.batchUpdate()),n&&n.call(h),h},Ve=function(e,t,n){return Ge(e,t,n)},Xe=function(e,t,n,r){var o=e.vnode?e.vnode.context:e.$cache.parentContext;return Ge(t,n,r,o)},Ye=function(e){if(!e.nodeName)throw new Error("expect node");var t=e[u],n=null;return(n=qe[t])?(fe(n,e.firstChild),e.removeChild(e.firstChild),delete qe[t],!0):!1},Je=function(e){if(null==e)return null;if(e.nodeName)return e;var t=e;if(t.getDOMNode&&t.$cache.isMounted)return t.getDOMNode();throw new Error("findDOMNode can not find Node")},Ke=Object.freeze({render:Ve,unstable_renderSubtreeIntoContainer:Xe,unmountComponentAtNode:Ye,findDOMNode:Je}),Qe=function(e){return null!=e&&!!e.vtype},Ze=function(e,t){for(var r=arguments.length,o=Array(r>2?r-2:0),i=2;r>i;i++)o[i-2]=arguments[i];var a=e.type,l=e.key,c=e.ref,s=n(n({key:l,ref:c},e.props),t),u=tt.apply(void 0,[a,s].concat(o));return u.ref===e.ref&&(u.refs=e.refs),u},et=function(e){var t=function(){for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return tt.apply(void 0,[e].concat(n))};return t.type=e,t},tt=function(e,t,n){var r=null,o=arguments.length;if(o>3){n=[n];for(var i=3;o>i;i++)n[i-2]=arguments[i]}var a=typeof e;if("string"===a)r=le;else{if("function"!==a)throw new Error("React.createElement: unexpect type [ "+e+" ]");r=e.prototype&&"function"==typeof e.prototype.forceUpdate?se:ce}var l=null,c=null,s={},u=null;if(null!=t)for(var p in t)t.hasOwnProperty(p)&&("key"===p?void 0!==t.key&&(l=""+t.key):"ref"===p?void 0!==t.ref&&(c=t.ref):void 0!==(u=t[p])&&(s[p]=u));var d=e.defaultProps;if(d)for(var p in d)void 0===s[p]&&(s[p]=d[p]);void 0!==n&&(s.children=n);var f=r(e,s);return f.key=l,f.ref=c,f},nt="a|abbr|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|menu|menuitem|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|track|u|ul|var|video|wbr|circle|clipPath|defs|ellipse|g|image|line|linearGradient|mask|path|pattern|polygon|polyline|radialGradient|rect|stop|svg|text|tspan",rt={};U(nt.split("|"),function(e){rt[e]=et(e)});var ot=function Ot(){return Ot};ot.isRequired=ot;var it={array:ot,bool:ot,func:ot,number:ot,object:ot,string:ot,any:ot,arrayOf:ot,element:ot,instanceOf:ot,node:ot,objectOf:ot,oneOf:ot,oneOfType:ot,shape:ot},at=function(e){if(Qe(e))return e;throw new Error("expect only one child")},lt=function(e,t,n){if(null==e)return e;var r=0;O(e)?M(e,function(e){t.call(n,e,r++)}):t.call(n,e,r)},ct=function(e,t,n){if(null==e)return e;var r=[],o={};lt(e,function(e,i){var a={};a.child=t.call(n,e,i)||e,a.isEqual=a.child===e;var l=a.key=pt(e,i);o.hasOwnProperty(l)?o[l]+=1:o[l]=0,a.index=o[l],r.push(a)});var i=[];return U(r,function(e){var t=e.child,n=e.key,r=e.index,a=e.isEqual;if(null!=t&&!P(t)){if(!Qe(t)||null==n)return void i.push(t);0!==o[n]&&(n+=":"+r),a||(n=ft(t.key||"")+"/"+n),t=Ze(t,{key:n}),i.push(t)}}),i},st=function Tt(e){var Tt=0;return lt(e,function(){Tt++}),Tt},ut=function(e){return ct(e,E)||[]},pt=function(e,t){var n=void 0;return n=Qe(e)&&w(e.key)?".$"+e.key:"."+t.toString(36)},dt=/\/(?!\/)/g,ft=function(e){return(""+e).replace(dt,"//")},ht=Object.freeze({only:at,forEach:lt,map:ct,count:st,toArray:ut}),vt=function Et(e,t){U(e,function(e){e&&(O(e.mixins)&&Et(e.mixins,t),t(e))})},mt=function(e,t){I(t,function(t,n){if("getInitialState"===n)return void e.$getInitialStates.push(t);var r=e[n];S(r)&&S(t)?e[n]=N(r,t):e[n]=t})},yt=function(e,t){n(e.propTypes,t.propTypes),n(e.contextTypes,t.contextTypes),n(e,t.statics),S(t.getDefaultProps)&&n(e.defaultProps,t.getDefaultProps())},xt=function(e,t){I(t,function(t,n){S(t)&&(e[n]=t.bind(e))})},gt=function(){};gt.prototype=i.prototype;var kt=function(){var e=this,t={},r=this.setState;return this.setState=gt,U(this.$getInitialStates,function(r){S(r)&&n(t,r.call(e))}),this.setState=r,t},bt=function(e){function t(n,r){i.call(this,n,r),this.constructor=t,e.autobind!==!1&&xt(this,t.prototype),this.state=this.getInitialState()||this.state}if(!S(e.render))throw new Error("createClass: spec.render is not function");var n=e.mixins||[],r=n.concat(e);e.mixins=null,t.displayName=e.displayName,t.contextTypes={},t.propTypes={},t.defaultProps={};var o=t.prototype=new gt;return o.$getInitialStates=[],vt(r,function(e){mt(o,e),yt(t,e)}),o.getInitialState=kt,e.mixins=n,t},Ct=n({version:"0.15.1",cloneElement:Ze,isValidElement:Qe,createElement:tt,createFactory:et,Component:i,createClass:bt,Children:ht,PropTypes:it,DOM:rt},Ke);Ct.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Ke,e.exports=Ct},function(e,t,n){"use strict";var r=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},o=n(1),i=function(e){function t(){e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props.name;return o.createElement("div",null,"Hello World! Good work ",e)},t}(o.Component);Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i},function(e,t,n){"use strict";var r=n(1),o=n(1),i=n(2);o.render(r.createElement(i["default"],{name:"Shane"}),document.getElementById("app"))}]);
\ No newline at end of file
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/app/index.html b/node_modules/bs-recipes/recipes/webpack.typescript.react/app/index.html
deleted file mode 100644
index 62ef866..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/app/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- Browsersync, Webpack, TypeScript + React
-
-
-
- Browsersync, Webpack, TypeScript + React example
-
-
-
-
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/desc.md b/node_modules/bs-recipes/recipes/webpack.typescript.react/desc.md
deleted file mode 100644
index 4043754..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/desc.md
+++ /dev/null
@@ -1 +0,0 @@
-Run `npm run preview` for the 8k (zipped) production version
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/package.json b/node_modules/bs-recipes/recipes/webpack.typescript.react/package.json
deleted file mode 100644
index e883504..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "webpack.typescript.react",
- "version": "1.0.0",
- "description": "Webpack, TypeScript + React",
- "main": "app.js",
- "author": "Shane Osbourne",
- "license": "MIT",
- "scripts": {
- "start": "node app",
- "build": "webpack",
- "preview": "npm run build && node preview"
- },
- "dependencies": {},
- "devDependencies": {
- "browser-sync": "^2.8.0",
- "bs-fullscreen-message": "^1.0.0",
- "compression": "1.6.1",
- "react": "0.14.7",
- "react-dom": "0.14.7",
- "react-lite": "0.15.3",
- "strip-ansi": "^3.0.0",
- "ts-loader": "^0.8.1",
- "typescript": "^1.7.5",
- "typings": "0.7.9",
- "webpack": "^1.10.5",
- "webpack-dev-middleware": "^1.2.0"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/preview.js b/node_modules/bs-recipes/recipes/webpack.typescript.react/preview.js
deleted file mode 100644
index db3bd26..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/preview.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync.init({
- server: 'app',
- middleware: [
- require('compression')()
- ]
-});
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/readme.md b/node_modules/bs-recipes/recipes/webpack.typescript.react/readme.md
deleted file mode 100644
index f8b4d88..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/readme.md
+++ /dev/null
@@ -1,83 +0,0 @@
-#Browsersync - Webpack, TypeScript + React
-
-## Installation/Usage:
-
-To try this example, follow these 4 simple steps.
-
-**Step 1**: Clone this entire repo
-```bash
-$ git clone https://github.com/Browsersync/recipes.git bs-recipes
-```
-
-**Step 2**: Move into the directory containing this example
-```bash
-$ cd bs-recipes/recipes/webpack.typescript.react
-```
-
-**Step 3**: Install dependencies
-```bash
-$ npm install
-```
-
-**Step 4**: Run the example
-```bash
-$ npm start
-```
-
-### Additional Info:
-
-Run `npm run preview` for the 8k (zipped) production version
-
-
-### Preview of `app.js`:
-```js
-/**
- * Require Browsersync along with webpack and middleware for it
- */
-var browserSync = require('browser-sync').create();
-var webpack = require('webpack');
-var webpackDevMiddleware = require('webpack-dev-middleware');
-var stripAnsi = require('strip-ansi');
-
-/**
- * Require ./webpack.config.js and make a bundler from it
- */
-var webpackConfig = require('./webpack.dev.config');
-var bundler = webpack(webpackConfig);
-
-/**
- * Reload all devices when bundle is complete
- * or send a fullscreen error message to the browser instead
- */
-bundler.plugin('done', function (stats) {
- if (stats.hasErrors() || stats.hasWarnings()) {
- return browserSync.sockets.emit('fullscreen:message', {
- title: "Webpack Error:",
- body: stripAnsi(stats.toString()),
- timeout: 100000
- });
- }
- browserSync.reload();
-});
-
-/**
- * Run Browsersync and use middleware for Hot Module Replacement
- */
-browserSync.init({
- server: 'app',
- logFileChanges: false,
- middleware: [
- webpackDevMiddleware(bundler, {
- publicPath: webpackConfig.output.publicPath,
- stats: {colors: true}
- })
- ],
- plugins: ['bs-fullscreen-message'],
- files: [
- 'app/css/*.css',
- 'app/*.html'
- ]
-});
-
-```
-
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/src/components/HelloWorld.tsx b/node_modules/bs-recipes/recipes/webpack.typescript.react/src/components/HelloWorld.tsx
deleted file mode 100644
index 3cadb82..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/src/components/HelloWorld.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import * as React from 'react';
-
-export interface HelloWorldProps {
- name: string
-}
-
-export default class HelloWorldComponent extends React.Component {
- render() {
- const { name } = this.props;
-
- return (
-
- Hello World! Good work {name}
-
- );
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/src/main.tsx b/node_modules/bs-recipes/recipes/webpack.typescript.react/src/main.tsx
deleted file mode 100644
index dc63bb6..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/src/main.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-import * as React from 'react';
-import * as ReactDOM from 'react-dom';
-
-import HelloWorldComponent from './components/HelloWorld.tsx';
-
-ReactDOM.render( , document.getElementById('app'));
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/tsconfig.json b/node_modules/bs-recipes/recipes/webpack.typescript.react/tsconfig.json
deleted file mode 100644
index eae839e..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/tsconfig.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "compilerOptions": {
- "experimentalDecorators": true,
- "jsx": "react",
- "module": "commonjs",
- "moduleResolution": "node",
- "sourceMap": true,
- "target": "es5"
- },
- "exclude": [
- "typings/browser.d.ts",
- "typings/browser",
- "node_modules"
- ]
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings.json b/node_modules/bs-recipes/recipes/webpack.typescript.react/typings.json
deleted file mode 100644
index 2b57122..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "webpack.typescript.react",
- "version": false,
- "dependencies": {},
- "ambientDependencies": {
- "react": "registry:dt/react#0.14.0+20160314090524",
- "react-dom": "registry:dt/react-dom#0.14.0+20160314090524"
- }
-}
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser.d.ts b/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser.d.ts
deleted file mode 100644
index e8c47ba..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-///
-///
diff --git a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser/ambient/react-dom/index.d.ts b/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser/ambient/react-dom/index.d.ts
deleted file mode 100644
index 1f5e6c9..0000000
--- a/node_modules/bs-recipes/recipes/webpack.typescript.react/typings/browser/ambient/react-dom/index.d.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-// Generated by typings
-// Source: https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/1a67b639ceae21a6e1cc0a9d7835da18839c4d68/react/react-dom.d.ts
-// Type definitions for React v0.14 (react-dom)
-// Project: http://facebook.github.io/react/
-// Definitions by: Asana , AssureSign , Microsoft
-// Definitions: https://github.com/borisyankov/DefinitelyTyped
-
-
-declare namespace __React {
- namespace __DOM {
- function findDOMNode(instance: ReactInstance): E;
- function findDOMNode(instance: ReactInstance): Element;
-
- function render(
- element: DOMElement
,
- container: Element,
- callback?: (element: T) => any): T;
- function render
(
- element: SFCElement
,
- container: Element,
- callback?: () => any): void;
- function render
>(
- element: CElement
,
- container: Element,
- callback?: (component: T) => any): T;
- function render
(
- element: ReactElement
,
- container: Element,
- callback?: (component?: Component
| Element) => any): Component
| Element | void;
-
- function unmountComponentAtNode(container: Element): boolean;
-
- var version: string;
-
- function unstable_batchedUpdates(callback: (a: A, b: B) => any, a: A, b: B): void;
- function unstable_batchedUpdates (callback: (a: A) => any, a: A): void;
- function unstable_batchedUpdates(callback: () => any): void;
-
- function unstable_renderSubtreeIntoContainer(
- parentComponent: Component,
- element: DOMElement