├── .gitattributes ├── .github └── CONTRIBUTING.md ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── dist ├── lodash-migrate.js └── lodash-migrate.min.js ├── index.js ├── lib ├── config.js ├── listing.js ├── mapping.js └── util.js ├── lodash.js ├── package-lock.json ├── package.json ├── test └── index.js └── webpack.config.js /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to lodash-migrate 2 | 3 | Contributions are always welcome. Before contributing please read the 4 | [code of conduct](https://js.foundation/conduct/) & 5 | [search the issue tracker](https://github.com/lodash/lodash-migrate/issues); your issue 6 | may have already been discussed or fixed in `master`. To contribute, 7 | [fork](https://help.github.com/articles/fork-a-repo/) Lodash, commit your changes, 8 | & [send a pull request](https://help.github.com/articles/using-pull-requests/). 9 | 10 | ## Pull Requests 11 | 12 | For additions or bug fixes you should only need to modify `index.js`. Include 13 | updated unit tests in the `test` directory as part of your pull request. Don’t 14 | worry about regenerating the `dist/` files. 15 | 16 | Before running the unit tests you’ll need to install, `npm i`, 17 | [development dependencies](https://docs.npmjs.com/files/package.json#devdependencies). 18 | Run unit tests from the command-line via `npm test`. 19 | 20 | ## Contributor License Agreement 21 | 22 | lodash-migrate is a member of the [JS Foundation](https://js.foundation/). 23 | As such, we request that all contributors sign the JS Foundation 24 | [contributor license agreement (CLA)](https://js.foundation/CLA/). 25 | 26 | For more information about CLAs, please check out Alex Russell’s excellent post, 27 | [“Why Do I Need to Sign This?”](https://infrequently.org/2008/06/why-do-i-need-to-sign-this/). 28 | 29 | ## Coding Guidelines 30 | 31 | In addition to the following guidelines, please follow the conventions already 32 | established in the code. 33 | 34 | - **Spacing**:
35 | Use two spaces for indentation. No tabs. 36 | 37 | - **Naming**:
38 | Keep variable & method names concise & descriptive.
39 | Variable names `index`, `array`, & `iteratee` are preferable to 40 | `i`, `arr`, & `fn`. 41 | 42 | - **Quotes**:
43 | Single-quoted strings are preferred to double-quoted strings; however, 44 | please use a double-quoted string if the value contains a single-quote 45 | character to avoid unnecessary escaping. 46 | 47 | - **Comments**:
48 | Please use single-line comments to annotate significant additions, & 49 | [JSDoc-style](http://www.2ality.com/2011/08/jsdoc-intro.html) comments for 50 | functions. 51 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: false 3 | node_js: 4 | - 7 5 | 6 | cache: 7 | directories: 8 | - ~/.npm 9 | - ~/.yarn-cache 10 | 11 | git: 12 | depth: 10 13 | 14 | branches: 15 | only: 16 | - master 17 | 18 | before_install: 19 | - nvm use $TRAVIS_NODE_VERSION 20 | - npm i -g npm@^5 21 | 22 | install: 23 | - npm i 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/lodash/lodash 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | Copyright and related rights for sample code are waived via CC0. Sample 34 | code is defined as all source code displayed within the prose of the 35 | documentation. 36 | 37 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 38 | 39 | ==== 40 | 41 | Files located in the node_modules and vendor directories are externally 42 | maintained libraries used by this software which have their own 43 | licenses; we recommend you read them, as their terms may differ from the 44 | terms above. 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lodash-migrate v0.3.16 2 | 3 | Migrate older [Lodash](https://lodash.com/) code to the latest release. 4 | 5 | ## Installation 6 | 7 | Using npm: 8 | 9 | ```shell 10 | $ npm i -g npm 11 | $ npm i lodash-migrate 12 | ``` 13 | 14 | In a browser: 15 | ```html 16 | 17 | 18 | 19 | 26 | ``` 27 | 28 | In Node.js: 29 | ```js 30 | // Load the older Lodash. 31 | var _ = require('lodash'); 32 | // Load lodash-migrate. 33 | require('lodash-migrate'); 34 | // Load and customize logging. 35 | require('lodash-migrate')({ 36 | 'log': logger, 37 | 'migrateMessage': migrateTemplate, 38 | 'renameMessage': renameTemplate 39 | }); 40 | 41 | // Later when using API not supported by the latest release. 42 | _.max(['13', '22'], '1'); 43 | // => logs: 44 | // lodash-migrate: _.max([ '13', '22' ], '1') 45 | // v3.10.1 => '13' 46 | // v4.17.4 => '22' 47 | ``` 48 | -------------------------------------------------------------------------------- /dist/lodash-migrate.min.js: -------------------------------------------------------------------------------- 1 | !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.migrate=t():n.migrate=t()}(this,function(){return function(n){function t(e){if(r[e])return r[e].exports;var u=r[e]={exports:{},id:e,loaded:!1};return n[e].call(u.exports,u,u.exports,t),u.loaded=!0,u.exports}var r={};return t.m=n,t.c=r,t.p="",t(0)}([function(n,t,r){"use strict";function e(n,t){var r=i.functions(n),o=a.unwrapped,f=i.difference(r,o,a.seqFuncs),c=n.runInContext; 2 | return i.each([o,f],function(r,e){n.mixin(i.transform(r,function(r,e){r[e]=u(n,t,e)},{}),!!e)}),n.runInContext=function(n){return e(c(n),t)},n.prototype.sample=i.wrap(n.sample,function(t,r){var e=this.__chain__,u=t(this.__wrapped__,r);return(e||null!=r)&&(u=n(u),u.__chain__=e),u}),i.each(a.seqFuncs,function(r){n.prototype[r]&&(n.prototype[r]=u(n,t,r))}),n}function u(n,t,r){var e=i.includes(a.ignored.rename,r),u=i.includes(a.ignored.result,r),c=i.includes(a.seqFuncs,r),p=f.rename[r]||r,h=c?t.prototype[p]:t[p],v=t.VERSION,_=c?n.prototype[r]:n[r],g=n.VERSION; 3 | return i.wrap(_,i.rest(function(n,t){var a=this,c={name:r,args:l.truncate(l.inspect(t).match(/^\[\s*([\s\S]*?)\s*\]$/)[1].replace(/\n */g," ")),oldData:{name:r,version:g},newData:{name:p,version:v}};if(!e&&f.rename[r]&&o.log(o.renameMessage(c)),u)return n.apply(a,t);var _=l.cloneDeep(t),y=f.iteration[r];!y||y.mappable&&s.test(_[1])||(_[1]=i.identity);var d=n.apply(a,t),m=i.attempt(function(){return h.apply(a,_)});return(l.isComparable(d)?!l.isEqual(d,m):l.isComparable(m))&&o.log(o.migrateMessage(i.merge(c,{ 4 | oldData:{result:l.truncate(l.inspect(d))},newData:{result:l.truncate(l.inspect(m))}}))),d}))}var i=r(2),o=i.clone(r(4)),a=r(5),f=r(6),c=r(8),l=r(1),s=/\breturn\b/;e(c,i),n.exports=i.partial(i.assign,o)},function(n,t,r){"use strict";function e(n){return a.transform(n,function(n,t,r){n[r]=!a.isPlainObject(t)||t instanceof e?t:new e(t)},this)}function u(n){return null==n||!a.isObject(n)||a.isArguments(n)||a.isArray(n)||a.isBoolean(n)||a.isDate(n)||a.isError(n)||a.isNumber(n)||a.isPlainObject(n)||a.isRegExp(n)||a.isString(n)||a.isSymbol(n)||a.isTypedArray(n); 5 | }function i(n){var t=n&&n.constructor,r="function"==typeof t&&t.prototype||l;return n===r}function o(n){var t=a.truncate(n,{length:80});return c&&t.length!=n.length&&(t+=f),t}var a=r(2),f="\x1b[0m",c="undefined"==typeof document,l=Object.prototype,s=a.partial(a.cloneDeepWith,a,function(n){if(i(n)||!a.isArray(n)&&!a.isPlainObject(n))return n});e.prototype=Object.create(null);var p=a.partial(r(11).inspect,a,{colors:c}),h=a.partial(a.isEqualWith,a,a,function(n,t){if(!u(n)&&!u(t))return!0});n.exports={ 6 | cloneDeep:s,Hash:e,inspect:p,isComparable:u,isEqual:h,isPrototype:i,truncate:o}},function(n,t,r){var e;(function(n,u){(function(){function i(n,t){return n.set(t[0],t[1]),n}function o(n,t){return n.add(t),n}function a(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function f(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function v(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r; 11 | }function N(n,t){for(var r=n.length;r--&&A(t,n[r],0)>-1;);return r}function B(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}function F(n){return"\\"+re[n]}function P(n,t){return null==n?un:n[t]}function M(n){return Zr.test(n)}function q(n){return Hr.test(n)}function K(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function V(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function Z(n,t){return function(r){return n(t(r))}}function H(n,t){for(var r=-1,e=n.length,u=0,i=[];++r>>1,Pn=[["ary",On],["bind",dn],["bindKey",mn],["curry",wn],["curryRight",xn],["flip",kn],["partial",jn],["partialRight",An],["rearg",Rn]],Mn="[object Arguments]",qn="[object Array]",Kn="[object AsyncFunction]",Vn="[object Boolean]",Zn="[object Date]",Hn="[object DOMException]",Jn="[object Error]",Gn="[object Function]",Yn="[object GeneratorFunction]",Xn="[object Map]",Qn="[object Number]",nt="[object Null]",tt="[object Object]",rt="[object Promise]",et="[object Proxy]",ut="[object RegExp]",it="[object Set]",ot="[object String]",at="[object Symbol]",ft="[object Undefined]",ct="[object WeakMap]",lt="[object WeakSet]",st="[object ArrayBuffer]",pt="[object DataView]",ht="[object Float32Array]",vt="[object Float64Array]",_t="[object Int8Array]",gt="[object Int16Array]",yt="[object Int32Array]",dt="[object Uint8Array]",mt="[object Uint8ClampedArray]",bt="[object Uint16Array]",wt="[object Uint32Array]",xt=/\b__p \+= '';/g,jt=/\b(__p \+=) '' \+/g,At=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ot=/&(?:amp|lt|gt|quot|#39);/g,Rt=/[&<>"']/g,kt=RegExp(Ot.source),Et=RegExp(Rt.source),It=/<%-([\s\S]+?)%>/g,St=/<%([\s\S]+?)%>/g,zt=/<%=([\s\S]+?)%>/g,Ct=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tt=/^\w*$/,Dt=/^\./,Wt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lt=/[\\^$.*+?()[\]{}|]/g,Ut=RegExp(Lt.source),$t=/^\s+|\s+$/g,Nt=/^\s+/,Bt=/\s+$/,Ft=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Mt=/,? & /,qt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Kt=/\\(\\)?/g,Vt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Zt=/\w*$/,Ht=/^[-+]0x[0-9a-f]+$/i,Jt=/^0b[01]+$/i,Gt=/^\[object .+?Constructor\]$/,Yt=/^0o[0-7]+$/i,Xt=/^(?:0|[1-9]\d*)$/,Qt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,nr=/($^)/,tr=/['\n\r\u2028\u2029\\]/g,rr="\\ud800-\\udfff",er="\\u0300-\\u036f",ur="\\ufe20-\\ufe2f",ir="\\u20d0-\\u20ff",or=er+ur+ir,ar="\\u2700-\\u27bf",fr="a-z\\xdf-\\xf6\\xf8-\\xff",cr="\\xac\\xb1\\xd7\\xf7",lr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",sr="\\u2000-\\u206f",pr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",hr="A-Z\\xc0-\\xd6\\xd8-\\xde",vr="\\ufe0e\\ufe0f",_r=cr+lr+sr+pr,gr="['\u2019]",yr="["+rr+"]",dr="["+_r+"]",mr="["+or+"]",br="\\d+",wr="["+ar+"]",xr="["+fr+"]",jr="[^"+rr+_r+br+ar+fr+hr+"]",Ar="\\ud83c[\\udffb-\\udfff]",Or="(?:"+mr+"|"+Ar+")",Rr="[^"+rr+"]",kr="(?:\\ud83c[\\udde6-\\uddff]){2}",Er="[\\ud800-\\udbff][\\udc00-\\udfff]",Ir="["+hr+"]",Sr="\\u200d",zr="(?:"+xr+"|"+jr+")",Cr="(?:"+Ir+"|"+jr+")",Tr="(?:"+gr+"(?:d|ll|m|re|s|t|ve))?",Dr="(?:"+gr+"(?:D|LL|M|RE|S|T|VE))?",Wr=Or+"?",Lr="["+vr+"]?",Ur="(?:"+Sr+"(?:"+[Rr,kr,Er].join("|")+")"+Lr+Wr+")*",$r="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",Nr="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",Br=Lr+Wr+Ur,Fr="(?:"+[wr,kr,Er].join("|")+")"+Br,Pr="(?:"+[Rr+mr+"?",mr,kr,Er,yr].join("|")+")",Mr=RegExp(gr,"g"),qr=RegExp(mr,"g"),Kr=RegExp(Ar+"(?="+Ar+")|"+Pr+Br,"g"),Vr=RegExp([Ir+"?"+xr+"+"+Tr+"(?="+[dr,Ir,"$"].join("|")+")",Cr+"+"+Dr+"(?="+[dr,Ir+zr,"$"].join("|")+")",Ir+"?"+zr+"+"+Tr,Ir+"+"+Dr,Nr,$r,br,Fr].join("|"),"g"),Zr=RegExp("["+Sr+rr+or+vr+"]"),Hr=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Jr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Gr=-1,Yr={}; 14 | Yr[ht]=Yr[vt]=Yr[_t]=Yr[gt]=Yr[yt]=Yr[dt]=Yr[mt]=Yr[bt]=Yr[wt]=!0,Yr[Mn]=Yr[qn]=Yr[st]=Yr[Vn]=Yr[pt]=Yr[Zn]=Yr[Jn]=Yr[Gn]=Yr[Xn]=Yr[Qn]=Yr[tt]=Yr[ut]=Yr[it]=Yr[ot]=Yr[ct]=!1;var Xr={};Xr[Mn]=Xr[qn]=Xr[st]=Xr[pt]=Xr[Vn]=Xr[Zn]=Xr[ht]=Xr[vt]=Xr[_t]=Xr[gt]=Xr[yt]=Xr[Xn]=Xr[Qn]=Xr[tt]=Xr[ut]=Xr[it]=Xr[ot]=Xr[at]=Xr[dt]=Xr[mt]=Xr[bt]=Xr[wt]=!0,Xr[Jn]=Xr[Gn]=Xr[ct]=!1;var Qr={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a", 15 | "\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae", 16 | "\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g", 17 | "\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O", 18 | "\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w", 19 | "\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},ne={"&":"&","<":"<",">":">",'"':""","'":"'"},te={"&":"&","<":"<",">":">",""":'"',"'":"'"},re={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ee=parseFloat,ue=parseInt,ie="object"==typeof n&&n&&n.Object===Object&&n,oe="object"==typeof self&&self&&self.Object===Object&&self,ae=ie||oe||Function("return this")(),fe="object"==typeof t&&t&&!t.nodeType&&t,ce=fe&&"object"==typeof u&&u&&!u.nodeType&&u,le=ce&&ce.exports===fe,se=le&&ie.process,pe=function(){ 20 | try{return se&&se.binding&&se.binding("util")}catch(n){}}(),he=pe&&pe.isArrayBuffer,ve=pe&&pe.isDate,_e=pe&&pe.isMap,ge=pe&&pe.isRegExp,ye=pe&&pe.isSet,de=pe&&pe.isTypedArray,me=E("length"),be=I(Qr),we=I(ne),xe=I(te),je=function n(t){function r(n){if(lf(n)&&!wp(n)&&!(n instanceof b)){if(n instanceof u)return n;if(wl.call(n,"__wrapped__"))return io(n)}return new u(n)}function e(){}function u(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=un}function b(n){ 21 | this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Nn,this.__views__=[]}function I(){var n=new b(this.__wrapped__);return n.__actions__=Bu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Bu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Bu(this.__views__),n}function Y(){if(this.__filtered__){var n=new b(this);n.__dir__=-1,n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1; 22 | return n}function tn(){var n=this.__wrapped__.value(),t=this.__dir__,r=wp(n),e=t<0,u=r?n.length:0,i=Ii(0,u,this.__views__),o=i.start,a=i.end,f=a-o,c=e?a:o-1,l=this.__iteratees__,s=l.length,p=0,h=Yl(f,this.__takeCount__);if(!r||!e&&u==f&&h==f)return wu(n,this.__actions__);var v=[];n:for(;f--&&p-1}function sr(n,t){var r=this.__data__,e=Tr(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this}function pr(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Br(n,t,r,e,u,i){var o,a=t&hn,f=t&vn,l=t&_n;if(r&&(o=u?r(n,e,u,i):r(n)), 29 | o!==un)return o;if(!cf(n))return n;var s=wp(n);if(s){if(o=Ci(n),!a)return Bu(n,o)}else{var p=zs(n),h=p==Gn||p==Yn;if(jp(n))return Eu(n,a);if(p==tt||p==Mn||h&&!u){if(o=f||h?{}:Ti(n),!a)return f?Mu(n,Lr(o,n)):Pu(n,Wr(o,n))}else{if(!Xr[p])return u?n:{};o=Di(n,p,Br,a)}}i||(i=new wr);var v=i.get(n);if(v)return v;i.set(n,o);var _=l?f?wi:bi:f?Vf:Kf,g=s?un:_(n);return c(g||n,function(e,u){g&&(u=e,e=n[u]),Cr(o,u,Br(e,t,r,u,n,i))}),o}function Fr(n){var t=Kf(n);return function(r){return Pr(r,n,t)}}function Pr(n,t,r){ 30 | var e=r.length;if(null==n)return!e;for(n=pl(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===un&&!(u in n)||!i(o))return!1}return!0}function Kr(n,t,r){if("function"!=typeof n)throw new _l(cn);return Ds(function(){n.apply(un,r)},t)}function Vr(n,t,r,e){var u=-1,i=h,o=!0,a=n.length,f=[],c=t.length;if(!a)return f;r&&(t=_(t,W(r))),e?(i=v,o=!1):t.length>=an&&(i=U,o=!1,t=new dr(t));n:for(;++uu?0:u+r),e=e===un||e>u?u:kf(e),e<0&&(e+=u),e=r>e?0:Ef(e);r0&&r(a)?t>1?te(a,t-1,r,e,u):g(u,a):e||(u[u.length]=a)}return u}function re(n,t){return n&&ws(n,t,Kf)}function ie(n,t){return n&&xs(n,t,Kf)}function oe(n,t){return p(t,function(t){return of(n[t])})}function fe(n,t){t=Ru(t,n);for(var r=0,e=t.length;null!=n&&rt}function me(n,t){return null!=n&&wl.call(n,t); 33 | }function je(n,t){return null!=n&&t in pl(n)}function Oe(n,t,r){return n>=Yl(t,r)&&n=120&&l.length>=120)?new dr(o&&l):un}l=n[0];var s=-1,p=a[0];n:for(;++s-1;)a!==n&&Wl.call(a,f,1),Wl.call(n,f,1);return n}function tu(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(r==e||u!==i){var i=u;Ui(u)?Wl.call(n,u,1):du(n,u)}}return n}function ru(n,t){return n+ql(ns()*(t-n+1))}function eu(n,t,r,e){for(var u=-1,i=Gl(Ml((t-n)/(r||1)),0),o=al(i);i--;)o[e?i:++u]=n,n+=r;return o}function uu(n,t){ 41 | var r="";if(!n||t<1||t>Ln)return r;do t%2&&(r+=n),t=ql(t/2),t&&(n+=n);while(t);return r}function iu(n,t){return Ws(Gi(n,t,Wc),n+"")}function ou(n){return Er(uc(n))}function au(n,t){var r=uc(n);return to(r,Nr(t,0,r.length))}function fu(n,t,r,e){if(!cf(n))return n;t=Ru(t,n);for(var u=-1,i=t.length,o=i-1,a=n;null!=a&&++uu?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=al(u);++e>>1,o=n[i];null!==o&&!wf(o)&&(r?o<=t:o=an){var c=t?null:ks(n);if(c)return J(c);o=!1,u=U,f=new dr}else f=t?[]:a;n:for(;++e=e?n:lu(n,t,r)}function Eu(n,t){if(t)return n.slice();var r=n.length,e=zl?zl(r):new n.constructor(r);return n.copy(e),e}function Iu(n){var t=new n.constructor(n.byteLength);return new Sl(t).set(new Sl(n)),t}function Su(n,t){var r=t?Iu(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}function zu(n,t,r){var e=t?r(V(n),hn):V(n);return y(e,i,new n.constructor)}function Cu(n){var t=new n.constructor(n.source,Zt.exec(n)); 47 | return t.lastIndex=n.lastIndex,t}function Tu(n,t,r){var e=t?r(J(n),hn):J(n);return y(e,o,new n.constructor)}function Du(n){return gs?pl(gs.call(n)):{}}function Wu(n,t){var r=t?Iu(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}function Lu(n,t){if(n!==t){var r=n!==un,e=null===n,u=n===n,i=wf(n),o=t!==un,a=null===t,f=t===t,c=wf(t);if(!a&&!c&&!i&&n>t||i&&o&&f&&!a&&!c||e&&o&&f||!r&&f||!u)return 1;if(!e&&!i&&!c&&n=a)return f;var c=r[e];return f*("desc"==c?-1:1)}}return n.index-t.index}function $u(n,t,r,e){for(var u=-1,i=n.length,o=r.length,a=-1,f=t.length,c=Gl(i-o,0),l=al(f+c),s=!e;++a1?r[u-1]:un,o=u>2?r[2]:un; 50 | for(i=n.length>3&&"function"==typeof i?(u--,i):un,o&&$i(r[0],r[1],o)&&(i=u<3?un:i,u=1),t=pl(t);++e-1?u[i?t[o]:o]:un}}function ni(n){return mi(function(t){var r=t.length,e=r,i=u.prototype.thru;for(n&&t.reverse();e--;){var o=t[e];if("function"!=typeof o)throw new _l(cn);if(i&&!a&&"wrapper"==xi(o))var a=new u([],!0)}for(e=a?e:r;++e1&&d.reverse(),s&&fa))return!1;var c=i.get(n);if(c&&i.get(t))return c==t;var l=-1,s=!0,p=r&yn?new dr:un;for(i.set(n,t),i.set(t,n);++l1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(Ft,"{\n/* [wrapped with "+t+"] */\n")}function Li(n){return wp(n)||bp(n)||!!(Ll&&n&&n[Ll])}function Ui(n,t){return t=null==t?Ln:t,!!t&&("number"==typeof n||Xt.test(n))&&n>-1&&n%1==0&&n0){if(++t>=Sn)return arguments[0]}else t=0;return n.apply(un,arguments)}}function to(n,t){var r=-1,e=n.length,u=e-1;for(t=t===un?e:t;++r=this.__values__.length,t=n?un:this.__values__[this.__index__++];return{done:n,value:t}}function oa(){return this}function aa(n){for(var t,r=this;r instanceof e;){var u=io(r); 80 | u.__index__=0,u.__values__=un,t?i.__wrapped__=u:t=u;var i=u;r=r.__wrapped__}return i.__wrapped__=n,t}function fa(){var n=this.__wrapped__;if(n instanceof b){var t=n;return this.__actions__.length&&(t=new b(this)),t=t.reverse(),t.__actions__.push({func:ra,args:[Co],thisArg:un}),new u(t,this.__chain__)}return this.thru(Co)}function ca(){return wu(this.__wrapped__,this.__actions__)}function la(n,t,r){var e=wp(n)?s:Zr;return r&&$i(n,t,r)&&(t=un),e(n,Ai(t,3))}function sa(n,t){var r=wp(n)?p:ne;return r(n,Ai(t,3)); 81 | }function pa(n,t){return te(da(n,t),1)}function ha(n,t){return te(da(n,t),Wn)}function va(n,t,r){return r=r===un?1:kf(r),te(da(n,t),r)}function _a(n,t){var r=wp(n)?c:ms;return r(n,Ai(t,3))}function ga(n,t){var r=wp(n)?l:bs;return r(n,Ai(t,3))}function ya(n,t,r,e){n=Ga(n)?n:uc(n),r=r&&!e?kf(r):0;var u=n.length;return r<0&&(r=Gl(u+r,0)),bf(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&A(n,t,r)>-1}function da(n,t){var r=wp(n)?_:qe;return r(n,Ai(t,3))}function ma(n,t,r,e){return null==n?[]:(wp(t)||(t=null==t?[]:[t]), 82 | r=e?un:r,wp(r)||(r=null==r?[]:[r]),Ge(n,t,r))}function ba(n,t,r){var e=wp(n)?y:S,u=arguments.length<3;return e(n,Ai(t,4),r,u,ms)}function wa(n,t,r){var e=wp(n)?d:S,u=arguments.length<3;return e(n,Ai(t,4),r,u,bs)}function xa(n,t){var r=wp(n)?p:ne;return r(n,La(Ai(t,3)))}function ja(n){var t=wp(n)?Er:ou;return t(n)}function Aa(n,t,r){t=(r?$i(n,t,r):t===un)?1:kf(t);var e=wp(n)?Ir:au;return e(n,t)}function Oa(n){var t=wp(n)?Sr:cu;return t(n)}function Ra(n){if(null==n)return 0;if(Ga(n))return bf(n)?Q(n):n.length; 83 | var t=zs(n);return t==Xn||t==it?n.size:Fe(n).length}function ka(n,t,r){var e=wp(n)?m:su;return r&&$i(n,t,r)&&(t=un),e(n,Ai(t,3))}function Ea(n,t){if("function"!=typeof t)throw new _l(cn);return n=kf(n),function(){if(--n<1)return t.apply(this,arguments)}}function Ia(n,t,r){return t=r?un:t,t=n&&null==t?n.length:t,pi(n,On,un,un,un,un,t)}function Sa(n,t){var r;if("function"!=typeof t)throw new _l(cn);return n=kf(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=un),r}}function za(n,t,r){ 84 | t=r?un:t;var e=pi(n,wn,un,un,un,un,un,t);return e.placeholder=za.placeholder,e}function Ca(n,t,r){t=r?un:t;var e=pi(n,xn,un,un,un,un,un,t);return e.placeholder=Ca.placeholder,e}function Ta(n,t,r){function e(t){var r=p,e=h;return p=h=un,d=t,_=n.apply(e,r)}function u(n){return d=n,g=Ds(a,t),m?e(n):_}function i(n){var r=n-y,e=n-d,u=t-r;return b?Yl(u,v-e):u}function o(n){var r=n-y,e=n-d;return y===un||r>=t||r<0||b&&e>=v}function a(){var n=cp();return o(n)?f(n):(g=Ds(a,i(n)),un)}function f(n){return g=un, 85 | w&&p?e(n):(p=h=un,_)}function c(){g!==un&&Rs(g),d=0,p=y=h=g=un}function l(){return g===un?_:f(cp())}function s(){var n=cp(),r=o(n);if(p=arguments,h=this,y=n,r){if(g===un)return u(y);if(b)return g=Ds(a,t),e(y)}return g===un&&(g=Ds(a,t)),_}var p,h,v,_,g,y,d=0,m=!1,b=!1,w=!0;if("function"!=typeof n)throw new _l(cn);return t=If(t)||0,cf(r)&&(m=!!r.leading,b="maxWait"in r,v=b?Gl(If(r.maxWait)||0,t):v,w="trailing"in r?!!r.trailing:w),s.cancel=c,s.flush=l,s}function Da(n){return pi(n,kn)}function Wa(n,t){ 86 | if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new _l(cn);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Wa.Cache||pr),r}function La(n){if("function"!=typeof n)throw new _l(cn);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2]); 87 | }return!n.apply(this,t)}}function Ua(n){return Sa(2,n)}function $a(n,t){if("function"!=typeof n)throw new _l(cn);return t=t===un?t:kf(t),iu(n,t)}function Na(n,t){if("function"!=typeof n)throw new _l(cn);return t=null==t?0:Gl(kf(t),0),iu(function(r){var e=r[t],u=ku(r,0,t);return e&&g(u,e),a(n,this,u)})}function Ba(n,t,r){var e=!0,u=!0;if("function"!=typeof n)throw new _l(cn);return cf(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),Ta(n,t,{leading:e,maxWait:t,trailing:u})}function Fa(n){ 88 | return Ia(n,1)}function Pa(n,t){return _p(Ou(t),n)}function Ma(){if(!arguments.length)return[];var n=arguments[0];return wp(n)?n:[n]}function qa(n){return Br(n,_n)}function Ka(n,t){return t="function"==typeof t?t:un,Br(n,_n,t)}function Va(n){return Br(n,hn|_n)}function Za(n,t){return t="function"==typeof t?t:un,Br(n,hn|_n,t)}function Ha(n,t){return null==t||Pr(n,t,Kf(t))}function Ja(n,t){return n===t||n!==n&&t!==t}function Ga(n){return null!=n&&ff(n.length)&&!of(n)}function Ya(n){return lf(n)&&Ga(n); 89 | }function Xa(n){return n===!0||n===!1||lf(n)&&se(n)==Vn}function Qa(n){return lf(n)&&1===n.nodeType&&!df(n)}function nf(n){if(null==n)return!0;if(Ga(n)&&(wp(n)||"string"==typeof n||"function"==typeof n.splice||jp(n)||Ep(n)||bp(n)))return!n.length;var t=zs(n);if(t==Xn||t==it)return!n.size;if(Mi(n))return!Fe(n).length;for(var r in n)if(wl.call(n,r))return!1;return!0}function tf(n,t){return Ce(n,t)}function rf(n,t,r){r="function"==typeof r?r:un;var e=r?r(n,t):un;return e===un?Ce(n,t,un,r):!!e}function ef(n){ 90 | if(!lf(n))return!1;var t=se(n);return t==Jn||t==Hn||"string"==typeof n.message&&"string"==typeof n.name&&!df(n)}function uf(n){return"number"==typeof n&&Zl(n)}function of(n){if(!cf(n))return!1;var t=se(n);return t==Gn||t==Yn||t==Kn||t==et}function af(n){return"number"==typeof n&&n==kf(n)}function ff(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=Ln}function cf(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function lf(n){return null!=n&&"object"==typeof n}function sf(n,t){return n===t||We(n,t,Ri(t)); 91 | }function pf(n,t,r){return r="function"==typeof r?r:un,We(n,t,Ri(t),r)}function hf(n){return yf(n)&&n!=+n}function vf(n){if(Cs(n))throw new cl(fn);return Le(n)}function _f(n){return null===n}function gf(n){return null==n}function yf(n){return"number"==typeof n||lf(n)&&se(n)==Qn}function df(n){if(!lf(n)||se(n)!=tt)return!1;var t=Cl(n);if(null===t)return!0;var r=wl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&bl.call(r)==Ol}function mf(n){return af(n)&&n>=-Ln&&n<=Ln; 92 | }function bf(n){return"string"==typeof n||!wp(n)&&lf(n)&&se(n)==ot}function wf(n){return"symbol"==typeof n||lf(n)&&se(n)==at}function xf(n){return n===un}function jf(n){return lf(n)&&zs(n)==ct}function Af(n){return lf(n)&&se(n)==lt}function Of(n){if(!n)return[];if(Ga(n))return bf(n)?nn(n):Bu(n);if(Ul&&n[Ul])return K(n[Ul]());var t=zs(n),r=t==Xn?V:t==it?J:uc;return r(n)}function Rf(n){if(!n)return 0===n?n:0;if(n=If(n),n===Wn||n===-Wn){var t=n<0?-1:1;return t*Un}return n===n?n:0}function kf(n){var t=Rf(n),r=t%1; 93 | return t===t?r?t-r:t:0}function Ef(n){return n?Nr(kf(n),0,Nn):0}function If(n){if("number"==typeof n)return n;if(wf(n))return $n;if(cf(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=cf(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace($t,"");var r=Jt.test(n);return r||Yt.test(n)?ue(n.slice(2),r?2:8):Ht.test(n)?$n:+n}function Sf(n){return Fu(n,Vf(n))}function zf(n){return n?Nr(kf(n),-Ln,Ln):0===n?n:0}function Cf(n){return null==n?"":gu(n)}function Tf(n,t){var r=ds(n);return null==t?r:Wr(r,t); 94 | }function Df(n,t){return x(n,Ai(t,3),re)}function Wf(n,t){return x(n,Ai(t,3),ie)}function Lf(n,t){return null==n?n:ws(n,Ai(t,3),Vf)}function Uf(n,t){return null==n?n:xs(n,Ai(t,3),Vf)}function $f(n,t){return n&&re(n,Ai(t,3))}function Nf(n,t){return n&&ie(n,Ai(t,3))}function Bf(n){return null==n?[]:oe(n,Kf(n))}function Ff(n){return null==n?[]:oe(n,Vf(n))}function Pf(n,t,r){var e=null==n?un:fe(n,t);return e===un?r:e}function Mf(n,t){return null!=n&&zi(n,t,me)}function qf(n,t){return null!=n&&zi(n,t,je); 95 | }function Kf(n){return Ga(n)?kr(n):Fe(n)}function Vf(n){return Ga(n)?kr(n,!0):Pe(n)}function Zf(n,t){var r={};return t=Ai(t,3),re(n,function(n,e,u){Ur(r,t(n,e,u),n)}),r}function Hf(n,t){var r={};return t=Ai(t,3),re(n,function(n,e,u){Ur(r,e,t(n,e,u))}),r}function Jf(n,t){return Gf(n,La(Ai(t)))}function Gf(n,t){if(null==n)return{};var r=_(wi(n),function(n){return[n]});return t=Ai(t),Xe(n,r,function(n,r){return t(n,r[0])})}function Yf(n,t,r){t=Ru(t,n);var e=-1,u=t.length;for(u||(u=1,n=un);++et){var e=n;n=t,t=e}if(r||n%1||t%1){var u=ns();return Yl(n+u*(t-n+ee("1e-"+((u+"").length-1))),t)}return ru(n,t)}function cc(n){return nh(Cf(n).toLowerCase())}function lc(n){return n=Cf(n),n&&n.replace(Qt,be).replace(qr,"")}function sc(n,t,r){n=Cf(n),t=gu(t);var e=n.length;r=r===un?e:Nr(kf(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function pc(n){return n=Cf(n),n&&Et.test(n)?n.replace(Rt,we):n}function hc(n){return n=Cf(n),n&&Ut.test(n)?n.replace(Lt,"\\$&"):n}function vc(n,t,r){n=Cf(n), 99 | t=kf(t);var e=t?Q(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ii(ql(u),r)+n+ii(Ml(u),r)}function _c(n,t,r){n=Cf(n),t=kf(t);var e=t?Q(n):0;return t&&e>>0)?(n=Cf(n),n&&("string"==typeof t||null!=t&&!Rp(t))&&(t=gu(t),!t&&M(n))?ku(nn(n),0,r):n.split(t,r)):[]}function wc(n,t,r){return n=Cf(n),r=null==r?0:Nr(kf(r),0,n.length),t=gu(t),n.slice(r,r+t.length)==t}function xc(n,t,e){var u=r.templateSettings;e&&$i(n,t,e)&&(t=un),n=Cf(n),t=Tp({},t,u,hi);var i,o,a=Tp({},t.imports,u.imports,hi),f=Kf(a),c=L(a,f),l=0,s=t.interpolate||nr,p="__p += '",h=hl((t.escape||nr).source+"|"+s.source+"|"+(s===zt?Vt:nr).source+"|"+(t.evaluate||nr).source+"|$","g"),v="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++Gr+"]")+"\n"; 101 | n.replace(h,function(t,r,e,u,a,f){return e||(e=u),p+=n.slice(l,f).replace(tr,F),r&&(i=!0,p+="' +\n__e("+r+") +\n'"),a&&(o=!0,p+="';\n"+a+";\n__p += '"),e&&(p+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),l=f+t.length,t}),p+="';\n";var _=t.variable;_||(p="with (obj) {\n"+p+"\n}\n"),p=(o?p.replace(xt,""):p).replace(jt,"$1").replace(At,"$1;"),p="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}"; 102 | var g=th(function(){return ll(f,v+"return "+p).apply(un,c)});if(g.source=p,ef(g))throw g;return g}function jc(n){return Cf(n).toLowerCase()}function Ac(n){return Cf(n).toUpperCase()}function Oc(n,t,r){if(n=Cf(n),n&&(r||t===un))return n.replace($t,"");if(!n||!(t=gu(t)))return n;var e=nn(n),u=nn(t),i=$(e,u),o=N(e,u)+1;return ku(e,i,o).join("")}function Rc(n,t,r){if(n=Cf(n),n&&(r||t===un))return n.replace(Bt,"");if(!n||!(t=gu(t)))return n;var e=nn(n),u=N(e,nn(t))+1;return ku(e,0,u).join("")}function kc(n,t,r){ 103 | if(n=Cf(n),n&&(r||t===un))return n.replace(Nt,"");if(!n||!(t=gu(t)))return n;var e=nn(n),u=$(e,nn(t));return ku(e,u).join("")}function Ec(n,t){var r=En,e=In;if(cf(t)){var u="separator"in t?t.separator:u;r="length"in t?kf(t.length):r,e="omission"in t?gu(t.omission):e}n=Cf(n);var i=n.length;if(M(n)){var o=nn(n);i=o.length}if(r>=i)return n;var a=r-Q(e);if(a<1)return e;var f=o?ku(o,0,a).join(""):n.slice(0,a);if(u===un)return f+e;if(o&&(a+=f.length-a),Rp(u)){if(n.slice(a).search(u)){var c,l=f;for(u.global||(u=hl(u.source,Cf(Zt.exec(u))+"g")), 104 | u.lastIndex=0;c=u.exec(l);)var s=c.index;f=f.slice(0,s===un?a:s)}}else if(n.indexOf(gu(u),a)!=a){var p=f.lastIndexOf(u);p>-1&&(f=f.slice(0,p))}return f+e}function Ic(n){return n=Cf(n),n&&kt.test(n)?n.replace(Ot,xe):n}function Sc(n,t,r){return n=Cf(n),t=r?un:t,t===un?q(n)?en(n):w(n):n.match(t)||[]}function zc(n){var t=null==n?0:n.length,r=Ai();return n=t?_(n,function(n){if("function"!=typeof n[1])throw new _l(cn);return[r(n[0]),n[1]]}):[],iu(function(r){for(var e=-1;++eLn)return[];var r=Nn,e=Yl(n,Nn);t=Ai(t),n-=Nn;for(var u=T(e,t);++r1?n[t-1]:un;return r="function"==typeof r?(n.pop(), 116 | r):un,Yo(n,r)}),np=mi(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,i=function(t){return $r(t,n)};return!(t>1||this.__actions__.length)&&e instanceof b&&Ui(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:ra,args:[i],thisArg:un}),new u(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(un),n})):this.thru(i)}),tp=qu(function(n,t,r){wl.call(n,r)?++n[r]:Ur(n,r,1)}),rp=Qu(vo),ep=Qu(_o),up=qu(function(n,t,r){wl.call(n,r)?n[r].push(t):Ur(n,r,[t])}),ip=iu(function(n,t,r){var e=-1,u="function"==typeof t,i=Ga(n)?al(n.length):[]; 117 | return ms(n,function(n){i[++e]=u?a(t,n,r):Ee(n,t,r)}),i}),op=qu(function(n,t,r){Ur(n,r,t)}),ap=qu(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),fp=iu(function(n,t){if(null==n)return[];var r=t.length;return r>1&&$i(n,t[0],t[1])?t=[]:r>2&&$i(t[0],t[1],t[2])&&(t=[t[0]]),Ge(n,te(t,1),[])}),cp=Fl||function(){return ae.Date.now()},lp=iu(function(n,t,r){var e=dn;if(r.length){var u=H(r,ji(lp));e|=jn}return pi(n,e,t,r,u)}),sp=iu(function(n,t,r){var e=dn|mn;if(r.length){var u=H(r,ji(sp));e|=jn; 118 | }return pi(t,e,n,r,u)}),pp=iu(function(n,t){return Kr(n,1,t)}),hp=iu(function(n,t,r){return Kr(n,If(t)||0,r)});Wa.Cache=pr;var vp=Os(function(n,t){t=1==t.length&&wp(t[0])?_(t[0],W(Ai())):_(te(t,1),W(Ai()));var r=t.length;return iu(function(e){for(var u=-1,i=Yl(e.length,r);++u=t}),bp=Ie(function(){return arguments}())?Ie:function(n){return lf(n)&&wl.call(n,"callee")&&!Dl.call(n,"callee")},wp=al.isArray,xp=he?W(he):Se,jp=Vl||Vc,Ap=ve?W(ve):ze,Op=_e?W(_e):De,Rp=ge?W(ge):Ue,kp=ye?W(ye):$e,Ep=de?W(de):Ne,Ip=fi(Me),Sp=fi(function(n,t){return n<=t}),zp=Ku(function(n,t){if(Mi(t)||Ga(t))return Fu(t,Kf(t),n),un;for(var r in t)wl.call(t,r)&&Cr(n,r,t[r])}),Cp=Ku(function(n,t){Fu(t,Vf(t),n)}),Tp=Ku(function(n,t,r,e){Fu(t,Vf(t),n,e)}),Dp=Ku(function(n,t,r,e){ 120 | Fu(t,Kf(t),n,e)}),Wp=mi($r),Lp=iu(function(n){return n.push(un,hi),a(Tp,un,n)}),Up=iu(function(n){return n.push(un,vi),a(Pp,un,n)}),$p=ri(function(n,t,r){n[t]=r},Tc(Wc)),Np=ri(function(n,t,r){wl.call(n,t)?n[t].push(r):n[t]=[r]},Ai),Bp=iu(Ee),Fp=Ku(function(n,t,r){Ze(n,t,r)}),Pp=Ku(function(n,t,r,e){Ze(n,t,r,e)}),Mp=mi(function(n,t){var r={};if(null==n)return r;var e=!1;t=_(t,function(t){return t=Ru(t,n),e||(e=t.length>1),t}),Fu(n,wi(n),r),e&&(r=Br(r,hn|vn|_n,_i));for(var u=t.length;u--;)du(r,t[u]); 121 | return r}),qp=mi(function(n,t){return null==n?{}:Ye(n,t)}),Kp=si(Kf),Vp=si(Vf),Zp=Gu(function(n,t,r){return t=t.toLowerCase(),n+(r?cc(t):t)}),Hp=Gu(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Jp=Gu(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Gp=Ju("toLowerCase"),Yp=Gu(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),Xp=Gu(function(n,t,r){return n+(r?" ":"")+nh(t)}),Qp=Gu(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),nh=Ju("toUpperCase"),th=iu(function(n,t){try{return a(n,un,t); 122 | }catch(n){return ef(n)?n:new cl(n)}}),rh=mi(function(n,t){return c(t,function(t){t=ro(t),Ur(n,t,lp(n[t],n))}),n}),eh=ni(),uh=ni(!0),ih=iu(function(n,t){return function(r){return Ee(r,n,t)}}),oh=iu(function(n,t){return function(r){return Ee(n,r,t)}}),ah=ui(_),fh=ui(s),ch=ui(m),lh=ai(),sh=ai(!0),ph=ei(function(n,t){return n+t},0),hh=li("ceil"),vh=ei(function(n,t){return n/t},1),_h=li("floor"),gh=ei(function(n,t){return n*t},1),yh=li("round"),dh=ei(function(n,t){return n-t},0);return r.after=Ea,r.ary=Ia, 123 | r.assign=zp,r.assignIn=Cp,r.assignInWith=Tp,r.assignWith=Dp,r.at=Wp,r.before=Sa,r.bind=lp,r.bindAll=rh,r.bindKey=sp,r.castArray=Ma,r.chain=na,r.chunk=oo,r.compact=ao,r.concat=fo,r.cond=zc,r.conforms=Cc,r.constant=Tc,r.countBy=tp,r.create=Tf,r.curry=za,r.curryRight=Ca,r.debounce=Ta,r.defaults=Lp,r.defaultsDeep=Up,r.defer=pp,r.delay=hp,r.difference=Us,r.differenceBy=$s,r.differenceWith=Ns,r.drop=co,r.dropRight=lo,r.dropRightWhile=so,r.dropWhile=po,r.fill=ho,r.filter=sa,r.flatMap=pa,r.flatMapDeep=ha, 124 | r.flatMapDepth=va,r.flatten=go,r.flattenDeep=yo,r.flattenDepth=mo,r.flip=Da,r.flow=eh,r.flowRight=uh,r.fromPairs=bo,r.functions=Bf,r.functionsIn=Ff,r.groupBy=up,r.initial=jo,r.intersection=Bs,r.intersectionBy=Fs,r.intersectionWith=Ps,r.invert=$p,r.invertBy=Np,r.invokeMap=ip,r.iteratee=Lc,r.keyBy=op,r.keys=Kf,r.keysIn=Vf,r.map=da,r.mapKeys=Zf,r.mapValues=Hf,r.matches=Uc,r.matchesProperty=$c,r.memoize=Wa,r.merge=Fp,r.mergeWith=Pp,r.method=ih,r.methodOf=oh,r.mixin=Nc,r.negate=La,r.nthArg=Pc,r.omit=Mp, 125 | r.omitBy=Jf,r.once=Ua,r.orderBy=ma,r.over=ah,r.overArgs=vp,r.overEvery=fh,r.overSome=ch,r.partial=_p,r.partialRight=gp,r.partition=ap,r.pick=qp,r.pickBy=Gf,r.property=Mc,r.propertyOf=qc,r.pull=Ms,r.pullAll=Eo,r.pullAllBy=Io,r.pullAllWith=So,r.pullAt=qs,r.range=lh,r.rangeRight=sh,r.rearg=yp,r.reject=xa,r.remove=zo,r.rest=$a,r.reverse=Co,r.sampleSize=Aa,r.set=Xf,r.setWith=Qf,r.shuffle=Oa,r.slice=To,r.sortBy=fp,r.sortedUniq=Bo,r.sortedUniqBy=Fo,r.split=bc,r.spread=Na,r.tail=Po,r.take=Mo,r.takeRight=qo, 126 | r.takeRightWhile=Ko,r.takeWhile=Vo,r.tap=ta,r.throttle=Ba,r.thru=ra,r.toArray=Of,r.toPairs=Kp,r.toPairsIn=Vp,r.toPath=Yc,r.toPlainObject=Sf,r.transform=nc,r.unary=Fa,r.union=Ks,r.unionBy=Vs,r.unionWith=Zs,r.uniq=Zo,r.uniqBy=Ho,r.uniqWith=Jo,r.unset=tc,r.unzip=Go,r.unzipWith=Yo,r.update=rc,r.updateWith=ec,r.values=uc,r.valuesIn=ic,r.without=Hs,r.words=Sc,r.wrap=Pa,r.xor=Js,r.xorBy=Gs,r.xorWith=Ys,r.zip=Xs,r.zipObject=Xo,r.zipObjectDeep=Qo,r.zipWith=Qs,r.entries=Kp,r.entriesIn=Vp,r.extend=Cp,r.extendWith=Tp, 127 | Nc(r,r),r.add=ph,r.attempt=th,r.camelCase=Zp,r.capitalize=cc,r.ceil=hh,r.clamp=oc,r.clone=qa,r.cloneDeep=Va,r.cloneDeepWith=Za,r.cloneWith=Ka,r.conformsTo=Ha,r.deburr=lc,r.defaultTo=Dc,r.divide=vh,r.endsWith=sc,r.eq=Ja,r.escape=pc,r.escapeRegExp=hc,r.every=la,r.find=rp,r.findIndex=vo,r.findKey=Df,r.findLast=ep,r.findLastIndex=_o,r.findLastKey=Wf,r.floor=_h,r.forEach=_a,r.forEachRight=ga,r.forIn=Lf,r.forInRight=Uf,r.forOwn=$f,r.forOwnRight=Nf,r.get=Pf,r.gt=dp,r.gte=mp,r.has=Mf,r.hasIn=qf,r.head=wo, 128 | r.identity=Wc,r.includes=ya,r.indexOf=xo,r.inRange=ac,r.invoke=Bp,r.isArguments=bp,r.isArray=wp,r.isArrayBuffer=xp,r.isArrayLike=Ga,r.isArrayLikeObject=Ya,r.isBoolean=Xa,r.isBuffer=jp,r.isDate=Ap,r.isElement=Qa,r.isEmpty=nf,r.isEqual=tf,r.isEqualWith=rf,r.isError=ef,r.isFinite=uf,r.isFunction=of,r.isInteger=af,r.isLength=ff,r.isMap=Op,r.isMatch=sf,r.isMatchWith=pf,r.isNaN=hf,r.isNative=vf,r.isNil=gf,r.isNull=_f,r.isNumber=yf,r.isObject=cf,r.isObjectLike=lf,r.isPlainObject=df,r.isRegExp=Rp,r.isSafeInteger=mf, 129 | r.isSet=kp,r.isString=bf,r.isSymbol=wf,r.isTypedArray=Ep,r.isUndefined=xf,r.isWeakMap=jf,r.isWeakSet=Af,r.join=Ao,r.kebabCase=Hp,r.last=Oo,r.lastIndexOf=Ro,r.lowerCase=Jp,r.lowerFirst=Gp,r.lt=Ip,r.lte=Sp,r.max=Qc,r.maxBy=nl,r.mean=tl,r.meanBy=rl,r.min=el,r.minBy=ul,r.stubArray=Kc,r.stubFalse=Vc,r.stubObject=Zc,r.stubString=Hc,r.stubTrue=Jc,r.multiply=gh,r.nth=ko,r.noConflict=Bc,r.noop=Fc,r.now=cp,r.pad=vc,r.padEnd=_c,r.padStart=gc,r.parseInt=yc,r.random=fc,r.reduce=ba,r.reduceRight=wa,r.repeat=dc, 130 | r.replace=mc,r.result=Yf,r.round=yh,r.runInContext=n,r.sample=ja,r.size=Ra,r.snakeCase=Yp,r.some=ka,r.sortedIndex=Do,r.sortedIndexBy=Wo,r.sortedIndexOf=Lo,r.sortedLastIndex=Uo,r.sortedLastIndexBy=$o,r.sortedLastIndexOf=No,r.startCase=Xp,r.startsWith=wc,r.subtract=dh,r.sum=il,r.sumBy=ol,r.template=xc,r.times=Gc,r.toFinite=Rf,r.toInteger=kf,r.toLength=Ef,r.toLower=jc,r.toNumber=If,r.toSafeInteger=zf,r.toString=Cf,r.toUpper=Ac,r.trim=Oc,r.trimEnd=Rc,r.trimStart=kc,r.truncate=Ec,r.unescape=Ic,r.uniqueId=Xc, 131 | r.upperCase=Qp,r.upperFirst=nh,r.each=_a,r.eachRight=ga,r.first=wo,Nc(r,function(){var n={};return re(r,function(t,e){wl.call(r.prototype,e)||(n[e]=t)}),n}(),{chain:!1}),r.VERSION=on,c(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){r[n].placeholder=r}),c(["drop","take"],function(n,t){b.prototype[n]=function(r){r=r===un?1:Gl(kf(r),0);var e=this.__filtered__&&!t?new b(this):this.clone();return e.__filtered__?e.__takeCount__=Yl(r,e.__takeCount__):e.__views__.push({size:Yl(r,Nn), 132 | type:n+(e.__dir__<0?"Right":"")}),e},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),c(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==Cn||r==Dn;b.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:Ai(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),c(["head","last"],function(n,t){var r="take"+(t?"Right":"");b.prototype[n]=function(){return this[r](1).value()[0]}}),c(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right"); 133 | b.prototype[n]=function(){return this.__filtered__?new b(this):this[r](1)}}),b.prototype.compact=function(){return this.filter(Wc)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=iu(function(n,t){return"function"==typeof n?new b(this):this.map(function(r){return Ee(r,n,t)})}),b.prototype.reject=function(n){return this.filter(La(Ai(n)))},b.prototype.slice=function(n,t){n=kf(n);var r=this;return r.__filtered__&&(n>0||t<0)?new b(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)), 134 | t!==un&&(t=kf(t),r=t<0?r.dropRight(-t):r.take(t-n)),r)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Nn)},re(b.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),o=r[i?"take"+("last"==t?"Right":""):t],a=i||/^find/.test(t);o&&(r.prototype[t]=function(){var t=this.__wrapped__,f=i?[1]:arguments,c=t instanceof b,l=f[0],s=c||wp(t),p=function(n){var t=o.apply(r,g([n],f)); 135 | return i&&h?t[0]:t};s&&e&&"function"==typeof l&&1!=l.length&&(c=s=!1);var h=this.__chain__,v=!!this.__actions__.length,_=a&&!h,y=c&&!v;if(!a&&s){t=y?t:new b(this);var d=n.apply(t,f);return d.__actions__.push({func:ra,args:[p],thisArg:un}),new u(d,h)}return _&&y?n.apply(this,f):(d=this.thru(p),_?i?d.value()[0]:d.value():d)})}),c(["pop","push","shift","sort","splice","unshift"],function(n){var t=gl[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",u=/^(?:pop|shift)$/.test(n);r.prototype[n]=function(){ 136 | var n=arguments;if(u&&!this.__chain__){var r=this.value();return t.apply(wp(r)?r:[],n)}return this[e](function(r){return t.apply(wp(r)?r:[],n)})}}),re(b.prototype,function(n,t){var e=r[t];if(e){var u=e.name+"",i=cs[u]||(cs[u]=[]);i.push({name:t,func:e})}}),cs[ti(un,mn).name]=[{name:"wrapper",func:un}],b.prototype.clone=I,b.prototype.reverse=Y,b.prototype.value=tn,r.prototype.at=np,r.prototype.chain=ea,r.prototype.commit=ua,r.prototype.next=ia,r.prototype.plant=aa,r.prototype.reverse=fa,r.prototype.toJSON=r.prototype.valueOf=r.prototype.value=ca, 137 | r.prototype.first=r.prototype.head,Ul&&(r.prototype[Ul]=oa),r},Ae=je();ae._=Ae,e=function(){return Ae}.call(t,r,t,u),!(e!==un&&(u.exports=e))}).call(this)}).call(t,function(){return this}(),r(3)(n))},function(n,t){n.exports=function(n){return n.webpackPolyfill||(n.deprecate=function(){},n.paths=[],n.children=[],n.webpackPolyfill=1),n}},function(n,t,r){"use strict";var e=r(2),u=new e.memoize.Cache;n.exports={log:function(n){u.has(n)||(u.set(n,!0),console.log(n))},migrateMessage:e.template("lodash-migrate: _.<%= name %>(<%= args %>)\n v<%= oldData.version %> => <%= oldData.result %>\n v<%= newData.version %> => <%= newData.result %>"), 138 | renameMessage:e.template("lodash-migrate: Method renamed\n v<%= oldData.version %> => _.<%= oldData.name %>\n v<%= newData.version %> => _.<%= newData.name %>")}},function(n,t,r){"use strict";var e=r(1),u=e.Hash;t.ignored=new u({rename:["callback","createCallback"],result:["defer","delay","mixin","now","random","runInContext","sample","shuffle","uniqueId"]}),t.seqFuncs=["commit","plant","pop","run","shift","toJSON","value","valueOf"],t.unwrapped=["add","attempt","camelCase","capitalize","ceil","clone","cloneDeep","deburr","endsWith","escape","escapeRegExp","every","find","findIndex","findKey","findLast","findLastIndex","findLastKey","findWhere","first","floor","get","gt","gte","has","identity","includes","indexOf","inRange","isArguments","isArray","isBoolean","isDate","isElement","isEmpty","isEqual","isError","isFinite","isFunction","isMatch","isNative","isNaN","isNull","isNumber","isObject","isPlainObject","isRegExp","isString","isUndefined","isTypedArray","kebabCase","last","lastIndexOf","lt","lte","max","min","noConflict","noop","now","pad","padLeft","padRight","parseInt","random","reduce","reduceRight","repeat","result","round","runInContext","size","snakeCase","some","sortedIndex","sortedLastIndex","startCase","startsWith","sum","template","trim","trimLeft","trimRight","trunc","unescape","uniqueId","words","all","any","contains","eq","detect","foldl","foldr","head","include","inject"]; 139 | },function(n,t,r){"use strict";var e=r(1),u=e.Hash;t.iteration=new u({forEach:{mappable:!1},forEachRight:{mappable:!1},forIn:{mappable:!1},forInRight:{mappable:!1},forOwn:{mappable:!1},forOwnRight:{mappable:!1},times:{mappable:!0},each:{mappable:!1},eachRight:{mappable:!1}}),t.rename=new u({all:"every",any:"some",backflow:"flowRight",callback:"iteratee",collect:"map",compose:"flowRight",contains:"includes",createCallback:"iteratee",detect:"find",foldl:"reduce",foldr:"reduceRight",include:"includes", 140 | indexBy:"keyBy",inject:"reduce",methods:"functions",modArgs:"overArgs",object:"fromPairs",padLeft:"padStart",padRight:"padEnd",pairs:"toPairs",restParam:"rest",run:"value",select:"filter",sortByOrder:"orderBy",trimLeft:"trimStart",trimRight:"trimEnd",trunc:"truncate",unique:"uniq"})},function(n,t){n.exports="function"==typeof Object.create?function(n,t){n.super_=t,n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}})}:function(n,t){n.super_=t;var r=function(){}; 141 | r.prototype=t.prototype,n.prototype=new r,n.prototype.constructor=n}},function(n,t,r){var e;(function(n,u){(function(){function i(n,t){if(n!==t){var r=null===n,e=n===k,u=n===n,i=null===t,o=t===k,a=t===t;if(n>t&&!i||!u||r&&!o&&a||e&&a)return 1;if(n-1;);return r}function s(n,t){for(var r=n.length;r--&&t.indexOf(n.charAt(r))>-1;);return r}function p(n,t){return i(n.criteria,t.criteria)||n.index-t.index}function h(n,t,r){for(var e=-1,u=n.criteria,o=t.criteria,a=u.length,f=r.length;++e=f)return c;var l=r[e];return c*("asc"===l||l===!0?1:-1)}}return n.index-t.index}function v(n){ 143 | return Zn[n]}function _(n){return Hn[n]}function g(n,t,r){return t?n=Yn[n]:r&&(n=Xn[n]),"\\"+n}function y(n){return"\\"+Xn[n]}function d(n,t,r){for(var e=n.length,u=t+(r?0:-1);r?u--:++u=9&&n<=13||32==n||160==n||5760==n||6158==n||n>=8192&&(n<=8202||8232==n||8233==n||8239==n||8287==n||12288==n||65279==n)}function w(n,t){for(var r=-1,e=n.length,u=-1,i=[];++r=P?_r(t):null,c=t.length;f&&(i=Xn,o=!1,t=f);n:for(;++uu?0:u+r),e=e===k||e>u?u:+e||0,e<0&&(e+=u),u=r>e?0:e>>>0,r>>>=0;ru?0:u+t),r=r===k||r>u?u:+r||0,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=Bi(u);++e=P,f=o?_r():null,c=[];f?(e=Xn,i=!1):(o=!1,f=t?[]:c);n:for(;++r>>1,o=n[i];(r?o<=t:o2?r[u-2]:k,o=u>2?r[2]:k,a=u>1?r[u-1]:k;for("function"==typeof i?(i=or(i,a,5), 165 | u-=2):(i="function"==typeof a?a:k,u-=i?1:0),o&&Qr(r[0],r[1],o)&&(i=u<3?k:i,u=1);++e-1?r[i]:k}return It(r,e,n)}}function xr(n){return function(t,r,e){return t&&t.length?(r=Fr(r,e,3),o(t,r,n)):-1}}function jr(n){return function(t,r,e){return r=Fr(r,e,3),It(t,r,n,!0)}}function Ar(n){return function(){for(var t,r=arguments.length,u=n?r:-1,i=0,o=Bi(r);n?u--:++u=P)return t.plant(e).value();for(var u=0,i=r?o[u].apply(this,n):e;++u=t||!bo(t))return"";var u=t-e;return r=null==r?" ":r+"",gi(r,_o(u/r.length)).slice(0,u)}function Dr(n,t,r,e){function u(){for(var t=-1,a=arguments.length,f=-1,c=e.length,l=Bi(c+a);++ff))return!1;for(;++a-1&&n%1==0&&n-1&&n%1==0&&n<=Co}function ee(n){return n===n&&!Du(n)}function ue(n,t){var r=n[1],e=t[1],u=r|e,i=u-1;)po.call(t,i,1);return t}function Ie(n,t,r){var e=[];if(!n||!n.length)return e;var u=-1,i=[],o=n.length;for(t=Fr(t,r,3);++u-1:!!u&&Mr(n,t,r)>-1}function nu(n,t,r){var e=Ia(n)?ct:Nt;return t=Fr(t,r,3),e(n,t)}function tu(n,t){return nu(n,Ti(t))}function ru(n,t,r){var e=Ia(n)?ft:Et;return t=Fr(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})}function eu(n,t,r){ 190 | if(r?Qr(n,t,r):null==t){n=le(n);var e=n.length;return e>0?n[Zt(0,e-1)]:k}var u=-1,i=Zu(n),e=i.length,o=e-1;for(t=jo(t<0?0:+t||0,e);++u0&&(r=t.apply(this,arguments)),n<=1&&(t=k),r}}function hu(n,t,r){function e(){h&&oo(h),c&&oo(c),_=0,c=h=v=k}function u(t,r){r&&oo(r),c=h=v=k,t&&(_=_a(),l=n.apply(p,f),h||c||(f=p=k))}function i(){var n=t-(_a()-s);n<=0||n>t?u(v,c):h=so(i,n)}function o(){u(y,h)}function a(){if(f=arguments,s=_a(),p=this,v=y&&(h||!d),g===!1)var r=d&&!h;else{c||d||(_=s);var e=g-(s-_),u=e<=0||e>g;u?(c&&(c=oo(c)), 193 | _=s,l=n.apply(p,f)):c||(c=so(o,e))}return u&&h?h=oo(h):h||t===g||(h=so(i,t)),r&&(u=!0,l=n.apply(p,f)),!u||h||c||(f=p=k),l}var f,c,l,s,p,h,v,_=0,g=!1,y=!0;if("function"!=typeof n)throw new Ji(K);if(t=t<0?0:+t||0,r===!0){var d=!0;y=!1}else Du(r)&&(d=!!r.leading,g="maxWait"in r&&xo(+r.maxWait||0,t),y="trailing"in r?!!r.trailing:y);return a.cancel=e,a}function vu(n,t){if("function"!=typeof n||t&&"function"!=typeof t)throw new Ji(K);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u); 194 | var o=n.apply(this,e);return r.cache=i.set(u,o),o};return r.cache=new vu.Cache,r}function _u(n){if("function"!=typeof n)throw new Ji(K);return function(){return!n.apply(this,arguments)}}function gu(n){return pu(2,n)}function yu(n,t){if("function"!=typeof n)throw new Ji(K);return t=xo(t===k?n.length-1:+t||0,0),function(){for(var r=arguments,e=-1,u=xo(r.length-t,0),i=Bi(u);++et}function Au(n,t){return n>=t}function Ou(n){return m(n)&&Yr(n)&&no.call(n,"callee")&&!co.call(n,"callee")}function Ru(n){return n===!0||n===!1||m(n)&&ro.call(n)==J}function ku(n){return m(n)&&ro.call(n)==G}function Eu(n){return!!n&&1===n.nodeType&&m(n)&&!Bu(n)}function Iu(n){return null==n||(Yr(n)&&(Ia(n)||Pu(n)||Ou(n)||m(n)&&Tu(n.splice))?!n.length:!Ba(n).length); 197 | }function Su(n,t,r,e){r="function"==typeof r?or(r,e,3):k;var u=r?r(n,t):k;return u===k?Lt(n,t,r):!!u}function zu(n){return m(n)&&"string"==typeof n.message&&ro.call(n)==Y}function Cu(n){return"number"==typeof n&&bo(n)}function Tu(n){return Du(n)&&ro.call(n)==X}function Du(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function Wu(n,t,r,e){return r="function"==typeof r?or(r,e,3):k,$t(n,qr(t),r)}function Lu(n){return Nu(n)&&n!=+n}function Uu(n){return null!=n&&(Tu(n)?uo.test(Qi.call(n)):m(n)&&Un.test(n)); 198 | }function $u(n){return null===n}function Nu(n){return"number"==typeof n||m(n)&&ro.call(n)==nn}function Bu(n){var t;if(!m(n)||ro.call(n)!=tn||Ou(n)||!no.call(n,"constructor")&&(t=n.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var r;return zt(n,function(n,t){r=t}),r===k||no.call(n,r)}function Fu(n){return Du(n)&&ro.call(n)==rn}function Pu(n){return"string"==typeof n||m(n)&&ro.call(n)==un}function Mu(n){return m(n)&&re(n.length)&&!!Kn[ro.call(n)]}function qu(n){return n===k}function Ku(n,t){ 199 | return n0;++e=jo(t,r)&&n=0&&n.indexOf(t,r)==r}function pi(n){return n=c(n),n&&jn.test(n)?n.replace(wn,_):n}function hi(n){return n=c(n),n&&zn.test(n)?n.replace(Sn,g):n||"(?:)"}function vi(n,t,r){n=c(n),t=+t;var e=n.length;if(e>=t||!bo(t))return n;var u=(t-e)/2,i=yo(u),o=_o(u);return r=Tr("",o,r), 204 | r.slice(0,i)+n+r}function _i(n,t,r){return(r?Qr(n,t,r):null==t)?t=0:t&&(t=+t),n=mi(n),Oo(n,t||(Ln.test(n)?16:10))}function gi(n,t){var r="";if(n=c(n),t=+t,t<1||!n||!bo(t))return r;do t%2&&(r+=n),t=yo(t/2),n+=n;while(t);return r}function yi(n,t,r){return n=c(n),r=null==r?0:jo(r<0?0:+r||0,n.length),n.lastIndexOf(t,r)==r}function di(n,r,e){var u=t.templateSettings;e&&Qr(n,r,e)&&(r=e=k),n=c(n),r=yt(dt({},e||r),u,gt);var i,o,a=yt(dt({},r.imports),u.imports,gt),f=Ba(a),l=tr(a,f),s=0,p=r.interpolate||Bn,h="__p += '",v=Zi((r.escape||Bn).source+"|"+p.source+"|"+(p===Rn?Dn:Bn).source+"|"+(r.evaluate||Bn).source+"|$","g"),_="//# sourceURL="+("sourceURL"in r?r.sourceURL:"lodash.templateSources["+ ++qn+"]")+"\n"; 205 | n.replace(v,function(t,r,e,u,a,f){return e||(e=u),h+=n.slice(s,f).replace(Fn,y),r&&(i=!0,h+="' +\n__e("+r+") +\n'"),a&&(o=!0,h+="';\n"+a+";\n__p += '"),e&&(h+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),s=f+t.length,t}),h+="';\n";var g=r.variable;g||(h="with (obj) {\n"+h+"\n}\n"),h=(o?h.replace(yn,""):h).replace(dn,"$1").replace(mn,"$1;"),h="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}"; 206 | var d=Ya(function(){return Mi(f,_+"return "+h).apply(k,l)});if(d.source=h,zu(d))throw d;return d}function mi(n,t,r){var e=n;return(n=c(n))?(r?Qr(e,t,r):null==t)?n.slice(j(n),A(n)+1):(t+="",n.slice(l(n,t),s(n,t)+1)):n}function bi(n,t,r){var e=n;return n=c(n),n?n.slice((r?Qr(e,t,r):null==t)?j(n):l(n,t+"")):n}function wi(n,t,r){var e=n;return n=c(n),n?(r?Qr(e,t,r):null==t)?n.slice(0,A(n)+1):n.slice(0,s(n,t+"")+1):n}function xi(n,t,r){r&&Qr(n,t,r)&&(t=k);var e=$,u=N;if(null!=t)if(Du(t)){var i="separator"in t?t.separator:i; 207 | e="length"in t?+t.length||0:e,u="omission"in t?c(t.omission):u}else e=+t||0;if(n=c(n),e>=n.length)return n;var o=e-u.length;if(o<1)return u;var a=n.slice(0,o);if(null==i)return a+u;if(Fu(i)){if(n.slice(o).search(i)){var f,l,s=n.slice(0,o);for(i.global||(i=Zi(i.source,(Wn.exec(i)||"")+"g")),i.lastIndex=0;f=i.exec(s);)l=f.index;a=a.slice(0,null==l?o:l)}}else if(n.indexOf(i,o)!=o){var p=a.lastIndexOf(i);p>-1&&(a=a.slice(0,p))}return a+u}function ji(n){return n=c(n),n&&xn.test(n)?n.replace(bn,O):n}function Ai(n,t,r){ 208 | return r&&Qr(n,t,r)&&(t=k),n=c(n),n.match(t||Pn)||[]}function Oi(n,t,r){return r&&Qr(n,t,r)&&(t=k),m(n)?Ei(n):wt(n,t)}function Ri(n){return function(){return n}}function ki(n){return n}function Ei(n){return Bt(xt(n,!0))}function Ii(n,t){return Ft(n,xt(t,!0))}function Si(n,t,r){if(null==r){var e=Du(t),u=e?Ba(t):k,i=u&&u.length?Dt(t,u):k;(i?i.length:e)||(i=!1,r=t,t=n,n=this)}i||(i=Dt(t,Ba(t)));var o=!0,a=-1,f=Tu(n),c=i.length;r===!1?o=!1:Du(r)&&"chain"in r&&(o=r.chain);for(;++a>>1,Co=9007199254740991,To=vo&&new vo,Do={}; 211 | t.support={};t.templateSettings={escape:An,evaluate:On,interpolate:Rn,variable:"",imports:{_:t}};var Wo=function(){function n(){}return function(t){if(Du(t)){n.prototype=t;var r=new n;n.prototype=k}return r||{}}}(),Lo=pr(Ct),Uo=pr(Tt,!0),$o=hr(),No=hr(!0),Bo=To?function(n,t){return To.set(n,t),n}:ki,Fo=To?function(n){return To.get(n)}:Ci,Po=qt("length"),Mo=function(){var n=0,t=0;return function(r,e){var u=_a(),i=F-(u-t);if(t=u,i>0){if(++n>=B)return r}else n=0;return Bo(r,e)}}(),qo=yu(function(n,t){ 212 | return m(n)&&Yr(n)?At(n,St(t,!1,!0)):[]}),Ko=xr(),Vo=xr(!0),Zo=yu(function(n){for(var t=n.length,r=t,e=Bi(s),u=Mr(),i=u==a,o=[];r--;){var f=n[r]=Yr(f=n[r])?f:[];e[r]=i&&f.length>=120?_r(r&&f):null}var c=n[0],l=-1,s=c?c.length:0,p=e[0];n:for(;++l2?n[t-2]:k,e=t>1?n[t-1]:k;return t>2&&"function"==typeof r?t-=2:(r=t>1&&"function"==typeof e?(--t,e):k,e=k),n.length=t,$e(n,r,e)}),ta=yu(function(n){return n=St(n),this.thru(function(t){return nt(Ia(t)?t:[se(t)],n)})}),ra=yu(function(n,t){return mt(n,St(t))}),ea=lr(function(n,t,r){no.call(n,r)?++n[r]:n[r]=1}),ua=wr(Lo),ia=wr(Uo,!0),oa=Or(rt,Lo),aa=Or(et,Uo),fa=lr(function(n,t,r){no.call(n,r)?n[r].push(t):n[r]=[t]; 214 | }),ca=lr(function(n,t,r){n[r]=t}),la=yu(function(n,t,r){var e=-1,u="function"==typeof t,i=ne(t),o=Yr(n)?Bi(n.length):[];return Lo(n,function(n){var a=u?t:i&&null!=n?n[t]:k;o[++e]=a?a.apply(n,r):Gr(n,t,r)}),o}),sa=lr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),pa=zr(st,Lo),ha=zr(pt,Uo),va=yu(function(n,t){if(null==n)return[];var r=t[2];return r&&Qr(t[0],t[1],r)&&(t.length=1),Xt(n,St(t),[])}),_a=Ao||function(){return(new Fi).getTime()},ga=yu(function(n,t,r){var e=I;if(r.length){var u=w(r,ga.placeholder); 215 | e|=D}return Ur(n,e,t,r,u)}),ya=yu(function(n,t){t=t.length?St(t):Gu(n);for(var r=-1,e=t.length;++r0||t<0)?new u(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==k&&(t=+t||0,r=t<0?r.dropRight(-t):r.take(t-n)),r)},u.prototype.takeRightWhile=function(n,t){return this.reverse().takeWhile(n,t).reverse()},u.prototype.toArray=function(){return this.take(Eo)},Ct(u.prototype,function(n,r){ 228 | var i=/^(?:filter|map|reject)|While$/.test(r),o=/^(?:first|last)$/.test(r),a=t[o?"take"+("last"==r?"Right":""):r];a&&(t.prototype[r]=function(){var t=o?[1]:arguments,r=this.__chain__,f=this.__wrapped__,c=!!this.__actions__.length,l=f instanceof u,s=t[0],p=l||Ia(f);p&&i&&"function"==typeof s&&1!=s.length&&(l=p=!1);var h=function(n){return o&&r?a(n,1)[0]:a.apply(k,lt([n],t))},v={func:Me,args:[h],thisArg:k},_=l&&!c;if(o&&!r)return _?(f=f.clone(),f.__actions__.push(v),n.call(f)):a.call(k,this.value())[0]; 229 | if(!o&&p){f=_?f:new u(this);var g=n.apply(f,t);return g.__actions__.push(v),new e(g,r)}return this.thru(h)})}),rt(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(n){var r=(/^(?:replace|split)$/.test(n)?Xi:Gi)[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",u=/^(?:join|pop|replace|shift)$/.test(n);t.prototype[n]=function(){var n=arguments;return u&&!this.__chain__?r.apply(this.value(),n):this[e](function(t){return r.apply(t,n)})}}),Ct(u.prototype,function(n,r){ 230 | var e=t[r];if(e){var u=e.name,i=Do[u]||(Do[u]=[]);i.push({name:r,func:e})}}),Do[Cr(k,S).name]=[{name:"wrapper",func:k}],u.prototype.clone=b,u.prototype.reverse=Q,u.prototype.value=en,t.prototype.chain=qe,t.prototype.commit=Ke,t.prototype.concat=ta,t.prototype.plant=Ve,t.prototype.reverse=Ze,t.prototype.toString=He,t.prototype.run=t.prototype.toJSON=t.prototype.valueOf=t.prototype.value=Je,t.prototype.collect=t.prototype.map,t.prototype.head=t.prototype.first,t.prototype.select=t.prototype.filter, 231 | t.prototype.tail=t.prototype.rest,t}var k,E="3.10.1",I=1,S=2,z=4,C=8,T=16,D=32,W=64,L=128,U=256,$=30,N="...",B=150,F=16,P=200,M=1,q=2,K="Expected a function",V="__lodash_placeholder__",Z="[object Arguments]",H="[object Array]",J="[object Boolean]",G="[object Date]",Y="[object Error]",X="[object Function]",Q="[object Map]",nn="[object Number]",tn="[object Object]",rn="[object RegExp]",en="[object Set]",un="[object String]",on="[object WeakMap]",an="[object ArrayBuffer]",fn="[object Float32Array]",cn="[object Float64Array]",ln="[object Int8Array]",sn="[object Int16Array]",pn="[object Int32Array]",hn="[object Uint8Array]",vn="[object Uint8ClampedArray]",_n="[object Uint16Array]",gn="[object Uint32Array]",yn=/\b__p \+= '';/g,dn=/\b(__p \+=) '' \+/g,mn=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bn=/&(?:amp|lt|gt|quot|#39|#96);/g,wn=/[&<>"'`]/g,xn=RegExp(bn.source),jn=RegExp(wn.source),An=/<%-([\s\S]+?)%>/g,On=/<%([\s\S]+?)%>/g,Rn=/<%=([\s\S]+?)%>/g,kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,En=/^\w*$/,In=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Sn=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,zn=RegExp(Sn.source),Cn=/[\u0300-\u036f\ufe20-\ufe23]/g,Tn=/\\(\\)?/g,Dn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wn=/\w*$/,Ln=/^0[xX]/,Un=/^\[object .+?Constructor\]$/,$n=/^\d+$/,Nn=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Bn=/($^)/,Fn=/['\n\r\u2028\u2029\\]/g,Pn=function(){ 232 | var n="[A-Z\\xc0-\\xd6\\xd8-\\xde]",t="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(n+"+(?="+n+t+")|"+n+"?"+t+"|"+n+"+|[0-9]+","g")}(),Mn=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],qn=-1,Kn={};Kn[fn]=Kn[cn]=Kn[ln]=Kn[sn]=Kn[pn]=Kn[hn]=Kn[vn]=Kn[_n]=Kn[gn]=!0, 233 | Kn[Z]=Kn[H]=Kn[an]=Kn[J]=Kn[G]=Kn[Y]=Kn[X]=Kn[Q]=Kn[nn]=Kn[tn]=Kn[rn]=Kn[en]=Kn[un]=Kn[on]=!1;var Vn={};Vn[Z]=Vn[H]=Vn[an]=Vn[J]=Vn[G]=Vn[fn]=Vn[cn]=Vn[ln]=Vn[sn]=Vn[pn]=Vn[nn]=Vn[tn]=Vn[rn]=Vn[un]=Vn[hn]=Vn[vn]=Vn[_n]=Vn[gn]=!0,Vn[Y]=Vn[X]=Vn[Q]=Vn[en]=Vn[on]=!1;var Zn={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e", 234 | "\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Hn={"&":"&","<":"<",">":">",'"':""", 235 | "'":"'","`":"`"},Jn={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Gn={function:!0,object:!0},Yn={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Xn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Qn=Gn[typeof t]&&t&&!t.nodeType&&t,nt=Gn[typeof n]&&n&&!n.nodeType&&n,tt=Qn&&nt&&"object"==typeof u&&u&&u.Object&&u,rt=Gn[typeof self]&&self&&self.Object&&self,et=Gn[typeof window]&&window&&window.Object&&window,ut=tt||et!==(this&&this.window)&&et||rt||this,it=R(); 236 | ut._=it,e=function(){return it}.call(t,r,t,n),!(e!==k&&(n.exports=e))}).call(this)}).call(t,r(3)(n),function(){return this}())},function(n,t){function r(){throw Error("setTimeout has not been defined")}function e(){throw Error("clearTimeout has not been defined")}function u(n){if(l===setTimeout)return setTimeout(n,0);if((l===r||!l)&&setTimeout)return l=setTimeout,setTimeout(n,0);try{return l(n,0)}catch(t){try{return l.call(null,n,0)}catch(t){return l.call(this,n,0)}}}function i(n){if(s===clearTimeout)return clearTimeout(n); 237 | if((s===e||!s)&&clearTimeout)return s=clearTimeout,clearTimeout(n);try{return s(n)}catch(t){try{return s.call(null,n)}catch(t){return s.call(this,n)}}}function o(){_&&h&&(_=!1,h.length?v=h.concat(v):g=-1,v.length&&a())}function a(){if(!_){var n=u(o);_=!0;for(var t=v.length;t;){for(h=v,v=[];++g1)for(var r=1;r=3&&(e.depth=arguments[2]),arguments.length>=4&&(e.colors=arguments[3]),_(r)?e.showHidden=r:r&&t._extend(e,r), 240 | w(e.showHidden)&&(e.showHidden=!1),w(e.depth)&&(e.depth=2),w(e.colors)&&(e.colors=!1),w(e.customInspect)&&(e.customInspect=!0),e.colors&&(e.stylize=i),f(e,n,e.depth)}function i(n,t){var r=u.styles[t];return r?"\x1b["+u.colors[r][0]+"m"+n+"\x1b["+u.colors[r][1]+"m":n}function o(n,t){return n}function a(n){var t={};return n.forEach(function(n,r){t[n]=!0}),t}function f(n,r,e){if(n.customInspect&&r&&R(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var u=r.inspect(e,n); 241 | return m(u)||(u=f(n,u,e)),u}var i=c(n,r);if(i)return i;var o=Object.keys(r),_=a(o);if(n.showHidden&&(o=Object.getOwnPropertyNames(r)),O(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return l(r);if(0===o.length){if(R(r)){var g=r.name?": "+r.name:"";return n.stylize("[Function"+g+"]","special")}if(x(r))return n.stylize(RegExp.prototype.toString.call(r),"regexp");if(A(r))return n.stylize(Date.prototype.toString.call(r),"date");if(O(r))return l(r)}var y="",d=!1,b=["{","}"];if(v(r)&&(d=!0, 242 | b=["[","]"]),R(r)){var w=r.name?": "+r.name:"";y=" [Function"+w+"]"}if(x(r)&&(y=" "+RegExp.prototype.toString.call(r)),A(r)&&(y=" "+Date.prototype.toUTCString.call(r)),O(r)&&(y=" "+l(r)),0===o.length&&(!d||0==r.length))return b[0]+y+b[1];if(e<0)return x(r)?n.stylize(RegExp.prototype.toString.call(r),"regexp"):n.stylize("[Object]","special");n.seen.push(r);var j;return j=d?s(n,r,e,_,o):o.map(function(t){return p(n,r,e,_,t,d)}),n.seen.pop(),h(j,y,b)}function c(n,t){if(w(t))return n.stylize("undefined","undefined"); 243 | if(m(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(r,"string")}return d(t)?n.stylize(""+t,"number"):_(t)?n.stylize(""+t,"boolean"):g(t)?n.stylize("null","null"):void 0}function l(n){return"["+Error.prototype.toString.call(n)+"]"}function s(n,t,r,e,u){for(var i=[],o=0,a=t.length;o-1&&(a=i?a.split("\n").map(function(n){return" "+n}).join("\n").substr(2):"\n"+a.split("\n").map(function(n){return" "+n}).join("\n"))):a=n.stylize("[Circular]","special")),w(o)){if(i&&u.match(/^\d+$/))return a; 245 | o=JSON.stringify(""+u),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=n.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=n.stylize(o,"string"))}return o+": "+a}function h(n,t,r){var e=0,u=n.reduce(function(n,t){return e++,t.indexOf("\n")>=0&&e++,n+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return u>60?r[0]+(""===t?"":t+"\n ")+" "+n.join(",\n ")+" "+r[1]:r[0]+t+" "+n.join(", ")+" "+r[1]}function v(n){return Array.isArray(n)}function _(n){ 246 | return"boolean"==typeof n}function g(n){return null===n}function y(n){return null==n}function d(n){return"number"==typeof n}function m(n){return"string"==typeof n}function b(n){return"symbol"==typeof n}function w(n){return void 0===n}function x(n){return j(n)&&"[object RegExp]"===E(n)}function j(n){return"object"==typeof n&&null!==n}function A(n){return j(n)&&"[object Date]"===E(n)}function O(n){return j(n)&&("[object Error]"===E(n)||n instanceof Error)}function R(n){return"function"==typeof n}function k(n){ 247 | return null===n||"boolean"==typeof n||"number"==typeof n||"string"==typeof n||"symbol"==typeof n||void 0===n}function E(n){return Object.prototype.toString.call(n)}function I(n){return n<10?"0"+n.toString(10):n.toString(10)}function S(){var n=new Date,t=[I(n.getHours()),I(n.getMinutes()),I(n.getSeconds())].join(":");return[n.getDate(),W[n.getMonth()],t].join(" ")}function z(n,t){return Object.prototype.hasOwnProperty.call(n,t)}var C=/%[sdj%]/g;t.format=function(n){if(!m(n)){for(var t=[],r=0;r=i)return n;switch(n){case"%s":return e[r++]+"";case"%d":return+e[r++];case"%j":try{return JSON.stringify(e[r++])}catch(n){return"[Circular]"}default:return n}}),a=e[r];r(<%= args %>)', 34 | ' v<%= oldData.version %> => <%= oldData.result %>', 35 | ' v<%= newData.version %> => <%= newData.result %>' 36 | ].join('\n')), 37 | 38 | /** 39 | * Generates the rename warning message as a string. 40 | * 41 | * @static 42 | * @memberOf config 43 | * @param {Object} data Rename message data. 44 | */ 45 | 'renameMessage': _.template([ 46 | 'lodash-migrate: Method renamed', 47 | ' v<%= oldData.version %> => _.<%= oldData.name %>', 48 | ' v<%= newData.version %> => _.<%= newData.name %>' 49 | ].join('\n')) 50 | }; 51 | -------------------------------------------------------------------------------- /lib/listing.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var util = require('./util'), 4 | Hash = util.Hash; 5 | 6 | /*----------------------------------------------------------------------------*/ 7 | 8 | /** List of methods that should not emit a log. */ 9 | exports.ignored = new Hash({ 10 | 'rename': [ 11 | 'callback', 12 | 'createCallback' 13 | ], 14 | 'result': [ 15 | 'defer', 16 | 'delay', 17 | 'mixin', 18 | 'now', 19 | 'random', 20 | 'runInContext', 21 | 'sample', 22 | 'shuffle', 23 | 'uniqueId' 24 | ] 25 | }); 26 | 27 | /** List of sequence methods without static counterparts. */ 28 | exports.seqFuncs = [ 29 | 'commit', 30 | 'plant', 31 | 'pop', 32 | 'run', 33 | 'shift', 34 | 'toJSON', 35 | 'value', 36 | 'valueOf' 37 | ]; 38 | 39 | /** List of methods that produce unwrapped results when chaining. */ 40 | exports.unwrapped = [ 41 | 'add', 'attempt', 'camelCase', 'capitalize', 'ceil', 'clone', 'cloneDeep', 42 | 'deburr', 'endsWith', 'escape', 'escapeRegExp', 'every', 'find', 'findIndex', 43 | 'findKey', 'findLast', 'findLastIndex', 'findLastKey', 'findWhere', 'first', 44 | 'floor', 'get', 'gt', 'gte', 'has', 'identity', 'includes', 'indexOf', 'inRange', 45 | 'isArguments', 'isArray', 'isBoolean', 'isDate', 'isElement', 'isEmpty', 'isEqual', 46 | 'isError', 'isFinite', 'isFunction', 'isMatch', 'isNative', 'isNaN', 'isNull', 47 | 'isNumber', 'isObject', 'isPlainObject', 'isRegExp', 'isString', 'isUndefined', 48 | 'isTypedArray', 'kebabCase', 'last', 'lastIndexOf', 'lt', 'lte', 'max', 'min', 49 | 'noConflict', 'noop', 'now', 'pad', 'padLeft', 'padRight', 'parseInt', 'random', 50 | 'reduce', 'reduceRight', 'repeat','result', 'round', 'runInContext', 'size', 51 | 'snakeCase', 'some', 'sortedIndex', 'sortedLastIndex', 'startCase', 'startsWith', 52 | 'sum', 'template', 'trim', 'trimLeft', 'trimRight', 'trunc', 53 | 'unescape', 'uniqueId', 'words', 54 | 55 | // Method aliases. 56 | 'all', 'any', 'contains', 'eq', 'detect', 'foldl', 'foldr', 'head', 'include', 57 | 'inject' 58 | ]; 59 | -------------------------------------------------------------------------------- /lib/mapping.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var util = require('./util'), 4 | Hash = util.Hash; 5 | 6 | /*----------------------------------------------------------------------------*/ 7 | 8 | /** Used to track iteration methods. */ 9 | exports.iteration = new Hash({ 10 | 'forEach': { 'mappable': false }, 11 | 'forEachRight': { 'mappable': false }, 12 | 'forIn': { 'mappable': false }, 13 | 'forInRight': { 'mappable': false }, 14 | 'forOwn': { 'mappable': false }, 15 | 'forOwnRight': { 'mappable': false }, 16 | 'times': { 'mappable': true }, 17 | 18 | // Method aliases. 19 | 'each': { 'mappable': false }, 20 | 'eachRight': { 'mappable': false } 21 | }); 22 | 23 | /** Used to map old method names to new ones. */ 24 | exports.rename = new Hash({ 25 | 'all': 'every', 26 | 'any': 'some', 27 | 'backflow': 'flowRight', 28 | 'callback': 'iteratee', 29 | 'collect': 'map', 30 | 'compose': 'flowRight', 31 | 'contains': 'includes', 32 | 'createCallback': 'iteratee', 33 | 'detect': 'find', 34 | 'foldl': 'reduce', 35 | 'foldr': 'reduceRight', 36 | 'include': 'includes', 37 | 'indexBy': 'keyBy', 38 | 'inject': 'reduce', 39 | 'methods': 'functions', 40 | 'modArgs': 'overArgs', 41 | 'object': 'fromPairs', 42 | 'padLeft': 'padStart', 43 | 'padRight': 'padEnd', 44 | 'pairs': 'toPairs', 45 | 'restParam': 'rest', 46 | 'run': 'value', 47 | 'select': 'filter', 48 | 'sortByOrder': 'orderBy', 49 | 'trimLeft': 'trimStart', 50 | 'trimRight': 'trimEnd', 51 | 'trunc': 'truncate', 52 | 'unique': 'uniq' 53 | }); 54 | -------------------------------------------------------------------------------- /lib/util.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var _ = require('../lodash'); 4 | 5 | var ANSI_RESET = '\u001b[0m', 6 | USE_COLORS = typeof document == 'undefined'; 7 | 8 | var objectProto = Object.prototype; 9 | 10 | /*----------------------------------------------------------------------------*/ 11 | 12 | /** 13 | * A specialized version of `_.cloneDeep` which only clones arrays and plain 14 | * objects assigning all other values by reference. 15 | * 16 | * @static 17 | * @memberOf util 18 | * @param {*} value The value to clone. 19 | * @returns {*} The cloned value. 20 | */ 21 | var cloneDeep = _.partial(_.cloneDeepWith, _, function(value) { 22 | if (isPrototype(value) || !(_.isArray(value) || _.isPlainObject(value))) { 23 | return value; 24 | } 25 | }); 26 | 27 | /** 28 | * Creates a hash object. If a `properties` object is provided, its own 29 | * enumerable properties are assigned to the created object. 30 | * 31 | * @static 32 | * @memberOf util 33 | * @param {Object} [properties] The properties to assign to the object. 34 | * @returns {Object} Returns the new hash object. 35 | */ 36 | function Hash(properties) { 37 | return _.transform(properties, function(result, value, key) { 38 | result[key] = (_.isPlainObject(value) && !(value instanceof Hash)) 39 | ? new Hash(value) 40 | : value; 41 | }, this); 42 | } 43 | 44 | Hash.prototype = Object.create(null); 45 | 46 | /** 47 | * Creates a string representation of `value`. 48 | * 49 | * @static 50 | * @memberOf util 51 | * @param {*} value The value to inspect. 52 | * @returns {string} The string representation. 53 | */ 54 | var inspect = _.partial(require('util').inspect, _, { 55 | 'colors': USE_COLORS 56 | }); 57 | 58 | /** 59 | * Checks if `value` is comparable. 60 | * 61 | * **Note**: Functions, DOM nodes, and objects created by constructors other 62 | * than `Object` are not comparable. 63 | * 64 | * @static 65 | * @memberOf util 66 | * @param {*} value The value to check. 67 | * @returns {boolean} Returns `true` if `value` is a comparable, else `false`. 68 | */ 69 | function isComparable(value) { 70 | return ( 71 | value == null || !_.isObject(value) || _.isArguments(value) || 72 | _.isArray(value) || _.isBoolean(value) || _.isDate(value) || 73 | _.isError(value) || _.isNumber(value) || _.isPlainObject(value) || 74 | _.isRegExp(value) || _.isString(value) || _.isSymbol(value) || 75 | _.isTypedArray(value) 76 | ); 77 | } 78 | 79 | /** 80 | * A specialized version of `_.isEqual` which returns `true` for uncomparable values. 81 | * 82 | * @static 83 | * @memberOf util 84 | * @param {*} value The value to compare. 85 | * @param {*} other The other value to compare. 86 | * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 87 | */ 88 | var isEqual = _.partial(_.isEqualWith, _, _, function(value, other) { 89 | if (!isComparable(value) && !isComparable(other)) { 90 | return true; 91 | } 92 | }); 93 | 94 | /** 95 | * Checks if `value` is likely a prototype object. 96 | * 97 | * @static 98 | * @memberOf util 99 | * @param {*} value The value to check. 100 | * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 101 | */ 102 | function isPrototype(value) { 103 | var Ctor = value && value.constructor, 104 | proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 105 | 106 | return value === proto; 107 | } 108 | 109 | /** 110 | * Truncates `string` while ensuring ansi colors are reset. 111 | * 112 | * @static 113 | * @memberOf util 114 | * @param {string} string The string to truncate. 115 | * @returns {string} Returns the truncated string. 116 | */ 117 | function truncate(string) { 118 | var result = _.truncate(string, { 'length': 80 }); 119 | if (USE_COLORS && result.length != string.length) { 120 | result += ANSI_RESET; 121 | } 122 | return result; 123 | } 124 | 125 | /*----------------------------------------------------------------------------*/ 126 | 127 | module.exports = { 128 | 'cloneDeep': cloneDeep, 129 | 'Hash': Hash, 130 | 'inspect': inspect, 131 | 'isComparable': isComparable, 132 | 'isEqual': isEqual, 133 | 'isPrototype': isPrototype, 134 | 'truncate': truncate 135 | }; 136 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lodash-migrate", 3 | "version": "0.3.16", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "acorn": { 7 | "version": "3.3.0", 8 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 9 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 10 | "dev": true 11 | }, 12 | "align-text": { 13 | "version": "0.1.4", 14 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 15 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 16 | "dev": true 17 | }, 18 | "amdefine": { 19 | "version": "1.0.1", 20 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 21 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 22 | "dev": true 23 | }, 24 | "anymatch": { 25 | "version": "1.3.0", 26 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", 27 | "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", 28 | "dev": true 29 | }, 30 | "arr-diff": { 31 | "version": "2.0.0", 32 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 33 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 34 | "dev": true 35 | }, 36 | "arr-flatten": { 37 | "version": "1.0.3", 38 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", 39 | "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", 40 | "dev": true 41 | }, 42 | "array-unique": { 43 | "version": "0.2.1", 44 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 45 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 46 | "dev": true 47 | }, 48 | "arrify": { 49 | "version": "1.0.1", 50 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 51 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 52 | "dev": true 53 | }, 54 | "assert": { 55 | "version": "1.4.1", 56 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 57 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 58 | "dev": true 59 | }, 60 | "async": { 61 | "version": "1.5.2", 62 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 63 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 64 | "dev": true 65 | }, 66 | "async-each": { 67 | "version": "1.0.1", 68 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 69 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 70 | "dev": true 71 | }, 72 | "balanced-match": { 73 | "version": "0.4.2", 74 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", 75 | "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", 76 | "dev": true 77 | }, 78 | "base64-js": { 79 | "version": "1.2.0", 80 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", 81 | "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", 82 | "dev": true 83 | }, 84 | "big.js": { 85 | "version": "3.1.3", 86 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", 87 | "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", 88 | "dev": true 89 | }, 90 | "binary-extensions": { 91 | "version": "1.8.0", 92 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", 93 | "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", 94 | "dev": true 95 | }, 96 | "brace-expansion": { 97 | "version": "1.1.7", 98 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", 99 | "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", 100 | "dev": true 101 | }, 102 | "braces": { 103 | "version": "1.8.5", 104 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 105 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 106 | "dev": true 107 | }, 108 | "browserify-aes": { 109 | "version": "0.4.0", 110 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", 111 | "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", 112 | "dev": true 113 | }, 114 | "browserify-zlib": { 115 | "version": "0.1.4", 116 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", 117 | "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", 118 | "dev": true 119 | }, 120 | "buffer": { 121 | "version": "4.9.1", 122 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 123 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 124 | "dev": true 125 | }, 126 | "builtin-status-codes": { 127 | "version": "3.0.0", 128 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 129 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 130 | "dev": true 131 | }, 132 | "camelcase": { 133 | "version": "1.2.1", 134 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 135 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 136 | "dev": true 137 | }, 138 | "center-align": { 139 | "version": "0.1.3", 140 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 141 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 142 | "dev": true 143 | }, 144 | "chokidar": { 145 | "version": "1.6.1", 146 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", 147 | "integrity": "sha1-L0RHq16W5Q+z14n9kNTHLg5McMI=", 148 | "dev": true 149 | }, 150 | "cliui": { 151 | "version": "2.1.0", 152 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 153 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 154 | "dev": true, 155 | "dependencies": { 156 | "wordwrap": { 157 | "version": "0.0.2", 158 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 159 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 160 | "dev": true 161 | } 162 | } 163 | }, 164 | "clone": { 165 | "version": "1.0.2", 166 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", 167 | "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", 168 | "dev": true 169 | }, 170 | "commander": { 171 | "version": "2.9.0", 172 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 173 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 174 | "dev": true 175 | }, 176 | "concat-map": { 177 | "version": "0.0.1", 178 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 179 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 180 | "dev": true 181 | }, 182 | "console-browserify": { 183 | "version": "1.1.0", 184 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 185 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 186 | "dev": true 187 | }, 188 | "constants-browserify": { 189 | "version": "1.0.0", 190 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 191 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 192 | "dev": true 193 | }, 194 | "core-util-is": { 195 | "version": "1.0.2", 196 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 197 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 198 | "dev": true 199 | }, 200 | "crypto-browserify": { 201 | "version": "3.3.0", 202 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", 203 | "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", 204 | "dev": true 205 | }, 206 | "date-now": { 207 | "version": "0.1.4", 208 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 209 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 210 | "dev": true 211 | }, 212 | "decamelize": { 213 | "version": "1.2.0", 214 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 215 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 216 | "dev": true 217 | }, 218 | "detect-file": { 219 | "version": "0.1.0", 220 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", 221 | "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", 222 | "dev": true 223 | }, 224 | "domain-browser": { 225 | "version": "1.1.7", 226 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", 227 | "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", 228 | "dev": true 229 | }, 230 | "emojis-list": { 231 | "version": "2.1.0", 232 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 233 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 234 | "dev": true 235 | }, 236 | "enhanced-resolve": { 237 | "version": "0.9.1", 238 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", 239 | "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", 240 | "dev": true, 241 | "dependencies": { 242 | "memory-fs": { 243 | "version": "0.2.0", 244 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", 245 | "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", 246 | "dev": true 247 | } 248 | } 249 | }, 250 | "ensure-posix-path": { 251 | "version": "1.0.2", 252 | "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz", 253 | "integrity": "sha1-pls+QtC3HPxYXrd0+ZQ8jZuRsMI=", 254 | "dev": true 255 | }, 256 | "errno": { 257 | "version": "0.1.4", 258 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 259 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 260 | "dev": true 261 | }, 262 | "events": { 263 | "version": "1.1.1", 264 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 265 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", 266 | "dev": true 267 | }, 268 | "exists-stat": { 269 | "version": "1.0.0", 270 | "resolved": "https://registry.npmjs.org/exists-stat/-/exists-stat-1.0.0.tgz", 271 | "integrity": "sha1-BmDjUlouidnkRhKUQMJy7foktSk=", 272 | "dev": true 273 | }, 274 | "expand-brackets": { 275 | "version": "0.1.5", 276 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 277 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 278 | "dev": true 279 | }, 280 | "expand-range": { 281 | "version": "1.8.2", 282 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 283 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 284 | "dev": true 285 | }, 286 | "expand-tilde": { 287 | "version": "1.2.2", 288 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", 289 | "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", 290 | "dev": true 291 | }, 292 | "extglob": { 293 | "version": "0.3.2", 294 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 295 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 296 | "dev": true 297 | }, 298 | "filename-regex": { 299 | "version": "2.0.1", 300 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 301 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 302 | "dev": true 303 | }, 304 | "fill-range": { 305 | "version": "2.2.3", 306 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 307 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 308 | "dev": true 309 | }, 310 | "findup-sync": { 311 | "version": "0.4.3", 312 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", 313 | "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", 314 | "dev": true 315 | }, 316 | "for-in": { 317 | "version": "1.0.2", 318 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 319 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 320 | "dev": true 321 | }, 322 | "for-own": { 323 | "version": "0.1.5", 324 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 325 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 326 | "dev": true 327 | }, 328 | "fs-exists-sync": { 329 | "version": "0.1.0", 330 | "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", 331 | "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", 332 | "dev": true 333 | }, 334 | "fsevents": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", 337 | "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", 338 | "dev": true, 339 | "optional": true, 340 | "dependencies": { 341 | "abbrev": { 342 | "version": "1.1.0", 343 | "bundled": true, 344 | "dev": true, 345 | "optional": true 346 | }, 347 | "ansi-regex": { 348 | "version": "2.1.1", 349 | "bundled": true, 350 | "dev": true 351 | }, 352 | "ansi-styles": { 353 | "version": "2.2.1", 354 | "bundled": true, 355 | "dev": true, 356 | "optional": true 357 | }, 358 | "aproba": { 359 | "version": "1.1.1", 360 | "bundled": true, 361 | "dev": true, 362 | "optional": true 363 | }, 364 | "are-we-there-yet": { 365 | "version": "1.1.2", 366 | "bundled": true, 367 | "dev": true, 368 | "optional": true 369 | }, 370 | "asn1": { 371 | "version": "0.2.3", 372 | "bundled": true, 373 | "dev": true, 374 | "optional": true 375 | }, 376 | "assert-plus": { 377 | "version": "0.2.0", 378 | "bundled": true, 379 | "dev": true, 380 | "optional": true 381 | }, 382 | "asynckit": { 383 | "version": "0.4.0", 384 | "bundled": true, 385 | "dev": true, 386 | "optional": true 387 | }, 388 | "aws-sign2": { 389 | "version": "0.6.0", 390 | "bundled": true, 391 | "dev": true, 392 | "optional": true 393 | }, 394 | "aws4": { 395 | "version": "1.6.0", 396 | "bundled": true, 397 | "dev": true, 398 | "optional": true 399 | }, 400 | "balanced-match": { 401 | "version": "0.4.2", 402 | "bundled": true, 403 | "dev": true 404 | }, 405 | "bcrypt-pbkdf": { 406 | "version": "1.0.1", 407 | "bundled": true, 408 | "dev": true, 409 | "optional": true 410 | }, 411 | "block-stream": { 412 | "version": "0.0.9", 413 | "bundled": true, 414 | "dev": true 415 | }, 416 | "boom": { 417 | "version": "2.10.1", 418 | "bundled": true, 419 | "dev": true 420 | }, 421 | "brace-expansion": { 422 | "version": "1.1.6", 423 | "bundled": true, 424 | "dev": true 425 | }, 426 | "buffer-shims": { 427 | "version": "1.0.0", 428 | "bundled": true, 429 | "dev": true 430 | }, 431 | "caseless": { 432 | "version": "0.11.0", 433 | "bundled": true, 434 | "dev": true, 435 | "optional": true 436 | }, 437 | "chalk": { 438 | "version": "1.1.3", 439 | "bundled": true, 440 | "dev": true, 441 | "optional": true 442 | }, 443 | "code-point-at": { 444 | "version": "1.1.0", 445 | "bundled": true, 446 | "dev": true 447 | }, 448 | "combined-stream": { 449 | "version": "1.0.5", 450 | "bundled": true, 451 | "dev": true 452 | }, 453 | "commander": { 454 | "version": "2.9.0", 455 | "bundled": true, 456 | "dev": true, 457 | "optional": true 458 | }, 459 | "concat-map": { 460 | "version": "0.0.1", 461 | "bundled": true, 462 | "dev": true 463 | }, 464 | "console-control-strings": { 465 | "version": "1.1.0", 466 | "bundled": true, 467 | "dev": true 468 | }, 469 | "core-util-is": { 470 | "version": "1.0.2", 471 | "bundled": true, 472 | "dev": true 473 | }, 474 | "cryptiles": { 475 | "version": "2.0.5", 476 | "bundled": true, 477 | "dev": true, 478 | "optional": true 479 | }, 480 | "dashdash": { 481 | "version": "1.14.1", 482 | "bundled": true, 483 | "dev": true, 484 | "optional": true, 485 | "dependencies": { 486 | "assert-plus": { 487 | "version": "1.0.0", 488 | "bundled": true, 489 | "dev": true, 490 | "optional": true 491 | } 492 | } 493 | }, 494 | "debug": { 495 | "version": "2.2.0", 496 | "bundled": true, 497 | "dev": true, 498 | "optional": true 499 | }, 500 | "deep-extend": { 501 | "version": "0.4.1", 502 | "bundled": true, 503 | "dev": true, 504 | "optional": true 505 | }, 506 | "delayed-stream": { 507 | "version": "1.0.0", 508 | "bundled": true, 509 | "dev": true 510 | }, 511 | "delegates": { 512 | "version": "1.0.0", 513 | "bundled": true, 514 | "dev": true, 515 | "optional": true 516 | }, 517 | "ecc-jsbn": { 518 | "version": "0.1.1", 519 | "bundled": true, 520 | "dev": true, 521 | "optional": true 522 | }, 523 | "escape-string-regexp": { 524 | "version": "1.0.5", 525 | "bundled": true, 526 | "dev": true, 527 | "optional": true 528 | }, 529 | "extend": { 530 | "version": "3.0.0", 531 | "bundled": true, 532 | "dev": true, 533 | "optional": true 534 | }, 535 | "extsprintf": { 536 | "version": "1.0.2", 537 | "bundled": true, 538 | "dev": true 539 | }, 540 | "forever-agent": { 541 | "version": "0.6.1", 542 | "bundled": true, 543 | "dev": true, 544 | "optional": true 545 | }, 546 | "form-data": { 547 | "version": "2.1.2", 548 | "bundled": true, 549 | "dev": true, 550 | "optional": true 551 | }, 552 | "fs.realpath": { 553 | "version": "1.0.0", 554 | "bundled": true, 555 | "dev": true 556 | }, 557 | "fstream": { 558 | "version": "1.0.10", 559 | "bundled": true, 560 | "dev": true 561 | }, 562 | "fstream-ignore": { 563 | "version": "1.0.5", 564 | "bundled": true, 565 | "dev": true, 566 | "optional": true 567 | }, 568 | "gauge": { 569 | "version": "2.7.3", 570 | "bundled": true, 571 | "dev": true, 572 | "optional": true 573 | }, 574 | "generate-function": { 575 | "version": "2.0.0", 576 | "bundled": true, 577 | "dev": true, 578 | "optional": true 579 | }, 580 | "generate-object-property": { 581 | "version": "1.2.0", 582 | "bundled": true, 583 | "dev": true, 584 | "optional": true 585 | }, 586 | "getpass": { 587 | "version": "0.1.6", 588 | "bundled": true, 589 | "dev": true, 590 | "optional": true, 591 | "dependencies": { 592 | "assert-plus": { 593 | "version": "1.0.0", 594 | "bundled": true, 595 | "dev": true, 596 | "optional": true 597 | } 598 | } 599 | }, 600 | "glob": { 601 | "version": "7.1.1", 602 | "bundled": true, 603 | "dev": true 604 | }, 605 | "graceful-fs": { 606 | "version": "4.1.11", 607 | "bundled": true, 608 | "dev": true 609 | }, 610 | "graceful-readlink": { 611 | "version": "1.0.1", 612 | "bundled": true, 613 | "dev": true, 614 | "optional": true 615 | }, 616 | "har-validator": { 617 | "version": "2.0.6", 618 | "bundled": true, 619 | "dev": true, 620 | "optional": true 621 | }, 622 | "has-ansi": { 623 | "version": "2.0.0", 624 | "bundled": true, 625 | "dev": true, 626 | "optional": true 627 | }, 628 | "has-unicode": { 629 | "version": "2.0.1", 630 | "bundled": true, 631 | "dev": true, 632 | "optional": true 633 | }, 634 | "hawk": { 635 | "version": "3.1.3", 636 | "bundled": true, 637 | "dev": true, 638 | "optional": true 639 | }, 640 | "hoek": { 641 | "version": "2.16.3", 642 | "bundled": true, 643 | "dev": true 644 | }, 645 | "http-signature": { 646 | "version": "1.1.1", 647 | "bundled": true, 648 | "dev": true, 649 | "optional": true 650 | }, 651 | "inflight": { 652 | "version": "1.0.6", 653 | "bundled": true, 654 | "dev": true 655 | }, 656 | "inherits": { 657 | "version": "2.0.3", 658 | "bundled": true, 659 | "dev": true 660 | }, 661 | "ini": { 662 | "version": "1.3.4", 663 | "bundled": true, 664 | "dev": true, 665 | "optional": true 666 | }, 667 | "is-fullwidth-code-point": { 668 | "version": "1.0.0", 669 | "bundled": true, 670 | "dev": true 671 | }, 672 | "is-my-json-valid": { 673 | "version": "2.15.0", 674 | "bundled": true, 675 | "dev": true, 676 | "optional": true 677 | }, 678 | "is-property": { 679 | "version": "1.0.2", 680 | "bundled": true, 681 | "dev": true, 682 | "optional": true 683 | }, 684 | "is-typedarray": { 685 | "version": "1.0.0", 686 | "bundled": true, 687 | "dev": true, 688 | "optional": true 689 | }, 690 | "isarray": { 691 | "version": "1.0.0", 692 | "bundled": true, 693 | "dev": true 694 | }, 695 | "isstream": { 696 | "version": "0.1.2", 697 | "bundled": true, 698 | "dev": true, 699 | "optional": true 700 | }, 701 | "jodid25519": { 702 | "version": "1.0.2", 703 | "bundled": true, 704 | "dev": true, 705 | "optional": true 706 | }, 707 | "jsbn": { 708 | "version": "0.1.1", 709 | "bundled": true, 710 | "dev": true, 711 | "optional": true 712 | }, 713 | "json-schema": { 714 | "version": "0.2.3", 715 | "bundled": true, 716 | "dev": true, 717 | "optional": true 718 | }, 719 | "json-stringify-safe": { 720 | "version": "5.0.1", 721 | "bundled": true, 722 | "dev": true, 723 | "optional": true 724 | }, 725 | "jsonpointer": { 726 | "version": "4.0.1", 727 | "bundled": true, 728 | "dev": true, 729 | "optional": true 730 | }, 731 | "jsprim": { 732 | "version": "1.3.1", 733 | "bundled": true, 734 | "dev": true, 735 | "optional": true 736 | }, 737 | "mime-db": { 738 | "version": "1.26.0", 739 | "bundled": true, 740 | "dev": true 741 | }, 742 | "mime-types": { 743 | "version": "2.1.14", 744 | "bundled": true, 745 | "dev": true 746 | }, 747 | "minimatch": { 748 | "version": "3.0.3", 749 | "bundled": true, 750 | "dev": true 751 | }, 752 | "minimist": { 753 | "version": "0.0.8", 754 | "bundled": true, 755 | "dev": true 756 | }, 757 | "mkdirp": { 758 | "version": "0.5.1", 759 | "bundled": true, 760 | "dev": true 761 | }, 762 | "ms": { 763 | "version": "0.7.1", 764 | "bundled": true, 765 | "dev": true, 766 | "optional": true 767 | }, 768 | "node-pre-gyp": { 769 | "version": "0.6.33", 770 | "bundled": true, 771 | "dev": true, 772 | "optional": true 773 | }, 774 | "nopt": { 775 | "version": "3.0.6", 776 | "bundled": true, 777 | "dev": true, 778 | "optional": true 779 | }, 780 | "npmlog": { 781 | "version": "4.0.2", 782 | "bundled": true, 783 | "dev": true, 784 | "optional": true 785 | }, 786 | "number-is-nan": { 787 | "version": "1.0.1", 788 | "bundled": true, 789 | "dev": true 790 | }, 791 | "oauth-sign": { 792 | "version": "0.8.2", 793 | "bundled": true, 794 | "dev": true, 795 | "optional": true 796 | }, 797 | "object-assign": { 798 | "version": "4.1.1", 799 | "bundled": true, 800 | "dev": true, 801 | "optional": true 802 | }, 803 | "once": { 804 | "version": "1.4.0", 805 | "bundled": true, 806 | "dev": true 807 | }, 808 | "path-is-absolute": { 809 | "version": "1.0.1", 810 | "bundled": true, 811 | "dev": true 812 | }, 813 | "pinkie": { 814 | "version": "2.0.4", 815 | "bundled": true, 816 | "dev": true, 817 | "optional": true 818 | }, 819 | "pinkie-promise": { 820 | "version": "2.0.1", 821 | "bundled": true, 822 | "dev": true, 823 | "optional": true 824 | }, 825 | "process-nextick-args": { 826 | "version": "1.0.7", 827 | "bundled": true, 828 | "dev": true 829 | }, 830 | "punycode": { 831 | "version": "1.4.1", 832 | "bundled": true, 833 | "dev": true, 834 | "optional": true 835 | }, 836 | "qs": { 837 | "version": "6.3.1", 838 | "bundled": true, 839 | "dev": true, 840 | "optional": true 841 | }, 842 | "rc": { 843 | "version": "1.1.7", 844 | "bundled": true, 845 | "dev": true, 846 | "optional": true, 847 | "dependencies": { 848 | "minimist": { 849 | "version": "1.2.0", 850 | "bundled": true, 851 | "dev": true, 852 | "optional": true 853 | } 854 | } 855 | }, 856 | "readable-stream": { 857 | "version": "2.2.2", 858 | "bundled": true, 859 | "dev": true, 860 | "optional": true 861 | }, 862 | "request": { 863 | "version": "2.79.0", 864 | "bundled": true, 865 | "dev": true, 866 | "optional": true 867 | }, 868 | "rimraf": { 869 | "version": "2.5.4", 870 | "bundled": true, 871 | "dev": true 872 | }, 873 | "semver": { 874 | "version": "5.3.0", 875 | "bundled": true, 876 | "dev": true, 877 | "optional": true 878 | }, 879 | "set-blocking": { 880 | "version": "2.0.0", 881 | "bundled": true, 882 | "dev": true, 883 | "optional": true 884 | }, 885 | "signal-exit": { 886 | "version": "3.0.2", 887 | "bundled": true, 888 | "dev": true, 889 | "optional": true 890 | }, 891 | "sntp": { 892 | "version": "1.0.9", 893 | "bundled": true, 894 | "dev": true, 895 | "optional": true 896 | }, 897 | "sshpk": { 898 | "version": "1.10.2", 899 | "bundled": true, 900 | "dev": true, 901 | "optional": true, 902 | "dependencies": { 903 | "assert-plus": { 904 | "version": "1.0.0", 905 | "bundled": true, 906 | "dev": true, 907 | "optional": true 908 | } 909 | } 910 | }, 911 | "string_decoder": { 912 | "version": "0.10.31", 913 | "bundled": true, 914 | "dev": true 915 | }, 916 | "string-width": { 917 | "version": "1.0.2", 918 | "bundled": true, 919 | "dev": true 920 | }, 921 | "stringstream": { 922 | "version": "0.0.5", 923 | "bundled": true, 924 | "dev": true, 925 | "optional": true 926 | }, 927 | "strip-ansi": { 928 | "version": "3.0.1", 929 | "bundled": true, 930 | "dev": true 931 | }, 932 | "strip-json-comments": { 933 | "version": "2.0.1", 934 | "bundled": true, 935 | "dev": true, 936 | "optional": true 937 | }, 938 | "supports-color": { 939 | "version": "2.0.0", 940 | "bundled": true, 941 | "dev": true, 942 | "optional": true 943 | }, 944 | "tar": { 945 | "version": "2.2.1", 946 | "bundled": true, 947 | "dev": true 948 | }, 949 | "tar-pack": { 950 | "version": "3.3.0", 951 | "bundled": true, 952 | "dev": true, 953 | "optional": true, 954 | "dependencies": { 955 | "once": { 956 | "version": "1.3.3", 957 | "bundled": true, 958 | "dev": true, 959 | "optional": true 960 | }, 961 | "readable-stream": { 962 | "version": "2.1.5", 963 | "bundled": true, 964 | "dev": true, 965 | "optional": true 966 | } 967 | } 968 | }, 969 | "tough-cookie": { 970 | "version": "2.3.2", 971 | "bundled": true, 972 | "dev": true, 973 | "optional": true 974 | }, 975 | "tunnel-agent": { 976 | "version": "0.4.3", 977 | "bundled": true, 978 | "dev": true, 979 | "optional": true 980 | }, 981 | "tweetnacl": { 982 | "version": "0.14.5", 983 | "bundled": true, 984 | "dev": true, 985 | "optional": true 986 | }, 987 | "uid-number": { 988 | "version": "0.0.6", 989 | "bundled": true, 990 | "dev": true, 991 | "optional": true 992 | }, 993 | "util-deprecate": { 994 | "version": "1.0.2", 995 | "bundled": true, 996 | "dev": true 997 | }, 998 | "uuid": { 999 | "version": "3.0.1", 1000 | "bundled": true, 1001 | "dev": true, 1002 | "optional": true 1003 | }, 1004 | "verror": { 1005 | "version": "1.3.6", 1006 | "bundled": true, 1007 | "dev": true, 1008 | "optional": true 1009 | }, 1010 | "wide-align": { 1011 | "version": "1.1.0", 1012 | "bundled": true, 1013 | "dev": true, 1014 | "optional": true 1015 | }, 1016 | "wrappy": { 1017 | "version": "1.0.2", 1018 | "bundled": true, 1019 | "dev": true 1020 | }, 1021 | "xtend": { 1022 | "version": "4.0.1", 1023 | "bundled": true, 1024 | "dev": true, 1025 | "optional": true 1026 | } 1027 | } 1028 | }, 1029 | "glob-base": { 1030 | "version": "0.3.0", 1031 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1032 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1033 | "dev": true 1034 | }, 1035 | "glob-parent": { 1036 | "version": "2.0.0", 1037 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1038 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1039 | "dev": true 1040 | }, 1041 | "global-modules": { 1042 | "version": "0.2.3", 1043 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", 1044 | "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", 1045 | "dev": true 1046 | }, 1047 | "global-prefix": { 1048 | "version": "0.1.5", 1049 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", 1050 | "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", 1051 | "dev": true 1052 | }, 1053 | "graceful-fs": { 1054 | "version": "4.1.11", 1055 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1056 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1057 | "dev": true 1058 | }, 1059 | "graceful-readlink": { 1060 | "version": "1.0.1", 1061 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1062 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", 1063 | "dev": true 1064 | }, 1065 | "has-flag": { 1066 | "version": "1.0.0", 1067 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 1068 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 1069 | "dev": true 1070 | }, 1071 | "homedir-polyfill": { 1072 | "version": "1.0.1", 1073 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", 1074 | "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", 1075 | "dev": true 1076 | }, 1077 | "https-browserify": { 1078 | "version": "0.0.1", 1079 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", 1080 | "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", 1081 | "dev": true 1082 | }, 1083 | "ieee754": { 1084 | "version": "1.1.8", 1085 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 1086 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", 1087 | "dev": true 1088 | }, 1089 | "indexof": { 1090 | "version": "0.0.1", 1091 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 1092 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 1093 | "dev": true 1094 | }, 1095 | "inherits": { 1096 | "version": "2.0.3", 1097 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1098 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1099 | "dev": true 1100 | }, 1101 | "ini": { 1102 | "version": "1.3.4", 1103 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 1104 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 1105 | "dev": true 1106 | }, 1107 | "interpret": { 1108 | "version": "0.6.6", 1109 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", 1110 | "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", 1111 | "dev": true 1112 | }, 1113 | "is-binary-path": { 1114 | "version": "1.0.1", 1115 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 1116 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 1117 | "dev": true 1118 | }, 1119 | "is-buffer": { 1120 | "version": "1.1.5", 1121 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 1122 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", 1123 | "dev": true 1124 | }, 1125 | "is-dotfile": { 1126 | "version": "1.0.3", 1127 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 1128 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 1129 | "dev": true 1130 | }, 1131 | "is-equal-shallow": { 1132 | "version": "0.1.3", 1133 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 1134 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1135 | "dev": true 1136 | }, 1137 | "is-extendable": { 1138 | "version": "0.1.1", 1139 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1140 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1141 | "dev": true 1142 | }, 1143 | "is-extglob": { 1144 | "version": "1.0.0", 1145 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1146 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1147 | "dev": true 1148 | }, 1149 | "is-glob": { 1150 | "version": "2.0.1", 1151 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 1152 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1153 | "dev": true 1154 | }, 1155 | "is-number": { 1156 | "version": "2.1.0", 1157 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 1158 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1159 | "dev": true 1160 | }, 1161 | "is-posix-bracket": { 1162 | "version": "0.1.1", 1163 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 1164 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 1165 | "dev": true 1166 | }, 1167 | "is-primitive": { 1168 | "version": "2.0.0", 1169 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 1170 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 1171 | "dev": true 1172 | }, 1173 | "is-windows": { 1174 | "version": "0.2.0", 1175 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", 1176 | "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", 1177 | "dev": true 1178 | }, 1179 | "isarray": { 1180 | "version": "1.0.0", 1181 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1182 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1183 | "dev": true 1184 | }, 1185 | "isexe": { 1186 | "version": "2.0.0", 1187 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1188 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1189 | "dev": true 1190 | }, 1191 | "isobject": { 1192 | "version": "2.1.0", 1193 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 1194 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 1195 | "dev": true 1196 | }, 1197 | "js-reporters": { 1198 | "version": "1.2.0", 1199 | "resolved": "https://registry.npmjs.org/js-reporters/-/js-reporters-1.2.0.tgz", 1200 | "integrity": "sha1-fPLLaYGWaEeQNQ0MTKB/Su2ewX4=", 1201 | "dev": true 1202 | }, 1203 | "json5": { 1204 | "version": "0.5.1", 1205 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1206 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 1207 | "dev": true 1208 | }, 1209 | "kind-of": { 1210 | "version": "3.2.2", 1211 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1212 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1213 | "dev": true 1214 | }, 1215 | "lazy-cache": { 1216 | "version": "1.0.4", 1217 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 1218 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 1219 | "dev": true 1220 | }, 1221 | "loader-utils": { 1222 | "version": "0.2.17", 1223 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", 1224 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", 1225 | "dev": true 1226 | }, 1227 | "lodash": { 1228 | "version": "3.10.1", 1229 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", 1230 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", 1231 | "dev": true 1232 | }, 1233 | "longest": { 1234 | "version": "1.0.1", 1235 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 1236 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 1237 | "dev": true 1238 | }, 1239 | "matcher-collection": { 1240 | "version": "1.0.4", 1241 | "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.4.tgz", 1242 | "integrity": "sha1-L2auCGmZbynkPQtiyD3R1D5YF1U=", 1243 | "dev": true 1244 | }, 1245 | "memory-fs": { 1246 | "version": "0.3.0", 1247 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", 1248 | "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", 1249 | "dev": true 1250 | }, 1251 | "micromatch": { 1252 | "version": "2.3.11", 1253 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 1254 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1255 | "dev": true 1256 | }, 1257 | "minimatch": { 1258 | "version": "3.0.4", 1259 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1260 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1261 | "dev": true 1262 | }, 1263 | "minimist": { 1264 | "version": "0.0.8", 1265 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1266 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1267 | "dev": true 1268 | }, 1269 | "mkdirp": { 1270 | "version": "0.5.1", 1271 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1272 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1273 | "dev": true 1274 | }, 1275 | "nan": { 1276 | "version": "2.6.2", 1277 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 1278 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 1279 | "dev": true, 1280 | "optional": true 1281 | }, 1282 | "node-libs-browser": { 1283 | "version": "0.7.0", 1284 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", 1285 | "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", 1286 | "dev": true, 1287 | "dependencies": { 1288 | "string_decoder": { 1289 | "version": "0.10.31", 1290 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1291 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 1292 | "dev": true 1293 | } 1294 | } 1295 | }, 1296 | "normalize-path": { 1297 | "version": "2.1.1", 1298 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 1299 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1300 | "dev": true 1301 | }, 1302 | "object-assign": { 1303 | "version": "4.1.1", 1304 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1305 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1306 | "dev": true 1307 | }, 1308 | "object.omit": { 1309 | "version": "2.0.1", 1310 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 1311 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1312 | "dev": true 1313 | }, 1314 | "optimist": { 1315 | "version": "0.6.1", 1316 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1317 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1318 | "dev": true 1319 | }, 1320 | "os-browserify": { 1321 | "version": "0.2.1", 1322 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", 1323 | "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", 1324 | "dev": true 1325 | }, 1326 | "os-homedir": { 1327 | "version": "1.0.2", 1328 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1329 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1330 | "dev": true 1331 | }, 1332 | "pako": { 1333 | "version": "0.2.9", 1334 | "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", 1335 | "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", 1336 | "dev": true 1337 | }, 1338 | "parse-glob": { 1339 | "version": "3.0.4", 1340 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 1341 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1342 | "dev": true 1343 | }, 1344 | "parse-passwd": { 1345 | "version": "1.0.0", 1346 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", 1347 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 1348 | "dev": true 1349 | }, 1350 | "path-browserify": { 1351 | "version": "0.0.0", 1352 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 1353 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 1354 | "dev": true 1355 | }, 1356 | "path-is-absolute": { 1357 | "version": "1.0.1", 1358 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1359 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1360 | "dev": true 1361 | }, 1362 | "path-parse": { 1363 | "version": "1.0.5", 1364 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 1365 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 1366 | "dev": true 1367 | }, 1368 | "pbkdf2-compat": { 1369 | "version": "2.0.1", 1370 | "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", 1371 | "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", 1372 | "dev": true 1373 | }, 1374 | "preserve": { 1375 | "version": "0.2.0", 1376 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 1377 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1378 | "dev": true 1379 | }, 1380 | "process": { 1381 | "version": "0.11.10", 1382 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1383 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 1384 | "dev": true 1385 | }, 1386 | "process-nextick-args": { 1387 | "version": "1.0.7", 1388 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1389 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 1390 | "dev": true 1391 | }, 1392 | "prr": { 1393 | "version": "0.0.0", 1394 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 1395 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", 1396 | "dev": true 1397 | }, 1398 | "punycode": { 1399 | "version": "1.4.1", 1400 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1401 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1402 | "dev": true 1403 | }, 1404 | "querystring": { 1405 | "version": "0.2.0", 1406 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 1407 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 1408 | "dev": true 1409 | }, 1410 | "querystring-es3": { 1411 | "version": "0.2.1", 1412 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 1413 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 1414 | "dev": true 1415 | }, 1416 | "qunit-extras": { 1417 | "version": "3.0.0", 1418 | "resolved": "https://registry.npmjs.org/qunit-extras/-/qunit-extras-3.0.0.tgz", 1419 | "integrity": "sha1-quDi4OIumAtYolz8/0lK+ZWYRts=", 1420 | "dev": true 1421 | }, 1422 | "qunitjs": { 1423 | "version": "2.3.3", 1424 | "resolved": "https://registry.npmjs.org/qunitjs/-/qunitjs-2.3.3.tgz", 1425 | "integrity": "sha1-RWaWvdYaLItbyPBT8A4g11pz1Tk=", 1426 | "dev": true 1427 | }, 1428 | "randomatic": { 1429 | "version": "1.1.7", 1430 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 1431 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 1432 | "dev": true, 1433 | "dependencies": { 1434 | "is-number": { 1435 | "version": "3.0.0", 1436 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 1437 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 1438 | "dev": true, 1439 | "dependencies": { 1440 | "kind-of": { 1441 | "version": "3.2.2", 1442 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1443 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1444 | "dev": true 1445 | } 1446 | } 1447 | }, 1448 | "kind-of": { 1449 | "version": "4.0.0", 1450 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 1451 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 1452 | "dev": true 1453 | } 1454 | } 1455 | }, 1456 | "readable-stream": { 1457 | "version": "2.2.11", 1458 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", 1459 | "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", 1460 | "dev": true 1461 | }, 1462 | "readdirp": { 1463 | "version": "2.1.0", 1464 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 1465 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 1466 | "dev": true 1467 | }, 1468 | "regex-cache": { 1469 | "version": "0.4.3", 1470 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", 1471 | "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", 1472 | "dev": true 1473 | }, 1474 | "remove-trailing-separator": { 1475 | "version": "1.0.2", 1476 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", 1477 | "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", 1478 | "dev": true 1479 | }, 1480 | "repeat-element": { 1481 | "version": "1.1.2", 1482 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 1483 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 1484 | "dev": true 1485 | }, 1486 | "repeat-string": { 1487 | "version": "1.6.1", 1488 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 1489 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 1490 | "dev": true 1491 | }, 1492 | "resolve": { 1493 | "version": "1.3.2", 1494 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz", 1495 | "integrity": "sha1-HwRCyeDLuBNuh7kwX5MvRsfygjU=", 1496 | "dev": true 1497 | }, 1498 | "resolve-dir": { 1499 | "version": "0.1.1", 1500 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", 1501 | "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", 1502 | "dev": true 1503 | }, 1504 | "right-align": { 1505 | "version": "0.1.3", 1506 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 1507 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 1508 | "dev": true 1509 | }, 1510 | "ripemd160": { 1511 | "version": "0.2.0", 1512 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", 1513 | "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", 1514 | "dev": true 1515 | }, 1516 | "safe-buffer": { 1517 | "version": "5.0.1", 1518 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", 1519 | "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", 1520 | "dev": true 1521 | }, 1522 | "set-immediate-shim": { 1523 | "version": "1.0.1", 1524 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 1525 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 1526 | "dev": true 1527 | }, 1528 | "setimmediate": { 1529 | "version": "1.0.5", 1530 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 1531 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 1532 | "dev": true 1533 | }, 1534 | "sha.js": { 1535 | "version": "2.2.6", 1536 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", 1537 | "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", 1538 | "dev": true 1539 | }, 1540 | "source-list-map": { 1541 | "version": "0.1.8", 1542 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", 1543 | "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", 1544 | "dev": true 1545 | }, 1546 | "source-map": { 1547 | "version": "0.5.6", 1548 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", 1549 | "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", 1550 | "dev": true 1551 | }, 1552 | "stream-browserify": { 1553 | "version": "2.0.1", 1554 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 1555 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 1556 | "dev": true 1557 | }, 1558 | "stream-http": { 1559 | "version": "2.7.1", 1560 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz", 1561 | "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=", 1562 | "dev": true 1563 | }, 1564 | "string_decoder": { 1565 | "version": "1.0.2", 1566 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", 1567 | "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", 1568 | "dev": true 1569 | }, 1570 | "supports-color": { 1571 | "version": "3.2.3", 1572 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 1573 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 1574 | "dev": true 1575 | }, 1576 | "tapable": { 1577 | "version": "0.1.10", 1578 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", 1579 | "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", 1580 | "dev": true 1581 | }, 1582 | "timers-browserify": { 1583 | "version": "2.0.2", 1584 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", 1585 | "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", 1586 | "dev": true 1587 | }, 1588 | "to-arraybuffer": { 1589 | "version": "1.0.1", 1590 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 1591 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 1592 | "dev": true 1593 | }, 1594 | "tty-browserify": { 1595 | "version": "0.0.0", 1596 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 1597 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 1598 | "dev": true 1599 | }, 1600 | "uglify-js": { 1601 | "version": "2.7.5", 1602 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", 1603 | "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", 1604 | "dev": true, 1605 | "dependencies": { 1606 | "async": { 1607 | "version": "0.2.10", 1608 | "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", 1609 | "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", 1610 | "dev": true 1611 | } 1612 | } 1613 | }, 1614 | "uglify-to-browserify": { 1615 | "version": "1.0.2", 1616 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 1617 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 1618 | "dev": true 1619 | }, 1620 | "url": { 1621 | "version": "0.11.0", 1622 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 1623 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 1624 | "dev": true, 1625 | "dependencies": { 1626 | "punycode": { 1627 | "version": "1.3.2", 1628 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 1629 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 1630 | "dev": true 1631 | } 1632 | } 1633 | }, 1634 | "util": { 1635 | "version": "0.10.3", 1636 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 1637 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 1638 | "dev": true, 1639 | "dependencies": { 1640 | "inherits": { 1641 | "version": "2.0.1", 1642 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 1643 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 1644 | "dev": true 1645 | } 1646 | } 1647 | }, 1648 | "util-deprecate": { 1649 | "version": "1.0.2", 1650 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1651 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1652 | "dev": true 1653 | }, 1654 | "vm-browserify": { 1655 | "version": "0.0.4", 1656 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 1657 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 1658 | "dev": true 1659 | }, 1660 | "walk-sync": { 1661 | "version": "0.3.1", 1662 | "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.1.tgz", 1663 | "integrity": "sha1-VYoWrqyMDbWcAotzxm85doTs5GU=", 1664 | "dev": true 1665 | }, 1666 | "watchpack": { 1667 | "version": "0.2.9", 1668 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", 1669 | "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", 1670 | "dev": true, 1671 | "dependencies": { 1672 | "async": { 1673 | "version": "0.9.2", 1674 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 1675 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", 1676 | "dev": true 1677 | } 1678 | } 1679 | }, 1680 | "webpack": { 1681 | "version": "1.15.0", 1682 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", 1683 | "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", 1684 | "dev": true 1685 | }, 1686 | "webpack-core": { 1687 | "version": "0.6.9", 1688 | "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", 1689 | "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", 1690 | "dev": true, 1691 | "dependencies": { 1692 | "source-map": { 1693 | "version": "0.4.4", 1694 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1695 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1696 | "dev": true 1697 | } 1698 | } 1699 | }, 1700 | "which": { 1701 | "version": "1.2.14", 1702 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", 1703 | "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", 1704 | "dev": true 1705 | }, 1706 | "window-size": { 1707 | "version": "0.1.0", 1708 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 1709 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 1710 | "dev": true 1711 | }, 1712 | "wordwrap": { 1713 | "version": "0.0.3", 1714 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1715 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1716 | "dev": true 1717 | }, 1718 | "xtend": { 1719 | "version": "4.0.1", 1720 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 1721 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 1722 | "dev": true 1723 | }, 1724 | "yargs": { 1725 | "version": "3.10.0", 1726 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 1727 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 1728 | "dev": true 1729 | } 1730 | } 1731 | } 1732 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lodash-migrate", 3 | "version": "0.3.16", 4 | "description": "Migrate to the latest Lodash release.", 5 | "keywords": "compatibility, lodash, update", 6 | "repository": "lodash/lodash-migrate", 7 | "license": "MIT", 8 | "main": "index.js", 9 | "author": "John-David Dalton ", 10 | "contributors": [ 11 | "John-David Dalton ", 12 | "Mathias Bynens " 13 | ], 14 | "scripts": { 15 | "build": "npm run build:dev & npm run build:prod", 16 | "build:dev": "webpack index.js dist/lodash-migrate.js --env development", 17 | "build:prod": "webpack index.js dist/lodash-migrate.min.js --env production", 18 | "prepublish": "npm run build", 19 | "test": "node test" 20 | }, 21 | "devDependencies": { 22 | "lodash": "^3.10.1", 23 | "qunit-extras": "^3.0.0", 24 | "qunitjs": "^2.3.3", 25 | "webpack": "^1.14.0" 26 | }, 27 | "files": [ 28 | "dist", 29 | "lib", 30 | "index.js", 31 | "lodash.js" 32 | ], 33 | "greenkeeper": { 34 | "ignore": [ 35 | "lodash" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var _ = require('../lodash'), 4 | config = require('../lib/config'), 5 | mapping = require('../lib/mapping'), 6 | migrate = require('../index'), 7 | old = require('lodash'), 8 | QUnit = require('qunit-extras'), 9 | util = require('../lib/util'); 10 | 11 | var logs = [], 12 | reColor = /\x1b\[\d+m/g; 13 | 14 | /*----------------------------------------------------------------------------*/ 15 | 16 | /** 17 | * Intercepts text written to `stdout`. 18 | * 19 | * @private 20 | * @param {...string} text The test to log. 21 | */ 22 | process.stdout.write = _.wrap(_.bind(process.stdout.write, process.stdout), _.rest(function(func, args) { 23 | if (_.startsWith(args[0], 'lodash-migrate:')) { 24 | logs.push(_.trim(args[0])); 25 | } else { 26 | func.apply(null, args); 27 | } 28 | })); 29 | 30 | /** 31 | * Creates a simulated lodash-migrate log entry. 32 | * 33 | * @private 34 | * @param {string} name The name of the method called. 35 | * @param {Array} args The arguments provided to the method called. 36 | * @param {*} oldResult The result from the older version of lodash. 37 | * @param {*} newResult The result from the newer version of lodash. 38 | * @returns {string} Returns the simulated log entry. 39 | */ 40 | function migrateText(name, args, oldResult, newResult) { 41 | return [ 42 | 'lodash-migrate: _.' + name + '(' + util.truncate( 43 | util.inspect(args) 44 | .match(/^\[\s*([\s\S]*?)\s*\]$/)[1] 45 | .replace(/\n */g, ' ') 46 | ) + ')', 47 | ' v' + old.VERSION + ' => ' + util.truncate(util.inspect(oldResult)), 48 | ' v' + _.VERSION + ' => ' + util.truncate(util.inspect(newResult)) 49 | ].join('\n'); 50 | } 51 | 52 | /** 53 | * Creates a simulated rename log entry. 54 | * 55 | * @private 56 | * @param {string} name The name of the method called. 57 | * @returns {string} Returns the simulated log entry. 58 | */ 59 | function renameText(name) { 60 | var newName = mapping.rename[name] || name; 61 | return [ 62 | 'lodash-migrate: Method renamed', 63 | ' v' + old.VERSION + ' => _.' + name, 64 | ' v' + _.VERSION + ' => _.' + newName 65 | ].join('\n'); 66 | } 67 | 68 | /*----------------------------------------------------------------------------*/ 69 | 70 | QUnit.testStart(function() { 71 | logs.length = 0; 72 | }); 73 | 74 | QUnit.module('lodash-migrate'); 75 | 76 | /*----------------------------------------------------------------------------*/ 77 | 78 | QUnit.module('logging method'); 79 | 80 | (function() { 81 | QUnit.test('should be configurable', function(assert) { 82 | assert.expect(1); 83 | 84 | var objects = [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }], 85 | expected = migrateText('max', [objects, 'a'], objects[2], objects[0]); 86 | 87 | migrate({ 88 | 'log': function(message) { 89 | assert.deepEqual(message, expected); 90 | } 91 | }); 92 | 93 | old.max(objects, 'a'); 94 | migrate(config); 95 | }); 96 | }()); 97 | 98 | /*----------------------------------------------------------------------------*/ 99 | 100 | QUnit.module('iteration method'); 101 | 102 | (function() { 103 | QUnit.test('should not invoke `iteratee` in new lodash', function(assert) { 104 | assert.expect(8); 105 | 106 | var count, 107 | array = [1], 108 | object = { 'a': 1 }, 109 | iteratee = function() { count++; }; 110 | 111 | _.each(['each', 'eachRight', 'forEach', 'forEachRight'], function(methodName) { 112 | count = 0; 113 | old[methodName](array, iteratee); 114 | assert.strictEqual(count, 1, methodName); 115 | }); 116 | 117 | _.each(['forIn', 'forInRight', 'forOwn', 'forOwnRight'], function(methodName) { 118 | count = 0; 119 | old[methodName](object, iteratee); 120 | assert.strictEqual(count, 1, methodName); 121 | }); 122 | }); 123 | }()); 124 | 125 | /*----------------------------------------------------------------------------*/ 126 | 127 | QUnit.module('missing methods'); 128 | 129 | (function() { 130 | QUnit.test('should not error on legacy `_.callback` use', function(assert) { 131 | assert.expect(1); 132 | 133 | old.callback('x'); 134 | assert.deepEqual(logs, []); 135 | }); 136 | 137 | QUnit.test('should not error on legacy `_.contains` use', function(assert) { 138 | assert.expect(1); 139 | 140 | old([1, 2, 3]).contains(2); 141 | assert.deepEqual(logs, [renameText('contains')]); 142 | }); 143 | 144 | QUnit.test('should not error on legacy `_.indexBy` use', function(assert) { 145 | assert.expect(1); 146 | 147 | var object = { 'a': 'x' }; 148 | 149 | old(object).indexBy(_.identity).value(); 150 | assert.deepEqual(logs, [renameText('indexBy')]); 151 | }); 152 | 153 | QUnit.test('should not error on legacy `_#run` use', function(assert) { 154 | assert.expect(1); 155 | 156 | old(1).run(); 157 | assert.deepEqual(logs, [renameText('run')]); 158 | }); 159 | 160 | QUnit.test('should not error on legacy `_.trunc` use', function(assert) { 161 | assert.expect(1); 162 | 163 | var string = 'abcdef', 164 | expected = [renameText('trunc'), migrateText('trunc', [string, 3], '...', 'abcdef')]; 165 | 166 | old(string).trunc(3); 167 | assert.deepEqual(logs, expected); 168 | }); 169 | }()); 170 | 171 | /*----------------------------------------------------------------------------*/ 172 | 173 | QUnit.module('mutator methods'); 174 | 175 | (function() { 176 | QUnit.test('should clone arguments before invoking methods', function(assert) { 177 | assert.expect(1); 178 | 179 | var array = [1, 2, 3]; 180 | 181 | old.remove(array, function(value, index) { 182 | return index == 0; 183 | }); 184 | 185 | assert.deepEqual(array, [2, 3]); 186 | }); 187 | 188 | QUnit.test('should not double up on value mutations', function(assert) { 189 | assert.expect(1); 190 | 191 | var array = [1, 2, 3], 192 | lastIndex = 0; 193 | 194 | old.remove(array, function(value, index) { 195 | if (lastIndex > index) { 196 | return true; 197 | } 198 | lastIndex = index; 199 | }); 200 | 201 | assert.deepEqual(array, [1, 2, 3]); 202 | }); 203 | }()); 204 | 205 | /*----------------------------------------------------------------------------*/ 206 | 207 | QUnit.module('old.defer'); 208 | 209 | (function() { 210 | QUnit.test('should not log', function(assert) { 211 | assert.expect(1); 212 | 213 | old.defer(_.identity); 214 | assert.deepEqual(logs, []); 215 | }); 216 | }()); 217 | 218 | /*----------------------------------------------------------------------------*/ 219 | 220 | QUnit.module('old.delay'); 221 | 222 | (function() { 223 | QUnit.test('should not log', function(assert) { 224 | assert.expect(1); 225 | 226 | old.delay(_.identity, 1); 227 | assert.deepEqual(logs, []); 228 | }); 229 | }()); 230 | 231 | /*----------------------------------------------------------------------------*/ 232 | 233 | QUnit.module('old#join'); 234 | 235 | (function() { 236 | QUnit.test('should not log', function(assert) { 237 | assert.expect(1); 238 | 239 | old([1]).join(); 240 | assert.deepEqual(logs, []); 241 | }); 242 | }()); 243 | 244 | /*----------------------------------------------------------------------------*/ 245 | 246 | QUnit.module('old.mixin'); 247 | 248 | (function() { 249 | QUnit.test('should not log', function(assert) { 250 | assert.expect(1); 251 | 252 | old.mixin(); 253 | assert.deepEqual(logs, []); 254 | }); 255 | }()); 256 | 257 | /*----------------------------------------------------------------------------*/ 258 | 259 | QUnit.module('old.now'); 260 | 261 | (function() { 262 | QUnit.test('should not log', function(assert) { 263 | assert.expect(1); 264 | 265 | old.now(); 266 | assert.deepEqual(logs, []); 267 | }); 268 | }()); 269 | 270 | /*----------------------------------------------------------------------------*/ 271 | 272 | QUnit.module('old.random'); 273 | 274 | (function() { 275 | QUnit.test('should not log', function(assert) { 276 | assert.expect(1); 277 | 278 | old.random(); 279 | assert.deepEqual(logs, []); 280 | }); 281 | }()); 282 | 283 | /*----------------------------------------------------------------------------*/ 284 | 285 | QUnit.module('old.runInContext'); 286 | 287 | (function() { 288 | QUnit.test('should accept a `context` argument', function(assert) { 289 | assert.expect(1); 290 | 291 | var count = 0; 292 | 293 | var now = function() { 294 | count++; 295 | return Date.now(); 296 | }; 297 | 298 | var lodash = old.runInContext({ 299 | 'Date': function() { 300 | return { 'getTime': now }; 301 | } 302 | }); 303 | 304 | lodash.now(); 305 | assert.strictEqual(count, 1); 306 | }); 307 | 308 | QUnit.test('should not log', function(assert) { 309 | assert.expect(1); 310 | 311 | old.runInContext(); 312 | assert.deepEqual(logs, []); 313 | }); 314 | 315 | QUnit.test('should wrap results', function(assert) { 316 | assert.expect(1); 317 | 318 | var lodash = old.runInContext(), 319 | objects = [{ 'b': 1 }, { 'b': 2 }, { 'b': 3 }], 320 | expected = migrateText('max', [objects, 'b'], objects[2], objects[0]); 321 | 322 | lodash.max(objects, 'b'); 323 | assert.strictEqual(_.last(logs), expected); 324 | }); 325 | }()); 326 | 327 | /*----------------------------------------------------------------------------*/ 328 | 329 | QUnit.module('old.sample'); 330 | 331 | (function() { 332 | QUnit.test('should not log', function(assert) { 333 | assert.expect(1); 334 | 335 | old.sample([1, 2, 3]); 336 | assert.deepEqual(logs, []); 337 | }); 338 | 339 | QUnit.test('should work when chaining', function(assert) { 340 | assert.expect(2); 341 | 342 | var array = [1], 343 | wrapped = old(array); 344 | 345 | assert.strictEqual(wrapped.sample(), 1); 346 | assert.deepEqual(wrapped.sample(1).value(), [1]); 347 | }); 348 | }()); 349 | 350 | /*----------------------------------------------------------------------------*/ 351 | 352 | QUnit.module('old.shuffle'); 353 | 354 | (function() { 355 | QUnit.test('should not log', function(assert) { 356 | assert.expect(1); 357 | 358 | old.shuffle([1, 2, 3]); 359 | assert.deepEqual(logs, []); 360 | }); 361 | }()); 362 | 363 | /*----------------------------------------------------------------------------*/ 364 | 365 | QUnit.module('old.times'); 366 | 367 | (function() { 368 | QUnit.test('should only invoke `iteratee` in new lodash when it contains a `return` statement', function(assert) { 369 | assert.expect(2); 370 | 371 | var count= 0; 372 | old.times(1, function() { count++; }); 373 | assert.strictEqual(count, 1); 374 | 375 | count = 0; 376 | old.times(1, function() { count++; return; }); 377 | assert.strictEqual(count, 2); 378 | }); 379 | }()); 380 | 381 | /*----------------------------------------------------------------------------*/ 382 | 383 | QUnit.module('old.uniqueId'); 384 | 385 | (function() { 386 | QUnit.test('should not log', function(assert) { 387 | assert.expect(1); 388 | 389 | old.uniqueId(); 390 | assert.deepEqual(logs, []); 391 | }); 392 | }()); 393 | 394 | /*----------------------------------------------------------------------------*/ 395 | 396 | QUnit.module('old#valueOf'); 397 | 398 | (function() { 399 | QUnit.test('should not log', function(assert) { 400 | assert.expect(1); 401 | 402 | old([1]).valueOf(); 403 | assert.deepEqual(logs, []); 404 | }); 405 | }()); 406 | 407 | /*----------------------------------------------------------------------------*/ 408 | 409 | QUnit.module('logging'); 410 | 411 | (function() { 412 | function Foo(key) { 413 | this[key] = _.noop; 414 | } 415 | Foo.prototype.$ = _.noop; 416 | 417 | QUnit.test('should log when using unsupported static API', function(assert) { 418 | assert.expect(1); 419 | 420 | var objects = [{ 'c': 1 }, { 'c': 2 }, { 'c': 3 }], 421 | expected = [migrateText('max', [objects, 'c'], objects[2], objects[0])]; 422 | 423 | old.max(objects, 'c'); 424 | assert.deepEqual(logs, expected); 425 | }); 426 | 427 | QUnit.test('should log a specific message once', function(assert) { 428 | assert.expect(2); 429 | 430 | var foo = new Foo('a'), 431 | expected = [migrateText('functions', [foo], ['a', '$'], ['a'])]; 432 | 433 | old.functions(foo); 434 | assert.deepEqual(logs, expected); 435 | 436 | old.functions(foo); 437 | assert.deepEqual(logs, expected); 438 | }); 439 | 440 | QUnit.test('should not log when both lodashes produce uncomparable values', function(assert) { 441 | assert.expect(2); 442 | 443 | function Bar(a) { this.a = a; } 444 | var counter = 0; 445 | 446 | old.times(2, function() { 447 | return new Bar(counter++); 448 | }); 449 | 450 | assert.deepEqual(logs, []); 451 | 452 | old.curry(function(a, b, c) { 453 | return [a, b, c]; 454 | }); 455 | 456 | assert.deepEqual(logs, []); 457 | }); 458 | 459 | QUnit.test('should not include ANSI escape codes in logs when in the browser', function(assert) { 460 | assert.expect(2); 461 | 462 | var paths = [ 463 | '../index.js', 464 | '../lib/util.js' 465 | ]; 466 | 467 | function clear(id) { 468 | delete require.cache[require.resolve(id)]; 469 | } 470 | 471 | old.functions(new Foo('b')); 472 | assert.ok(reColor.test(_.last(logs))); 473 | 474 | global.document = {}; 475 | paths.forEach(clear); 476 | require('../index.js'); 477 | 478 | old.functions(new Foo('c')); 479 | assert.ok(!reColor.test(_.last(logs))); 480 | 481 | delete global.document; 482 | paths.forEach(clear); 483 | require('../index.js'); 484 | }); 485 | }()); 486 | 487 | /*----------------------------------------------------------------------------*/ 488 | 489 | QUnit.config.asyncRetries = 10; 490 | QUnit.config.hidepassed = true; 491 | QUnit.config.noglobals = true; 492 | 493 | QUnit.load(); 494 | QUnit.start(); 495 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var _ = require('./lodash'), 4 | webpack = require('webpack'), 5 | env = _.last(process.argv); 6 | 7 | var config = { 8 | 'output': { 9 | 'library': 'migrate', 10 | 'libraryTarget': 'umd' 11 | } 12 | }; 13 | 14 | if (env == 'production') { 15 | config.plugins = [ 16 | new webpack.optimize.OccurrenceOrderPlugin, 17 | new webpack.optimize.UglifyJsPlugin({ 18 | 'compress': { 19 | 'pure_getters': true, 20 | 'unsafe': true, 21 | 'warnings': false 22 | }, 23 | 'output': { 24 | 'ascii_only': true, 25 | 'max_line_len': 500 26 | } 27 | }) 28 | ]; 29 | } 30 | 31 | module.exports = config; 32 | --------------------------------------------------------------------------------