node_modules/wpcom/History.md:224:  * site: fix query args for `statsVideo` and `statsPostViews`
node_modules/wpcom/build/wpcom.js:2:function t(e,n){return(0,i.default)(this,t),this instanceof t?(this._id=e,void(this.wpcom=n)):new t(e,n)}return(0,u.default)(t,[{key:"get",value:function(t,e){return this.wpcom.req.get(a+this._id,t,e)}},{key:"add",value:function(t,e,n){return this.wpcom.req.post(a+"new",t,e,n)}},{key:"update",value:function(t,e,n){return this.wpcom.req.put(a+this._id,t,e,n)}},{key:"delete",value:function(t,e){return this.wpcom.req.del(a+this._id+"/delete",t,e)}}]),t}();e.default=c,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){return this instanceof o?void(this.wpcom=t):new o(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=o;var i=n(80),s=r(i),u=n(79),a=r(u);o.prototype.get=function(t,e){return this.wpcom.req.get("/me/settings",t,e)},o.prototype.update=function(t,e,n){return this.wpcom.req.put("/me/settings/",t,e,n)},o.prototype.profileLinks=function(){return new s.default(this.wpcom)},o.prototype.password=function(){return new a.default(this.wpcom)},t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a="/me/settings/password/",c=function(){function t(e){return(0,i.default)(this,t),this instanceof t?void(this.wpcom=e):new t(e)}return(0,u.default)(t,[{key:"validate",value:function(t,e,n){return this.wpcom.req.post(a+"validate",e,{password:t},n)}}]),t}();e.default=c,t.exports=e.default},function(t,e){"use strict";function n(t){return this instanceof n?void(this.wpcom=t):new n(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n;var r="/me/settings/profile-links";n.prototype.get=function(t,e){return this.wpcom.req.get(r,t,e)},n.prototype.mine=n.prototype.get,n.prototype.add=function(t,e,n){"function"==typeof e&&(n=e,e={}),t instanceof Array||(t=[t]),e.apiVersion="1.2";var o=r+"/new";return this.wpcom.req.post(o,e,{links:t},n)},n.prototype.del=function(t,e,n){var o=r+"/"+t+"/delete";return this.wpcom.req.del(o,e,n)},n.prototype.delete=n.prototype.del,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a=n(82),c=r(a),f="/me/two-step/",l=function(){function t(e){return(0,i.default)(this,t),this instanceof t?void(this.wpcom=e):new t(e)}return(0,u.default)(t,[{key:"get",value:function(t,e){return this.wpcom.req.get(f,t,e)}},{key:"sms",value:function(){return new c.default(this.wpcom)}}]),t}();e.default=l,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a="/me/two-step/sms/",c=function(){function t(e){return(0,i.default)(this,t),this instanceof t?void(this.wpcom=e):new t(e)}return(0,u.default)(t,[{key:"send",value:function(t,e){return this.wpcom.req.post(a+"new",t,e)}}]),t}();e.default=c,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a="/plans",c=function(){function t(e){return(0,i.default)(this,t),this instanceof t?void(this.wpcom=e):new t(e)}return(0,u.default)(t,[{key:"list",value:function(t,e){return this.wpcom.req.get(a,t,e)}},{key:"features",value:function(t,e){return this.wpcom.req.get(a+"/features",t,e)}}]),t}();e.default=c,t.exports=e.default},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=[{name:"categoriesList",subpath:"categories"},{name:"commentsList",subpath:"comments"},{name:"domainsList",subpath:"domains"},{name:"embedsList",subpath:"embeds"},{name:"followsList",subpath:"follows"},{name:"mediaList",subpath:"media"},{name:"pageTemplates",subpath:"page-templates"},{name:"pluginsList",subpath:"plugins"},{name:"postsList",subpath:"posts"},{name:"postTypesList",subpath:"post-types"},{name:"shortcodesList",subpath:"shortcodes"},{name:"stats",subpath:"stats"},{name:"statsClicks",subpath:"stats/clicks"},{name:"statsCommentFollowers",subpath:"stats/comment-followers"},{name:"statsComments",subpath:"stats/comments"},{name:"statsCountryViews",subpath:"stats/country-views"},{name:"statsFollowers",subpath:"stats/followers"},{name:"statsInsights",subpath:"stats/insights"},{name:"statsPublicize",subpath:"stats/publicize"},{name:"statsReferrers",subpath:"stats/referrers"},{name:"statsSearchTerms",subpath:"stats/search-terms"},{name:"statsStreak",subpath:"stats/streak"},{name:"statsSummary",subpath:"stats/summary"},{name:"statsTags",subpath:"stats/tags"},{name:"statsTopAuthors",subpath:"stats/top-authors"},{name:"statsTopPosts",subpath:"stats/top-posts"},{name:"statsVideoPlays",subpath:"stats/video-plays"},{name:"statsVisits",subpath:"stats/visits"},{name:"tagsList",subpath:"tags"},{name:"usersList",subpath:"users"},{name:"wpcomPluginsList",subpath:"wpcom-plugins"}],t.exports=e.default},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=[{name:"likesList",subpath:"likes"},{name:"subscribersList",subpath:"subscribers"}],t.exports=e.default},function(t,e){"use strict";function n(t,e,r){if(!e)throw new Error("`site id` is not correctly defined");return this instanceof n?(this.wpcom=r,this._sid=e,void(this._slug=t)):new n(t,e,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n,n.prototype.slug=function(t){this._slug=t},n.prototype.get=function(t,e){var n="/sites/"+this._sid+"/categories/slug:"+this._slug;return this.wpcom.req.get(n,t,e)},n.prototype.add=function(t,e,n){var r="/sites/"+this._sid+"/categories/new";return this.wpcom.req.post(r,t,e,n)},n.prototype.update=function(t,e,n){var r="/sites/"+this._sid+"/categories/slug:"+this._slug;return this.wpcom.req.put(r,t,e,n)},n.prototype.delete=n.prototype.del=function(t,e){var n="/sites/"+this._sid+"/categories/slug:"+this._slug+"/delete";return this.wpcom.req.del(n,t,e)},t.exports=e.default},function(t,e){"use strict";function n(t,e,r){if(!e)throw new Error("`site id` is not correctly defined");if(!t)throw new Error("`comment id` is not correctly defined");return this instanceof n?(this.wpcom=r,this._cid=t,void(this._sid=e)):new n(t,e,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n,n.prototype.mine=n.prototype.state=function(t,e){var n="/sites/"+this._sid+"/comments/"+this._cid+"/likes/mine";return this.wpcom.req.get(n,t,e)},n.prototype.add=function(t,e){var n="/sites/"+this._sid+"/comments/"+this._cid+"/likes/new";return this.wpcom.req.post(n,t,e)},n.prototype.del=n.prototype.delete=function(t,e){var n="/sites/"+this._sid+"/comments/"+this._cid+"/likes/mine/delete";return this.wpcom.req.del(n,t,e)},t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a=function(){function t(e,n){if((0,i.default)(this,t),!e)throw new Error("`site id` is not correctly defined");return this instanceof t?(this.wpcom=n,this._sid=e,void(this.path="/sites/"+this._sid+"/vouchers")):new t(e,n)}return(0,u.default)(t,[{key:"list",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];return t.apiNamespace="wpcom/v2",this.wpcom.req.get(this.path,t,e)}},{key:"get",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];return e.apiNamespace="wpcom/v2",this.wpcom.req.get(this.path+"/"+t,e,n)}},{key:"assign",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];return e.apiNamespace="wpcom/v2",this.wpcom.req.post(this.path+"/"+t+"/assign",e,{},n)}}]),t}();e.default=a,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a="/sites",c=function(){function t(e,n){return(0,i.default)(this,t),this instanceof t?(this._sid=e,this.path=a+"/"+this._sid+"/domains",void(this.wpcom=n)):new t(e,n)}return(0,u.default)(t,[{key:"getPrimary",value:function(t,e){return this.wpcom.req.get(this.path+"/primary",t,e)}},{key:"setPrimary",value:function(t,e){return this.wpcom.req.put(this.path+"/primary",{},{domain:t},e)}},{key:"getRedirect",value:function(t,e){return this.wpcom.req.get(this.path+"/redirect",t,e)}},{key:"setRedirect",value:function(t,e){return"string"==typeof t&&(t={location:t}),this.wpcom.req.put(this.path+"/redirect",{},t,e)}}]),t}();e.default=c,t.exports=e.default},function(t,e){"use strict";function n(t,e){if(!t)throw new Error("`site id` is not correctly defined");return this instanceof n?(this.wpcom=e,void(this._sid=t)):new n(t,e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n,n.prototype.mine=n.prototype.state=function(t,e){var n="/sites/"+this._sid+"/follows/mine";return this.wpcom.req.get(n,t,e)},n.prototype.follow=n.prototype.add=function(t,e){var n="/sites/"+this._sid+"/follows/new";return this.wpcom.req.put(n,t,null,e)},n.prototype.unfollow=n.prototype.del=function(t,e){var n="/sites/"+this._sid+"/follows/mine/delete";return this.wpcom.req.del(n,t,null,e)},t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),i=r(o),s=n(2),u=r(s),a=n(86),c=r(a),f=n(39),l=r(f),p=n(90),d=r(p),h=n(92),y=r(h),m=n(95),v=r(m),w=n(100),_=r(w),g=n(94),b=r(g),x=n(89),k=r(x),C=n(93),O=r(C),P=n(99),q=r(P),j=n(101),M=r(j),E=n(88),T=r(E),F=n(104),S=r(F),A=n(107),L=r(A),R=n(84),N=r(R),I=n(40),D=r(I),U=n(13),H=r(U),V=(0,H.default)("wpcom:site"),z="/sites",B=function(){function t(e,n){return(0,i.default)(this,t),this instanceof t?(this.wpcom=n,V("set %o site id",e),this._id=encodeURIComponent(e),void(this.path=z+"/"+this._id)):new t(e,n)}return(0,u.default)(t,[{key:"get",value:function(t,e){return this.wpcom.req.get(this.path,t,e)}},{key:"post",value:function(t){return new v.default(t,this._id,this.wpcom)}},{key:"addPost",value:function(t,e){var n=new v.default(null,this._id,this.wpcom);return n.add(t,e)}},{key:"deletePost",value:function(t,e){var n=new v.default(t,this._id,this.wpcom);return n.delete(e)}},{key:"media",value:function(t){return new y.default(t,this._id,this.wpcom)}},{key:"addMediaFiles",value:function(t,e,n){var r=new y.default(null,this._id,this.wpcom);return r.addFiles(t,e,n)}},{key:"addMediaUrls",value:function(t,e,n){var r=new y.default(null,this._id,this.wpcom);return r.addUrls(t,e,n)}},{key:"deleteMedia",value:function(t,e){var n=new y.default(t,this._id,this.wpcom);return n.del(e)}},{key:"comment",value:function(t){return new l.default(t,null,this._id,this.wpcom)}},{key:"follow",value:function(){return new d.default(this._id,this.wpcom)}},{key:"plugin",value:function(t){return new O.default(t,this._id,this.wpcom)}},{key:"wpcomPlugin",value:function(t){return new L.default(t,this._id,this.wpcom)}},{key:"category",value:function(t){return new c.default(t,this._id,this.wpcom)}},{key:"tag",value:function(t){return new _.default(t,this._id,this.wpcom)}},{key:"taxonomy",value:function(t){return new M.default(t,this._id,this.wpcom)}},{key:"creditVouchers",value:function(){return new T.default(this._id,this.wpcom)}},{key:"postType",value:function(t){return new b.default(t,this._id,this.wpcom)}},{key:"settings",value:function(){return new q.default(this._id,this.wpcom)}},{key:"domain",value:function(){return new k.default(this._id,this.wpcom)}},{key:"postCounts",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"post",e=arguments[1],n=arguments[2];return"function"==typeof e&&(n=e,e={}),this.wpcom.req.get(this.path+"/post-counts/"+t,e,n)}},{key:"renderShortcode",value:function(t,e,n){if("string"!=typeof t)throw new TypeError("expected a url String");return"function"==typeof e&&(n=e,e={}),e=e||{},e.shortcode=t,this.wpcom.req.get(this.path+"/shortcodes/render",e,n)}},{key:"renderEmbed",value:function(t,e,n){if("string"!=typeof t)throw new TypeError("expected an embed String");return"function"==typeof e&&(n=e,e={}),e=e||{},e.embed_url=t,this.wpcom.req.get(this.path+"/embeds/render",e,n)}},{key:"statsReferrersSpamNew",value:function(t,e){var n=this.path+"/stats/referrers/spam/new";return this.wpcom.req.post(n,{domain:t},null,e)}},{key:"statsReferrersSpamDelete",value:function(t,e){var n=this.path+"/stats/referrers/spam/delete";return this.wpcom.req.post(n,{domain:t},null,e)}},{key:"statsVideo",value:function(t,e,n){var r=this.path+"/stats/video/"+t;return"function"==typeof e&&(n=e,e={}),this.wpcom.req.get(r,e,n)}},{key:"statsPostViews",value:function(t,e,n){var r=this.path+"/stats/post/"+t;return"function"==typeof e&&(n=e,e={}),this.wpcom.req.get(r,e,n)}},{key:"wordAds",value:function(){return new S.default(this._id,this.wpcom)}}]),t}();(0,D.default)(B,N.default,function(t,e){return"/sites/"+e._id+"/"+t.subpath}),e.default=B,t.exports=e.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e=[],n=Array.isArray(t);t=n?t:[t];var r=void 0,o=void 0,i=void 0,s=void 0;for(r=0;r<t.length;r++){o=t[r],"string"==typeof o&&(o=(0,a.createReadStream)(o));var u=!!o._readableState,f="undefined"!=typeof File&&o instanceof File;if(c("isStream: %s",u),c("isFile: %s",f),!f&&!u){for(i in o)c("add %o => %o",i,o[i]),"file"!==i&&(s="attrs["+r+"]["+i+"]",e.push([s,o[i]]));o=o.file,"string"==typeof o&&(o=(0,a.createReadStream)(o))}e.push(["media[]",o])}return e}function i(t,e,n){return this instanceof i?(this.wpcom=n,this._sid=e,this._id=t,void(this._id||c("WARN: media `id` is not defined"))):new i(t,e,n)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=i;var s=n(13),u=r(s),a=n(109),c=(0,u.default)("wpcom:media");i.prototype.get=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];t.apiVersion=t.apiVersion||"1.2";var n="/sites/"+this._sid+"/media/"+this._id;return this.wpcom.req.get(n,t,e)},i.prototype.update=function(t,e,n){var r={path:"/sites/"+this._sid+"/media/"+this._id};return this.wpcom.req.put(r,t,e,n)},i.prototype.edit=function(t,e,n){"function"!=typeof e&&e||(n=e,e=t,t={});var r={path:"/sites/"+this._sid+"/media/"+this._id+"/edit"};if(e&&e.media){r.formData=[["media",e.media]],delete e.media;for(var o in e)r.formData.push(["attrs["+o+"]",e[o]]);e=null}return this.wpcom.req.put(r,t,e,n)},i.prototype.addFiles=function(t,e,n){void 0===n&&(void 0===e?(e=t,t={}):"function"==typeof e&&(n=e,e=t,t={}));var r={path:"/sites/"+this._sid+"/media/new",formData:o(e)};return this.wpcom.req.post(r,t,null,n)},i.prototype.addUrls=function(t,e,n){void 0===n&&(void 0===e?(e=t,t={}):"function"==typeof e&&(n=e,e=t,t={}));var r="/sites/"+this._sid+"/media/new",o={me<response clipped><NOTE>Due to the max output limit, only part of the full response has been shown to you.</NOTE>equest(options, fn) {\n\tif ('string' === typeof options) {\n\t\toptions = { path: options };\n\t}\n\n\tvar settings = (0, _assign2.default)({}, defaults, options);\n\n\t// is REST-API api?\n\tsettings.isRestAPI = options.apiNamespace === undefined;\n\n\t// normalize request-method name\n\tsettings.method = settings.method.toLowerCase();\n\n\tvar apiNamespace = settings.apiNamespace,\n\t    apiVersion = settings.apiVersion,\n\t    authToken = settings.authToken,\n\t    body = settings.body,\n\t    formData = settings.formData,\n\t    headers = settings.headers,\n\t    isRestAPI = settings.isRestAPI,\n\t    method = settings.method,\n\t    query = settings.query,\n\t    proxyOrigin = settings.proxyOrigin;\n\n\t// request base path\n\n\tvar basePath = void 0;\n\n\tif (isRestAPI) {\n\t\tbasePath = '/rest/v' + apiVersion;\n\t} else if (apiNamespace && /\\//.test(apiNamespace)) {\n\t\tbasePath = '/' + apiNamespace; // wpcom/v2\n\t} else {\n\t\tbasePath = '/wp-json'; // /wp-json/sites/%s/wpcom/v2 (deprecated)\n\t}\n\n\t// Envelope mode FALSE as default\n\tsettings.isEnvelopeMode = false;\n\n\tsettings.url = proxyOrigin + basePath + settings.path;\n\tdebug('API URL: %o', settings.url);\n\n\t// create HTTP Request instance\n\tvar req = _superagent2.default[method](settings.url);\n\n\t// querystring\n\tif (query) {\n\t\treq.query(query);\n\t\tdebug('API send URL querystring: %o', query);\n\n\t\tsettings.isEnvelopeMode = isRestAPI ? query.http_envelope : query._envelope;\n\t\tdebug('envelope mode: %o', settings.isEnvelopeMode);\n\t}\n\n\t// body\n\tif (body && formData) {\n\t\tdebug('API ignoring body because formData is set. They cannot both be used together.');\n\t}\n\tif (body && !formData) {\n\t\treq.send(body);\n\t\tdebug('API send POST body: %o', body);\n\t}\n\n\t// POST FormData (for `multipart/form-data`, usually a file upload)\n\tif (formData) {\n\t\tfor (var i = 0; i < formData.length; i++) {\n\t\t\tvar data = formData[i];\n\t\t\tvar key = data[0];\n\t\t\tvar value = data[1];\n\t\t\tdebug('adding FormData field %o: %o', key, value);\n\n\t\t\tif (isFile(value)) {\n\t\t\t\treq.attach(key, new File([value.fileContents], value.fileName));\n\t\t\t} else {\n\t\t\t\treq.field(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\t// headers\n\tif (headers) {\n\t\treq.set(headers);\n\t\tdebug('adding HTTP headers: %o', headers);\n\t}\n\n\tif (authToken) {\n\t\treq.set('Authorization', 'Bearer ' + authToken);\n\t}\n\n\tif (!req.get('Accept')) {\n\t\t// set a default \"Accept\" header preferring a JSON response\n\t\treq.set('Accept', '*/json,*/*');\n\t}\n\n\tsendResponse(req, settings, fn);\n\n\treturn req.xhr;\n}\nmodule.exports = exports['default'];\n\n//# sourceMappingURL=index.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/wpcom-xhr-request/build/index.js\n// module id = 166\n// module chunks = 0","\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  'lightseagreen',\n  'forestgreen',\n  'goldenrod',\n  'dodgerblue',\n  'darkorchid',\n  'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  return ('WebkitAppearance' in document.documentElement.style) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (window.console && (console.firebug || (console.exception && console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  return JSON.stringify(v);\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs() {\n  var args = arguments;\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return args;\n\n  var c = 'color: ' + this.color;\n  args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n  return args;\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage(){\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/wpcom-xhr-request/~/debug/browser.js\n// module id = 167\n// module chunks = 0","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lowercased letter, i.e. \"n\".\n */\n\nexports.formatters = {};\n\n/**\n * Previously assigned color.\n */\n\nvar prevColor = 0;\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n *\n * @return {Number}\n * @api private\n */\n\nfunction selectColor() {\n  return exports.colors[prevColor++ % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction debug(namespace) {\n\n  // define the `disabled` version\n  function disabled() {\n  }\n  disabled.enabled = false;\n\n  // define the `enabled` version\n  function enabled() {\n\n    var self = enabled;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // add the `color` if not set\n    if (null == self.useColors) self.useColors = exports.useColors();\n    if (null == self.color && self.useColors) self.color = selectColor();\n\n    var args = Array.prototype.slice.call(arguments);\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %o\n      args = ['%o'].concat(args);\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    if ('function' === typeof exports.formatArgs) {\n      args = exports.formatArgs.apply(self, args);\n    }\n    var logFn = enabled.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n  enabled.enabled = true;\n\n  var fn = exports.enabled(namespace) ? enabled : disabled;\n\n  fn.namespace = namespace;\n\n  return fn;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  var split = (namespaces || '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (var i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/wpcom-xhr-request/~/debug/debug.js\n// module id = 168\n// module chunks = 0","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} options\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options){\n  options = options || {};\n  if ('string' == typeof val) return parse(val);\n  return options.long\n    ? long(val)\n    : short(val);\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = '' + str;\n  if (str.length > 10000) return;\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n  if (!match) return;\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction short(ms) {\n  if (ms >= d) return Math.round(ms / d) + 'd';\n  if (ms >= h) return Math.round(ms / h) + 'h';\n  if (ms >= m) return Math.round(ms / m) + 'm';\n  if (ms >= s) return Math.round(ms / s) + 's';\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction long(ms) {\n  return plural(ms, d, 'day')\n    || plural(ms, h, 'hour')\n    || plural(ms, m, 'minute')\n    || plural(ms, s, 'second')\n    || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) return;\n  if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/wpcom-xhr-request/~/ms/index.js\n// module id = 169\n// module chunks = 0"],"sourceRoot":""}

--- test scripts ---
pretest: npm run -s install-if-deps-outdated
pretest-client: npm run -s pretest
pretest-integration: npm run -s pretest
pretest-server: npm run -s pretest
test: run-s -s test-client test-server
test-client: jest -c=test/client/jest.config.json
test-client:ci: cross-env-shell TEST_REPORT_FILENAME=./test-results-client.xml jest -c=test/client/jest.config.ci.js -w=2 --coverage
test-client:watch: npm run -s test-client -- --watch
test-integration: jest -c=test/integration/jest.config.json
test-integration:ci: cross-env-shell TEST_REPORT_FILENAME=./test-results-integration.xml jest -c=test/integration/jest.config.ci.js -w=2
test-integration:watch: npm run -s test-integration -- --watch
test-server: jest -c=test/server/jest.config.json
test-server:ci: cross-env-shell TEST_REPORT_FILENAME=./test-results-server.xml jest -c=test/server/jest.config.ci.js -w=2
test-server:coverage: npm run -s test-server -- --coverage
test-server:watch: npm run -s test-server -- --watch
[The command completed with exit code 0.]
[Current working directory: /workspace/wp-calypso]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 0]