diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 00000000..830acafa
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,20 @@
+version: 2
+jobs:
+ build:
+ docker:
+ - image: node:7.9.0
+ working_directory: ~/vue-resource
+ steps:
+ - run:
+ name: Update Environment
+ command: apt-get update && apt-get -y install unzip
+ - checkout
+ - run:
+ name: Install Dependencies
+ command: yarn
+ - run:
+ name: Run Tests
+ command: yarn test
+ - run:
+ name: Build Release
+ command: yarn run build
\ No newline at end of file
diff --git a/README.md b/README.md
index fb48df50..c79684c6 100644
--- a/README.md
+++ b/README.md
@@ -7,24 +7,20 @@ The plugin for [Vue.js](http://vuejs.org) provides services for making web reque
- Supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API and [URI Templates](https://medialize.github.io/URI.js/uri-template.html)
- Supports [interceptors](docs/http.md#interceptors) for request and response
- Supports latest Firefox, Chrome, Safari, Opera and IE9+
+- Supports Vue 1.0 & Vue 2.0
- Compact size 14KB (5.3KB gzipped)
## Installation
-
-### NPM
+You can install it via [yarn](https://yarnpkg.com/) or [NPM](http://npmjs.org/).
```
+$ yarn add vue-resource
$ npm install vue-resource
```
-### Bower
-```
-$ bower install vue-resource
-```
-
### CDN
-Available on [jsdelivr](https://cdn.jsdelivr.net/vue.resource/1.3.1/vue-resource.min.js), [cdnjs](https://cdnjs.com/libraries/vue-resource) or [unpkg](https://unpkg.com/vue-resource@1.3.1/dist/vue-resource.min.js).
+Available on [jsdelivr](https://cdn.jsdelivr.net/vue.resource/1.3.2/vue-resource.min.js), [cdnjs](https://cdnjs.com/libraries/vue-resource) or [unpkg](https://unpkg.com/vue-resource@1.3.2/dist/vue-resource.min.js).
```html
-
+
```
## Example
@@ -52,11 +48,11 @@ Available on [jsdelivr](https://cdn.jsdelivr.net/vue.resource/1.3.1/vue-resource
## Changelog
-Details changes for each release are documented in the [release notes](https://github.com/vuejs/vue-resource/releases).
+Details changes for each release are documented in the [release notes](https://github.com/pagekit/vue-resource/releases).
## Contribution
-If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/vuejs/vue-resource/issues) or a [pull request](https://github.com/vuejs/vue-resource/pulls).
+If you find a bug or want to contribute to the code or documentation, you can help by submitting an [issue](https://github.com/pagekit/vue-resource/issues) or a [pull request](https://github.com/pagekit/vue-resource/pulls).
## License
diff --git a/bower.json b/bower.json
index 12f5c333..855f841d 100644
--- a/bower.json
+++ b/bower.json
@@ -1,7 +1,7 @@
{
"name": "vue-resource",
"main": "dist/vue-resource.js",
- "version": "1.3.1",
+ "version": "1.3.2",
"description": "The HTTP client for Vue.js",
"homepage": "https://github.com/pagekit/vue-resource",
"license": "MIT",
diff --git a/dist/vue-resource.common.js b/dist/vue-resource.common.js
index 4b2a1f77..17ca8122 100644
--- a/dist/vue-resource.common.js
+++ b/dist/vue-resource.common.js
@@ -1,5 +1,5 @@
/*!
- * vue-resource v1.3.1
+ * vue-resource v1.3.2
* https://github.com/pagekit/vue-resource
* Released under the MIT License.
*/
@@ -300,6 +300,19 @@ function trim(str) {
return str ? str.replace(/^\s*|\s*$/g, '') : '';
}
+function trimEnd(str, chars) {
+
+ if (str && chars === undefined) {
+ return str.replace(/\s+$/, '');
+ }
+
+ if (!str || !chars) {
+ return str;
+ }
+
+ return str.replace(new RegExp(("[" + chars + "]+$")), '');
+}
+
function toLower(str) {
return str ? str.toLowerCase() : '';
}
@@ -442,8 +455,8 @@ var root = function (options$$1, next) {
var url = next(options$$1);
- if (isString(options$$1.root) && !url.match(/^(https?:)?\//)) {
- url = options$$1.root + '/' + url;
+ if (isString(options$$1.root) && !/^(https?:)?\//.test(url)) {
+ url = trimEnd(options$$1.root, '/') + '/' + url;
}
return url;
@@ -836,42 +849,41 @@ var cors = function (request, next) {
};
/**
- * Body Interceptor.
+ * Form data Interceptor.
*/
-var body = function (request, next) {
+var form = function (request, next) {
if (isFormData(request.body)) {
request.headers.delete('Content-Type');
- } else if (isObject(request.body) || isArray(request.body)) {
+ } else if (isObject(request.body) && request.emulateJSON) {
- if (request.emulateJSON) {
- request.body = Url.params(request.body);
- request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
- } else {
- request.body = JSON.stringify(request.body);
- }
+ request.body = Url.params(request.body);
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
}
- next(function (response) {
+ next();
+};
+
+/**
+ * JSON Interceptor.
+ */
- Object.defineProperty(response, 'data', {
+var json = function (request, next) {
- get: function get() {
- return this.body;
- },
+ var type = request.headers.get('Content-Type') || '';
- set: function set(body) {
- this.body = body;
- }
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
+ request.body = JSON.stringify(request.body);
+ }
- });
+ next(function (response) {
return response.bodyText ? when(response.text(), function (text) {
- var type = response.headers.get('Content-Type') || '';
+ type = response.headers.get('Content-Type') || '';
if (type.indexOf('application/json') === 0 || isJson(text)) {
@@ -1299,6 +1311,18 @@ Response.prototype.json = function json () {
return when(this.text(), function (text) { return JSON.parse(text); });
};
+Object.defineProperty(Response.prototype, 'data', {
+
+ get: function get() {
+ return this.body;
+ },
+
+ set: function set(body) {
+ this.body = body;
+ }
+
+});
+
function blobText(body) {
return new PromiseObj(function (resolve) {
@@ -1396,8 +1420,8 @@ Http.headers = {
custom: {}
};
-Http.interceptor = {before: before, method: method, body: body, jsonp: jsonp, header: header, cors: cors};
-Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
+Http.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};
+Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {
@@ -1409,8 +1433,8 @@ Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
['post', 'put', 'patch'].forEach(function (method$$1) {
- Http[method$$1] = function (url, body$$1, options$$1) {
- return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body$$1}));
+ Http[method$$1] = function (url, body, options$$1) {
+ return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));
};
});
diff --git a/dist/vue-resource.es2015.js b/dist/vue-resource.es2015.js
index 14a99bf1..2eb47937 100644
--- a/dist/vue-resource.es2015.js
+++ b/dist/vue-resource.es2015.js
@@ -1,5 +1,5 @@
/*!
- * vue-resource v1.3.1
+ * vue-resource v1.3.2
* https://github.com/pagekit/vue-resource
* Released under the MIT License.
*/
@@ -298,6 +298,19 @@ function trim(str) {
return str ? str.replace(/^\s*|\s*$/g, '') : '';
}
+function trimEnd(str, chars) {
+
+ if (str && chars === undefined) {
+ return str.replace(/\s+$/, '');
+ }
+
+ if (!str || !chars) {
+ return str;
+ }
+
+ return str.replace(new RegExp(("[" + chars + "]+$")), '');
+}
+
function toLower(str) {
return str ? str.toLowerCase() : '';
}
@@ -440,8 +453,8 @@ var root = function (options$$1, next) {
var url = next(options$$1);
- if (isString(options$$1.root) && !url.match(/^(https?:)?\//)) {
- url = options$$1.root + '/' + url;
+ if (isString(options$$1.root) && !/^(https?:)?\//.test(url)) {
+ url = trimEnd(options$$1.root, '/') + '/' + url;
}
return url;
@@ -834,42 +847,41 @@ var cors = function (request, next) {
};
/**
- * Body Interceptor.
+ * Form data Interceptor.
*/
-var body = function (request, next) {
+var form = function (request, next) {
if (isFormData(request.body)) {
request.headers.delete('Content-Type');
- } else if (isObject(request.body) || isArray(request.body)) {
+ } else if (isObject(request.body) && request.emulateJSON) {
- if (request.emulateJSON) {
- request.body = Url.params(request.body);
- request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
- } else {
- request.body = JSON.stringify(request.body);
- }
+ request.body = Url.params(request.body);
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
}
- next(function (response) {
+ next();
+};
+
+/**
+ * JSON Interceptor.
+ */
- Object.defineProperty(response, 'data', {
+var json = function (request, next) {
- get: function get() {
- return this.body;
- },
+ var type = request.headers.get('Content-Type') || '';
- set: function set(body) {
- this.body = body;
- }
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
+ request.body = JSON.stringify(request.body);
+ }
- });
+ next(function (response) {
return response.bodyText ? when(response.text(), function (text) {
- var type = response.headers.get('Content-Type') || '';
+ type = response.headers.get('Content-Type') || '';
if (type.indexOf('application/json') === 0 || isJson(text)) {
@@ -1297,6 +1309,18 @@ Response.prototype.json = function json () {
return when(this.text(), function (text) { return JSON.parse(text); });
};
+Object.defineProperty(Response.prototype, 'data', {
+
+ get: function get() {
+ return this.body;
+ },
+
+ set: function set(body) {
+ this.body = body;
+ }
+
+});
+
function blobText(body) {
return new PromiseObj(function (resolve) {
@@ -1394,8 +1418,8 @@ Http.headers = {
custom: {}
};
-Http.interceptor = {before: before, method: method, body: body, jsonp: jsonp, header: header, cors: cors};
-Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
+Http.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};
+Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {
@@ -1407,8 +1431,8 @@ Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
['post', 'put', 'patch'].forEach(function (method$$1) {
- Http[method$$1] = function (url, body$$1, options$$1) {
- return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body$$1}));
+ Http[method$$1] = function (url, body, options$$1) {
+ return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));
};
});
diff --git a/dist/vue-resource.js b/dist/vue-resource.js
index 9c5152af..3706dc9e 100644
--- a/dist/vue-resource.js
+++ b/dist/vue-resource.js
@@ -1,5 +1,5 @@
/*!
- * vue-resource v1.3.1
+ * vue-resource v1.3.2
* https://github.com/pagekit/vue-resource
* Released under the MIT License.
*/
@@ -304,6 +304,19 @@ function trim(str) {
return str ? str.replace(/^\s*|\s*$/g, '') : '';
}
+function trimEnd(str, chars) {
+
+ if (str && chars === undefined) {
+ return str.replace(/\s+$/, '');
+ }
+
+ if (!str || !chars) {
+ return str;
+ }
+
+ return str.replace(new RegExp(("[" + chars + "]+$")), '');
+}
+
function toLower(str) {
return str ? str.toLowerCase() : '';
}
@@ -446,8 +459,8 @@ var root = function (options$$1, next) {
var url = next(options$$1);
- if (isString(options$$1.root) && !url.match(/^(https?:)?\//)) {
- url = options$$1.root + '/' + url;
+ if (isString(options$$1.root) && !/^(https?:)?\//.test(url)) {
+ url = trimEnd(options$$1.root, '/') + '/' + url;
}
return url;
@@ -840,42 +853,41 @@ var cors = function (request, next) {
};
/**
- * Body Interceptor.
+ * Form data Interceptor.
*/
-var body = function (request, next) {
+var form = function (request, next) {
if (isFormData(request.body)) {
request.headers.delete('Content-Type');
- } else if (isObject(request.body) || isArray(request.body)) {
+ } else if (isObject(request.body) && request.emulateJSON) {
- if (request.emulateJSON) {
- request.body = Url.params(request.body);
- request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
- } else {
- request.body = JSON.stringify(request.body);
- }
+ request.body = Url.params(request.body);
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
}
- next(function (response) {
+ next();
+};
+
+/**
+ * JSON Interceptor.
+ */
- Object.defineProperty(response, 'data', {
+var json = function (request, next) {
- get: function get() {
- return this.body;
- },
+ var type = request.headers.get('Content-Type') || '';
- set: function set(body) {
- this.body = body;
- }
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
+ request.body = JSON.stringify(request.body);
+ }
- });
+ next(function (response) {
return response.bodyText ? when(response.text(), function (text) {
- var type = response.headers.get('Content-Type') || '';
+ type = response.headers.get('Content-Type') || '';
if (type.indexOf('application/json') === 0 || isJson(text)) {
@@ -1303,6 +1315,18 @@ Response.prototype.json = function json () {
return when(this.text(), function (text) { return JSON.parse(text); });
};
+Object.defineProperty(Response.prototype, 'data', {
+
+ get: function get() {
+ return this.body;
+ },
+
+ set: function set(body) {
+ this.body = body;
+ }
+
+});
+
function blobText(body) {
return new PromiseObj(function (resolve) {
@@ -1400,8 +1424,8 @@ Http.headers = {
custom: {}
};
-Http.interceptor = {before: before, method: method, body: body, jsonp: jsonp, header: header, cors: cors};
-Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
+Http.interceptor = {before: before, method: method, jsonp: jsonp, json: json, form: form, header: header, cors: cors};
+Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {
@@ -1413,8 +1437,8 @@ Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
['post', 'put', 'patch'].forEach(function (method$$1) {
- Http[method$$1] = function (url, body$$1, options$$1) {
- return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body$$1}));
+ Http[method$$1] = function (url, body, options$$1) {
+ return this(assign(options$$1 || {}, {url: url, method: method$$1, body: body}));
};
});
diff --git a/dist/vue-resource.min.js b/dist/vue-resource.min.js
index 95150164..6d4051cd 100644
--- a/dist/vue-resource.min.js
+++ b/dist/vue-resource.min.js
@@ -1,7 +1,7 @@
/*!
- * vue-resource v1.3.1
+ * vue-resource v1.3.2
* https://github.com/pagekit/vue-resource
* Released under the MIT License.
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueResource=e()}(this,function(){"use strict";function t(t){this.state=D,this.value=void 0,this.deferred=[];var e=this;try{t(function(t){e.resolve(t)},function(t){e.reject(t)})}catch(t){e.reject(t)}}function e(t,e){t instanceof Promise?this.promise=t:this.promise=new Promise(t.bind(e)),this.context=e}function n(t){"undefined"!=typeof console&&z&&console.warn("[VueResource warn]: "+t)}function o(t){"undefined"!=typeof console&&console.error(t)}function r(t,e){return X(t,e)}function i(t){return t?t.replace(/^\s*|\s*$/g,""):""}function u(t){return t?t.toLowerCase():""}function s(t){return t?t.toUpperCase():""}function a(t){return"string"==typeof t}function c(t){return"function"==typeof t}function f(t){return null!==t&&"object"==typeof t}function p(t){return f(t)&&Object.getPrototypeOf(t)==Object.prototype}function h(t){return"undefined"!=typeof Blob&&t instanceof Blob}function d(t){return"undefined"!=typeof FormData&&t instanceof FormData}function l(t,n,o){var r=e.resolve(t);return arguments.length<2?r:r.then(n,o)}function m(t,e,n){return n=n||{},c(n)&&(n=n.call(e)),v(t.bind({$vm:e,$options:n}),t,{$options:n})}function y(t,e){var n,o;if(Y(t))for(n=0;n=200&&r<300,this.status=r||0,this.statusText=i||"",this.headers=new mt(o),this.body=t,a(t)?this.bodyText=t:h(t)&&(this.bodyBlob=t,H(t)&&(this.bodyText=q(t)))};yt.prototype.blob=function(){return l(this.bodyBlob)},yt.prototype.text=function(){return l(this.bodyText)},yt.prototype.json=function(){return l(this.text(),function(t){return JSON.parse(t)})};var vt=function(t){this.body=null,this.params={},Z(this,t,{method:s(t.method||"GET")}),this.headers instanceof mt||(this.headers=new mt(this.headers))};vt.prototype.getUrl=function(){return $(this)},vt.prototype.getBody=function(){return this.body},vt.prototype.respondWith=function(t,e){return new yt(t,Z(e||{},{url:this.getUrl()}))};var bt={Accept:"application/json, text/plain, */*"},gt={"Content-Type":"application/json;charset=utf-8"};return L.options={},L.headers={put:gt,post:gt,patch:gt,delete:gt,common:bt,custom:{}},L.interceptor={before:ct,method:ft,body:ut,jsonp:at,header:pt,cors:it},L.interceptors=["before","method","body","jsonp","header","cors"],["get","delete","head","jsonp"].forEach(function(t){L[t]=function(e,n){return this(Z(n||{},{url:e,method:t}))}}),["post","put","patch"].forEach(function(t){L[t]=function(e,n,o){return this(Z(o||{},{url:e,method:t,body:n}))}}),B.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(N),N});
\ No newline at end of file
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueResource=e()}(this,function(){"use strict";function t(t){this.state=J,this.value=void 0,this.deferred=[];var e=this;try{t(function(t){e.resolve(t)},function(t){e.reject(t)})}catch(t){e.reject(t)}}function e(t,e){t instanceof Promise?this.promise=t:this.promise=new Promise(t.bind(e)),this.context=e}function n(t){"undefined"!=typeof console&&K&&console.warn("[VueResource warn]: "+t)}function o(t){"undefined"!=typeof console&&console.error(t)}function r(t,e){return F(t,e)}function i(t){return t?t.replace(/^\s*|\s*$/g,""):""}function u(t,e){return t&&void 0===e?t.replace(/\s+$/,""):t&&e?t.replace(new RegExp("["+e+"]+$"),""):t}function s(t){return t?t.toLowerCase():""}function a(t){return t?t.toUpperCase():""}function c(t){return"string"==typeof t}function f(t){return"function"==typeof t}function p(t){return null!==t&&"object"==typeof t}function h(t){return p(t)&&Object.getPrototypeOf(t)==Object.prototype}function d(t){return"undefined"!=typeof Blob&&t instanceof Blob}function l(t){return"undefined"!=typeof FormData&&t instanceof FormData}function m(t,n,o){var r=e.resolve(t);return arguments.length<2?r:r.then(n,o)}function y(t,e,n){return n=n||{},f(n)&&(n=n.call(e)),b(t.bind({$vm:e,$options:n}),t,{$options:n})}function v(t,e){var n,o;if(Z(t))for(n=0;n=200&&r<300,this.status=r||0,this.statusText=i||"",this.headers=new vt(o),this.body=t,c(t)?this.bodyText=t:d(t)&&(this.bodyBlob=t,L(t)&&(this.bodyText=H(t)))};bt.prototype.blob=function(){return m(this.bodyBlob)},bt.prototype.text=function(){return m(this.bodyText)},bt.prototype.json=function(){return m(this.text(),function(t){return JSON.parse(t)})},Object.defineProperty(bt.prototype,"data",{get:function(){return this.body},set:function(t){this.body=t}});var gt=function(t){this.body=null,this.params={},tt(this,t,{method:a(t.method||"GET")}),this.headers instanceof vt||(this.headers=new vt(this.headers))};gt.prototype.getUrl=function(){return U(this)},gt.prototype.getBody=function(){return this.body},gt.prototype.respondWith=function(t,e){return new bt(t,tt(e||{},{url:this.getUrl()}))};var wt={Accept:"application/json, text/plain, */*"},Tt={"Content-Type":"application/json;charset=utf-8"};return B.options={},B.headers={put:Tt,post:Tt,patch:Tt,delete:Tt,common:wt,custom:{}},B.interceptor={before:pt,method:ht,jsonp:ft,json:at,form:st,header:dt,cors:ut},B.interceptors=["before","method","jsonp","json","form","header","cors"],["get","delete","head","jsonp"].forEach(function(t){B[t]=function(e,n){return this(tt(n||{},{url:e,method:t}))}}),["post","put","patch"].forEach(function(t){B[t]=function(e,n,o){return this(tt(o||{},{url:e,method:t,body:n}))}}),M.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(D),D});
\ No newline at end of file
diff --git a/docs/http.md b/docs/http.md
index fcfbd9b4..b07861bf 100644
--- a/docs/http.md
+++ b/docs/http.md
@@ -117,7 +117,7 @@ Fetch an image and use the blob() method to extract the image body content from
## Interceptors
-Interceptors can be defined globally and are used for pre- and postprocessing of a request. If a request is send using `this.$http` or `this.$resource` the current Vue instance is available as `this` in a interceptor callback.
+Interceptors can be defined globally and are used for pre- and postprocessing of a request. If a request is sent using `this.$http` or `this.$resource` the current Vue instance is available as `this` in a interceptor callback.
### Request processing
```js
@@ -165,3 +165,15 @@ Vue.http.interceptors.push(function(request, next) {
}));
});
```
+
+### Overriding default interceptors
+
+All default interceptors callbacks can be overriden to change their behavior. All interceptors are exposed through the `Vue.http.interceptor` object with their names `before`, `method`, `jsonp`, `json`, `form`, `header` and `cors`.
+
+```js
+Vue.http.interceptor.before = function(request, next) {
+
+ // override before interceptor
+
+ next();
+};
diff --git a/package.json b/package.json
index bb40140f..569c4397 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-resource",
- "version": "1.3.1",
+ "version": "1.3.2",
"main": "dist/vue-resource.common.js",
"module": "dist/vue-resource.es2015.js",
"description": "The HTTP client for Vue.js",
@@ -34,14 +34,14 @@
"devDependencies": {
"buble": "^0.15.2",
"buble-loader": "^0.4.1",
- "generate-release": "^0.11.0",
- "jasmine-core": "^2.5.2",
- "jest": "^19.0.2",
+ "generate-release": "^0.12.0",
+ "jasmine-core": "^2.6.2",
+ "jest": "^20.0.3",
"replace-in-file": "^2.5.0",
"rollup": "^0.41.6",
"rollup-plugin-buble": "^0.15.0",
- "uglify-js": "^2.8.22",
- "vue": "^2.2.6",
- "webpack": "^2.3.3"
+ "uglify-js": "2.8.25",
+ "vue": "^2.3.3",
+ "webpack": "^2.5.1"
}
}
diff --git a/src/http/index.js b/src/http/index.js
index f4178ed7..d1bda3ca 100644
--- a/src/http/index.js
+++ b/src/http/index.js
@@ -6,7 +6,8 @@ const COMMON_HEADERS = {'Accept': 'application/json, text/plain, */*'};
const JSON_CONTENT_TYPE = {'Content-Type': 'application/json;charset=utf-8'};
import cors from './interceptor/cors';
-import body from './interceptor/body';
+import form from './interceptor/form';
+import json from './interceptor/json';
import jsonp from './interceptor/jsonp';
import before from './interceptor/before';
import method from './interceptor/method';
@@ -59,8 +60,8 @@ Http.headers = {
custom: {}
};
-Http.interceptor = {before, method, body, jsonp, header, cors};
-Http.interceptors = ['before', 'method', 'body', 'jsonp', 'header', 'cors'];
+Http.interceptor = {before, method, jsonp, json, form, header, cors};
+Http.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];
['get', 'delete', 'head', 'jsonp'].forEach(method => {
diff --git a/src/http/interceptor/body.js b/src/http/interceptor/body.js
deleted file mode 100644
index 05c55654..00000000
--- a/src/http/interceptor/body.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Body Interceptor.
- */
-
-import Url from '../../url/index';
-import { when, isArray, isObject, isFormData } from '../../util';
-
-export default function (request, next) {
-
- if (isFormData(request.body)) {
-
- request.headers.delete('Content-Type');
-
- } else if (isObject(request.body) || isArray(request.body)) {
-
- if (request.emulateJSON) {
- request.body = Url.params(request.body);
- request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
- } else {
- request.body = JSON.stringify(request.body);
- }
- }
-
- next(response => {
-
- Object.defineProperty(response, 'data', {
-
- get() {
- return this.body;
- },
-
- set(body) {
- this.body = body;
- }
-
- });
-
- return response.bodyText ? when(response.text(), text => {
-
- var type = response.headers.get('Content-Type') || '';
-
- if (type.indexOf('application/json') === 0 || isJson(text)) {
-
- try {
- response.body = JSON.parse(text);
- } catch (e) {
- response.body = null;
- }
-
- } else {
- response.body = text;
- }
-
- return response;
-
- }) : response;
-
- });
-}
-
-function isJson(str) {
-
- var start = str.match(/^\[|^\{(?!\{)/), end = {'[': /]$/, '{': /}$/};
-
- return start && end[start[0]].test(str);
-}
diff --git a/src/http/interceptor/form.js b/src/http/interceptor/form.js
new file mode 100644
index 00000000..e4863dfd
--- /dev/null
+++ b/src/http/interceptor/form.js
@@ -0,0 +1,21 @@
+/**
+ * Form data Interceptor.
+ */
+
+import Url from '../../url/index';
+import { isObject, isFormData } from '../../util';
+
+export default function (request, next) {
+
+ if (isFormData(request.body)) {
+
+ request.headers.delete('Content-Type');
+
+ } else if (isObject(request.body) && request.emulateJSON) {
+
+ request.body = Url.params(request.body);
+ request.headers.set('Content-Type', 'application/x-www-form-urlencoded');
+ }
+
+ next();
+}
diff --git a/src/http/interceptor/json.js b/src/http/interceptor/json.js
new file mode 100644
index 00000000..51838159
--- /dev/null
+++ b/src/http/interceptor/json.js
@@ -0,0 +1,46 @@
+/**
+ * JSON Interceptor.
+ */
+
+import Url from '../../url/index';
+import { when, isObject } from '../../util';
+
+export default function (request, next) {
+
+ var type = request.headers.get('Content-Type') || '';
+
+ if (isObject(request.body) && type.indexOf('application/json') === 0) {
+ request.body = JSON.stringify(request.body);
+ }
+
+ next(response => {
+
+ return response.bodyText ? when(response.text(), text => {
+
+ type = response.headers.get('Content-Type') || '';
+
+ if (type.indexOf('application/json') === 0 || isJson(text)) {
+
+ try {
+ response.body = JSON.parse(text);
+ } catch (e) {
+ response.body = null;
+ }
+
+ } else {
+ response.body = text;
+ }
+
+ return response;
+
+ }) : response;
+
+ });
+}
+
+function isJson(str) {
+
+ var start = str.match(/^\[|^\{(?!\{)/), end = {'[': /]$/, '{': /}$/};
+
+ return start && end[start[0]].test(str);
+}
diff --git a/src/http/response.js b/src/http/response.js
index 8c5792d9..0ed370e4 100644
--- a/src/http/response.js
+++ b/src/http/response.js
@@ -45,6 +45,18 @@ export default class Response {
}
+Object.defineProperty(Response.prototype, 'data', {
+
+ get() {
+ return this.body;
+ },
+
+ set(body) {
+ this.body = body;
+ }
+
+});
+
function blobText(body) {
return new Promise((resolve) => {
diff --git a/src/url/root.js b/src/url/root.js
index 7f0cdb38..7ec60cd9 100644
--- a/src/url/root.js
+++ b/src/url/root.js
@@ -2,14 +2,14 @@
* Root Prefix Transform.
*/
-import { isString } from '../util';
+import { isString, trimEnd } from '../util';
export default function (options, next) {
var url = next(options);
- if (isString(options.root) && !url.match(/^(https?:)?\//)) {
- url = options.root + '/' + url;
+ if (isString(options.root) && !/^(https?:)?\//.test(url)) {
+ url = trimEnd(options.root, '/') + '/' + url;
}
return url;
diff --git a/src/util.js b/src/util.js
index b6538ee2..2a62f784 100644
--- a/src/util.js
+++ b/src/util.js
@@ -33,6 +33,19 @@ export function trim(str) {
return str ? str.replace(/^\s*|\s*$/g, '') : '';
}
+export function trimEnd(str, chars) {
+
+ if (str && chars === undefined) {
+ return str.replace(/\s+$/, '');
+ }
+
+ if (!str || !chars) {
+ return str;
+ }
+
+ return str.replace(new RegExp(`[${chars}]+$`), '');
+}
+
export function toLower(str) {
return str ? str.toLowerCase() : '';
}
diff --git a/test/http.js b/test/http.js
index b4b337d8..f23343dd 100644
--- a/test/http.js
+++ b/test/http.js
@@ -9,6 +9,7 @@ describe('Vue.http', function () {
expect(res.ok).toBe(true);
expect(res.status).toBe(200);
expect(res.body).toBe('text');
+ expect(res.data).toBe(res.body);
expect(res.headers.get('Content-Type')).toBe('text/plain');
expect(res.headers.get('Content-Length')).toBe('4');
diff --git a/yarn.lock b/yarn.lock
index 1dcf0b9a..d57ada92 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -42,6 +42,10 @@ acorn@^4.0.3, acorn@^4.0.4:
version "4.0.11"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0"
+acorn@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
+
ajv-keywords@^1.1.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
@@ -69,7 +73,7 @@ ansi-escapes@^1.1.0, ansi-escapes@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-ansi-regex@^2.0.0:
+ansi-regex@^2.0.0, ansi-regex@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -165,7 +169,7 @@ async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
-async@^1.4.0, async@^1.4.2:
+async@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -239,13 +243,13 @@ babel-helpers@^6.23.0:
babel-runtime "^6.22.0"
babel-template "^6.23.0"
-babel-jest@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-19.0.0.tgz#59323ced99a3a84d359da219ca881074ffc6ce3f"
+babel-jest@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671"
dependencies:
babel-core "^6.0.0"
babel-plugin-istanbul "^4.0.0"
- babel-preset-jest "^19.0.0"
+ babel-preset-jest "^20.0.3"
babel-messages@^6.23.0:
version "6.23.0"
@@ -261,15 +265,15 @@ babel-plugin-istanbul@^4.0.0:
istanbul-lib-instrument "^1.4.2"
test-exclude "^4.0.0"
-babel-plugin-jest-hoist@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz#4ae2a04ea612a6e73651f3fde52c178991304bea"
+babel-plugin-jest-hoist@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767"
-babel-preset-jest@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz#22d67201d02324a195811288eb38294bb3cac396"
+babel-preset-jest@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a"
dependencies:
- babel-plugin-jest-hoist "^19.0.0"
+ babel-plugin-jest-hoist "^20.0.3"
babel-register@^6.23.0:
version "6.23.0"
@@ -563,11 +567,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1:
dependencies:
inherits "^2.0.1"
-cli-cursor@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
- restore-cursor "^1.0.1"
+ restore-cursor "^2.0.0"
cli-width@^2.0.0:
version "2.1.0"
@@ -623,14 +627,6 @@ concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-concat-stream@^1.4.7:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
@@ -649,7 +645,7 @@ content-type-parser@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
-convert-source-map@^1.1.0:
+convert-source-map@^1.1.0, convert-source-map@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3"
@@ -731,7 +727,13 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-debug@^2.1.1, debug@^2.2.0, debug@~2.2.0:
+debug@^2.1.1, debug@^2.2.0, debug@^2.6.3:
+ version "2.6.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a"
+ dependencies:
+ ms "0.7.3"
+
+debug@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
dependencies:
@@ -776,7 +778,7 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
-diff@^3.0.0:
+diff@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
@@ -890,13 +892,9 @@ exec-sh@^0.2.0:
dependencies:
merge "^1.1.3"
-exists-sync@0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf"
-
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+exists-sync@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879"
expand-brackets@^0.1.4:
version "0.1.5"
@@ -910,17 +908,15 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
-extend@^3.0.0, extend@~3.0.0:
+extend@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
-external-editor@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b"
+external-editor@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.1.tgz#4c597c6c88fa6410e41dbbaa7b1be2336aa31095"
dependencies:
- extend "^3.0.0"
- spawn-sync "^1.0.15"
- tmp "^0.0.29"
+ tmp "^0.0.31"
extglob@^0.3.1:
version "0.3.2"
@@ -948,12 +944,11 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
filename-regex@^2.0.0:
version "2.0.0"
@@ -1062,15 +1057,15 @@ generate-object-property@^1.1.0:
dependencies:
is-property "^1.0.0"
-generate-release@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/generate-release/-/generate-release-0.11.0.tgz#235824e3e27ff79a7eb6f85d648f5913608f9a2e"
+generate-release@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/generate-release/-/generate-release-0.12.0.tgz#283ef506ba009a87289369eb89f1f1172b62bdba"
dependencies:
bluebird "^3.1.2"
- exists-sync "0.0.3"
+ exists-sync "0.0.4"
glob "^7.0.4"
iniparser "^1.0.5"
- inquirer "^1.1.0"
+ inquirer "^3.0.6"
minimist "^1.2.0"
observatory "^1.0.0"
rmdir "^1.2.0"
@@ -1135,7 +1130,7 @@ got@^6.7.1:
unzip-response "^2.0.1"
url-parse-lax "^1.0.0"
-graceful-fs@^4.1.2, graceful-fs@^4.1.6:
+graceful-fs@^4.1.11, graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
@@ -1255,7 +1250,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
+inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -1271,22 +1266,21 @@ iniparser@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/iniparser/-/iniparser-1.0.5.tgz#836d6befe6dfbfcee0bccf1cf9f2acc7027f783d"
-inquirer@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918"
+inquirer@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
dependencies:
ansi-escapes "^1.1.0"
chalk "^1.0.0"
- cli-cursor "^1.0.1"
+ cli-cursor "^2.1.0"
cli-width "^2.0.0"
- external-editor "^1.1.0"
- figures "^1.3.5"
+ external-editor "^2.0.1"
+ figures "^2.0.0"
lodash "^4.3.0"
- mute-stream "0.0.6"
- pinkie-promise "^2.0.0"
+ mute-stream "0.0.7"
run-async "^2.2.0"
rx "^4.1.0"
- string-width "^1.0.1"
+ string-width "^2.0.0"
strip-ansi "^3.0.0"
through "^2.3.6"
@@ -1324,7 +1318,7 @@ is-builtin-module@^1.0.0:
dependencies:
builtin-modules "^1.0.0"
-is-ci@^1.0.9:
+is-ci@^1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
dependencies:
@@ -1360,6 +1354,10 @@ is-fullwidth-code-point@^1.0.0:
dependencies:
number-is-nan "^1.0.0"
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -1439,33 +1437,37 @@ isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-istanbul-api@^1.1.0-alpha.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.1.tgz#d36e2f1560d1a43ce304c4ff7338182de61c8f73"
+istanbul-api@^1.1.1:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.8.tgz#a844e55c6f9aeee292e7f42942196f60b23dc93e"
dependencies:
async "^2.1.4"
fileset "^2.0.2"
- istanbul-lib-coverage "^1.0.0"
- istanbul-lib-hook "^1.0.0"
- istanbul-lib-instrument "^1.3.0"
- istanbul-lib-report "^1.0.0-alpha.3"
- istanbul-lib-source-maps "^1.1.0"
- istanbul-reports "^1.0.0"
+ istanbul-lib-coverage "^1.1.0"
+ istanbul-lib-hook "^1.0.6"
+ istanbul-lib-instrument "^1.7.1"
+ istanbul-lib-report "^1.1.0"
+ istanbul-lib-source-maps "^1.2.0"
+ istanbul-reports "^1.1.0"
js-yaml "^3.7.0"
mkdirp "^0.5.1"
once "^1.4.0"
-istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0:
+istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha.0, istanbul-lib-coverage@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528"
+
+istanbul-lib-coverage@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz#f263efb519c051c5f1f3343034fc40e7b43ff212"
-istanbul-lib-hook@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5"
+istanbul-lib-hook@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f"
dependencies:
append-transform "^0.4.0"
-istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.3.0, istanbul-lib-instrument@^1.4.2:
+istanbul-lib-instrument@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.4.2.tgz#0e2fdfac93c1dabf2e31578637dc78a19089f43e"
dependencies:
@@ -1477,15 +1479,25 @@ istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.3.0, istanbul-lib-ins
istanbul-lib-coverage "^1.0.0"
semver "^5.3.0"
-istanbul-lib-report@^1.0.0-alpha.3:
- version "1.0.0-alpha.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz#32d5f6ec7f33ca3a602209e278b2e6ff143498af"
+istanbul-lib-instrument@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360"
+ dependencies:
+ babel-generator "^6.18.0"
+ babel-template "^6.16.0"
+ babel-traverse "^6.18.0"
+ babel-types "^6.18.0"
+ babylon "^6.13.0"
+ istanbul-lib-coverage "^1.1.0"
+ semver "^5.3.0"
+
+istanbul-lib-report@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770"
dependencies:
- async "^1.4.2"
- istanbul-lib-coverage "^1.0.0-alpha"
+ istanbul-lib-coverage "^1.1.0"
mkdirp "^0.5.1"
path-parse "^1.0.5"
- rimraf "^2.4.3"
supports-color "^3.1.2"
istanbul-lib-source-maps@^1.1.0:
@@ -1497,217 +1509,236 @@ istanbul-lib-source-maps@^1.1.0:
rimraf "^2.4.4"
source-map "^0.5.3"
-istanbul-reports@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.1.tgz#9a17176bc4a6cbebdae52b2f15961d52fa623fbc"
+istanbul-lib-source-maps@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e"
+ dependencies:
+ debug "^2.6.3"
+ istanbul-lib-coverage "^1.1.0"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-reports@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66"
dependencies:
handlebars "^4.0.3"
-jasmine-core@^2.5.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297"
+jasmine-core@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.6.2.tgz#74ea1f7cf428691af201107d631234027a09daab"
-jest-changed-files@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-19.0.2.tgz#16c54c84c3270be408e06d2e8af3f3e37a885824"
+jest-changed-files@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8"
-jest-cli@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-19.0.2.tgz#cc3620b62acac5f2d93a548cb6ef697d4ec85443"
+jest-cli@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.3.tgz#fe88ddbb7a9f3a16d0ed55339a0a2424f7f0d361"
dependencies:
ansi-escapes "^1.4.0"
callsites "^2.0.0"
- chalk "^1.1.1"
- graceful-fs "^4.1.6"
- is-ci "^1.0.9"
- istanbul-api "^1.1.0-alpha.1"
- istanbul-lib-coverage "^1.0.0"
- istanbul-lib-instrument "^1.1.1"
- jest-changed-files "^19.0.2"
- jest-config "^19.0.2"
- jest-environment-jsdom "^19.0.2"
- jest-haste-map "^19.0.0"
- jest-jasmine2 "^19.0.2"
- jest-message-util "^19.0.0"
- jest-regex-util "^19.0.0"
- jest-resolve-dependencies "^19.0.0"
- jest-runtime "^19.0.2"
- jest-snapshot "^19.0.2"
- jest-util "^19.0.2"
+ chalk "^1.1.3"
+ graceful-fs "^4.1.11"
+ is-ci "^1.0.10"
+ istanbul-api "^1.1.1"
+ istanbul-lib-coverage "^1.0.1"
+ istanbul-lib-instrument "^1.4.2"
+ istanbul-lib-source-maps "^1.1.0"
+ jest-changed-files "^20.0.3"
+ jest-config "^20.0.3"
+ jest-docblock "^20.0.3"
+ jest-environment-jsdom "^20.0.3"
+ jest-haste-map "^20.0.3"
+ jest-jasmine2 "^20.0.3"
+ jest-message-util "^20.0.3"
+ jest-regex-util "^20.0.3"
+ jest-resolve-dependencies "^20.0.3"
+ jest-runtime "^20.0.3"
+ jest-snapshot "^20.0.3"
+ jest-util "^20.0.3"
micromatch "^2.3.11"
- node-notifier "^5.0.1"
+ node-notifier "^5.0.2"
+ pify "^2.3.0"
slash "^1.0.0"
string-length "^1.0.1"
throat "^3.0.0"
- which "^1.1.1"
+ which "^1.2.12"
worker-farm "^1.3.1"
- yargs "^6.3.0"
+ yargs "^7.0.2"
-jest-config@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-19.0.2.tgz#1b9bd2db0ddd16df61c2b10a54009e1768da6411"
+jest-config@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.3.tgz#a934f27eea764915801cdda26f6f8eec2ac79266"
dependencies:
- chalk "^1.1.1"
- jest-environment-jsdom "^19.0.2"
- jest-environment-node "^19.0.2"
- jest-jasmine2 "^19.0.2"
- jest-regex-util "^19.0.0"
- jest-resolve "^19.0.2"
- jest-validate "^19.0.2"
- pretty-format "^19.0.0"
-
-jest-diff@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-19.0.0.tgz#d1563cfc56c8b60232988fbc05d4d16ed90f063c"
+ chalk "^1.1.3"
+ glob "^7.1.1"
+ jest-environment-jsdom "^20.0.3"
+ jest-environment-node "^20.0.3"
+ jest-jasmine2 "^20.0.3"
+ jest-matcher-utils "^20.0.3"
+ jest-regex-util "^20.0.3"
+ jest-resolve "^20.0.3"
+ jest-validate "^20.0.3"
+ pretty-format "^20.0.3"
+
+jest-diff@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617"
dependencies:
chalk "^1.1.3"
- diff "^3.0.0"
- jest-matcher-utils "^19.0.0"
- pretty-format "^19.0.0"
+ diff "^3.2.0"
+ jest-matcher-utils "^20.0.3"
+ pretty-format "^20.0.3"
-jest-environment-jsdom@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-19.0.2.tgz#ceda859c4a4b94ab35e4de7dab54b926f293e4a3"
- dependencies:
- jest-mock "^19.0.0"
- jest-util "^19.0.2"
- jsdom "^9.11.0"
+jest-docblock@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
-jest-environment-node@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-19.0.2.tgz#6e84079db87ed21d0c05e1f9669f207b116fe99b"
+jest-environment-jsdom@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99"
dependencies:
- jest-mock "^19.0.0"
- jest-util "^19.0.2"
+ jest-mock "^20.0.3"
+ jest-util "^20.0.3"
+ jsdom "^9.12.0"
-jest-file-exists@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8"
+jest-environment-node@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403"
+ dependencies:
+ jest-mock "^20.0.3"
+ jest-util "^20.0.3"
-jest-haste-map@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-19.0.0.tgz#adde00b62b1fe04432a104b3254fc5004514b55e"
+jest-haste-map@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.3.tgz#6377d537eaf34eb5f75121a691cae3fde82ba971"
dependencies:
fb-watchman "^2.0.0"
- graceful-fs "^4.1.6"
+ graceful-fs "^4.1.11"
+ jest-docblock "^20.0.3"
micromatch "^2.3.11"
- sane "~1.5.0"
+ sane "~1.6.0"
worker-farm "^1.3.1"
-jest-jasmine2@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-19.0.2.tgz#167991ac825981fb1a800af126e83afcca832c73"
+jest-jasmine2@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.3.tgz#18c4e9d029da7ed1ae727c55300064d1a0542974"
dependencies:
- graceful-fs "^4.1.6"
- jest-matcher-utils "^19.0.0"
- jest-matchers "^19.0.0"
- jest-message-util "^19.0.0"
- jest-snapshot "^19.0.2"
+ chalk "^1.1.3"
+ graceful-fs "^4.1.11"
+ jest-diff "^20.0.3"
+ jest-matcher-utils "^20.0.3"
+ jest-matchers "^20.0.3"
+ jest-message-util "^20.0.3"
+ jest-snapshot "^20.0.3"
+ once "^1.4.0"
+ p-map "^1.1.1"
-jest-matcher-utils@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz#5ecd9b63565d2b001f61fbf7ec4c7f537964564d"
+jest-matcher-utils@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612"
dependencies:
chalk "^1.1.3"
- pretty-format "^19.0.0"
+ pretty-format "^20.0.3"
-jest-matchers@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-19.0.0.tgz#c74ecc6ebfec06f384767ba4d6fa4a42d6755754"
+jest-matchers@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60"
dependencies:
- jest-diff "^19.0.0"
- jest-matcher-utils "^19.0.0"
- jest-message-util "^19.0.0"
- jest-regex-util "^19.0.0"
+ jest-diff "^20.0.3"
+ jest-matcher-utils "^20.0.3"
+ jest-message-util "^20.0.3"
+ jest-regex-util "^20.0.3"
-jest-message-util@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-19.0.0.tgz#721796b89c0e4d761606f9ba8cb828a3b6246416"
+jest-message-util@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c"
dependencies:
- chalk "^1.1.1"
+ chalk "^1.1.3"
micromatch "^2.3.11"
+ slash "^1.0.0"
-jest-mock@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-19.0.0.tgz#67038641e9607ab2ce08ec4a8cb83aabbc899d01"
+jest-mock@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59"
-jest-regex-util@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-19.0.0.tgz#b7754587112aede1456510bb1f6afe74ef598691"
+jest-regex-util@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762"
-jest-resolve-dependencies@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-19.0.0.tgz#a741ad1fa094140e64ecf2642a504f834ece22ee"
+jest-resolve-dependencies@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a"
dependencies:
- jest-file-exists "^19.0.0"
+ jest-regex-util "^20.0.3"
-jest-resolve@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-19.0.2.tgz#5793575de4f07aec32f7d7ff0c6c181963eefb3c"
+jest-resolve@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.3.tgz#375307aa40f78532d40ff8b17d5300b1519f8dd4"
dependencies:
browser-resolve "^1.11.2"
- jest-haste-map "^19.0.0"
- resolve "^1.2.0"
+ is-builtin-module "^1.0.0"
+ resolve "^1.3.2"
-jest-runtime@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-19.0.2.tgz#d9a43e72de416d27d196fd9c7940d98fe6685407"
+jest-runtime@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.3.tgz#dddd22bbc429e26e6a96d1acd46ca55714b09252"
dependencies:
babel-core "^6.0.0"
- babel-jest "^19.0.0"
+ babel-jest "^20.0.3"
babel-plugin-istanbul "^4.0.0"
chalk "^1.1.3"
- graceful-fs "^4.1.6"
- jest-config "^19.0.2"
- jest-file-exists "^19.0.0"
- jest-haste-map "^19.0.0"
- jest-regex-util "^19.0.0"
- jest-resolve "^19.0.2"
- jest-util "^19.0.2"
+ convert-source-map "^1.4.0"
+ graceful-fs "^4.1.11"
+ jest-config "^20.0.3"
+ jest-haste-map "^20.0.3"
+ jest-regex-util "^20.0.3"
+ jest-resolve "^20.0.3"
+ jest-util "^20.0.3"
json-stable-stringify "^1.0.1"
micromatch "^2.3.11"
strip-bom "3.0.0"
- yargs "^6.3.0"
+ yargs "^7.0.2"
-jest-snapshot@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-19.0.2.tgz#9c1b216214f7187c38bfd5c70b1efab16b0ff50b"
+jest-snapshot@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566"
dependencies:
chalk "^1.1.3"
- jest-diff "^19.0.0"
- jest-file-exists "^19.0.0"
- jest-matcher-utils "^19.0.0"
- jest-util "^19.0.2"
+ jest-diff "^20.0.3"
+ jest-matcher-utils "^20.0.3"
+ jest-util "^20.0.3"
natural-compare "^1.4.0"
- pretty-format "^19.0.0"
+ pretty-format "^20.0.3"
-jest-util@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-19.0.2.tgz#e0a0232a2ab9e6b2b53668bdb3534c2b5977ed41"
+jest-util@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad"
dependencies:
- chalk "^1.1.1"
- graceful-fs "^4.1.6"
- jest-file-exists "^19.0.0"
- jest-message-util "^19.0.0"
- jest-mock "^19.0.0"
- jest-validate "^19.0.2"
- leven "^2.0.0"
+ chalk "^1.1.3"
+ graceful-fs "^4.1.11"
+ jest-message-util "^20.0.3"
+ jest-mock "^20.0.3"
+ jest-validate "^20.0.3"
+ leven "^2.1.0"
mkdirp "^0.5.1"
-jest-validate@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.2.tgz#dc534df5f1278d5b63df32b14241d4dbf7244c0c"
+jest-validate@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab"
dependencies:
- chalk "^1.1.1"
- jest-matcher-utils "^19.0.0"
- leven "^2.0.0"
- pretty-format "^19.0.0"
+ chalk "^1.1.3"
+ jest-matcher-utils "^20.0.3"
+ leven "^2.1.0"
+ pretty-format "^20.0.3"
-jest@^19.0.2:
- version "19.0.2"
- resolved "https://registry.yarnpkg.com/jest/-/jest-19.0.2.tgz#b794faaf8ff461e7388f28beef559a54f20b2c10"
+jest@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.3.tgz#e4fd054c4f1170a116a00761da4cfdb73f1cdc33"
dependencies:
- jest-cli "^19.0.2"
+ jest-cli "^20.0.3"
jodid25519@^1.0.0:
version "1.0.2"
@@ -1730,9 +1761,9 @@ jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-jsdom@^9.11.0:
- version "9.11.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.11.0.tgz#a95b0304e521a2ca5a63c6ea47bf7708a7a84591"
+jsdom@^9.12.0:
+ version "9.12.0"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4"
dependencies:
abab "^1.0.3"
acorn "^4.0.4"
@@ -1776,7 +1807,7 @@ json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-json5@^0.5.0:
+json5@^0.5.0, json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@@ -1812,7 +1843,7 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
-leven@^2.0.0:
+leven@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
@@ -1933,6 +1964,10 @@ mime-types@^2.1.12, mime-types@~2.1.7:
dependencies:
mime-db "~1.26.0"
+mimic-fn@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+
minimalistic-assert@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
@@ -1965,9 +2000,13 @@ ms@0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-mute-stream@0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
+ms@0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
nan@^2.3.0:
version "2.5.1"
@@ -2009,9 +2048,9 @@ node-libs-browser@^2.0.0:
util "^0.10.3"
vm-browserify "0.0.4"
-node-notifier@^5.0.1:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.0.2.tgz#4438449fe69e321f941cef943986b0797032701b"
+node-notifier@^5.0.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff"
dependencies:
growly "^1.3.0"
semver "^5.3.0"
@@ -2120,9 +2159,11 @@ once@~1.3.3:
dependencies:
wrappy "1"
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
optimist@^0.6.1:
version "0.6.1"
@@ -2156,10 +2197,6 @@ os-locale@^1.4.0:
dependencies:
lcid "^1.0.0"
-os-shim@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -2174,6 +2211,10 @@ p-locate@^2.0.0:
dependencies:
p-limit "^1.1.0"
+p-map@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
+
pako@~0.2.0:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -2243,7 +2284,7 @@ pbkdf2@^3.0.3:
dependencies:
create-hmac "^1.1.2"
-pify@^2.0.0:
+pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -2269,10 +2310,11 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-pretty-format@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-19.0.0.tgz#56530d32acb98a3fa4851c4e2b9d37b420684c84"
+pretty-format@^20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14"
dependencies:
+ ansi-regex "^2.1.1"
ansi-styles "^3.0.0"
private@^0.1.6:
@@ -2356,7 +2398,7 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
-"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.2.2:
+"readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729"
dependencies:
@@ -2459,18 +2501,18 @@ resolve@1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-resolve@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.1.tgz#5d0a1632609b6b00a22284293db1d5d973676314"
+resolve@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
dependencies:
path-parse "^1.0.5"
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
right-align@^0.1.1:
version "0.1.3"
@@ -2478,12 +2520,18 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4:
+rimraf@2, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4:
version "2.5.4"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
dependencies:
glob "^7.0.5"
+rimraf@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
+ dependencies:
+ glob "^7.0.5"
+
rimraf@~2.2.6:
version "2.2.8"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
@@ -2532,9 +2580,9 @@ safe-buffer@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-sane@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/sane/-/sane-1.5.0.tgz#a4adeae764d048621ecb27d5f9ecf513101939f3"
+sane@~1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775"
dependencies:
anymatch "^1.3.0"
exec-sh "^0.2.0"
@@ -2574,7 +2622,7 @@ shellwords@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14"
-signal-exit@^3.0.0:
+signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -2614,13 +2662,6 @@ source-map@~0.2.0:
dependencies:
amdefine ">=0.0.4"
-spawn-sync@^1.0.15:
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
- dependencies:
- concat-stream "^1.4.7"
- os-shim "^0.1.2"
-
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -2685,6 +2726,13 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
+string-width@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^3.0.0"
+
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -2787,9 +2835,9 @@ timers-browserify@^2.0.2:
dependencies:
setimmediate "^1.0.4"
-tmp@^0.0.29:
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0"
+tmp@^0.0.31:
+ version "0.0.31"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
dependencies:
os-tmpdir "~1.0.1"
@@ -2837,21 +2885,9 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-uglify-js@^2.6, uglify-js@^2.8.5:
- version "2.8.14"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.14.tgz#25b15d1af39b21752ee33703adbf432e8bc8f77d"
- dependencies:
- source-map "~0.5.1"
- uglify-to-browserify "~1.0.0"
- yargs "~3.10.0"
-
-uglify-js@^2.8.22:
- version "2.8.22"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0"
+uglify-js@2.8.25, uglify-js@^2.6, uglify-js@^2.8.5:
+ version "2.8.25"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.25.tgz#11b776e7c3925802853e4c3dd6d0ffad8eb72336"
dependencies:
source-map "~0.5.1"
yargs "~3.10.0"
@@ -2920,9 +2956,9 @@ vm-browserify@0.0.4:
dependencies:
indexof "0.0.1"
-vue@^2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/vue/-/vue-2.2.6.tgz#451714b394dd6d4eae7b773c40c2034a59621aed"
+vue@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/vue/-/vue-2.3.3.tgz#d1eaa8fde5240735a4563e74f2c7fead9cbb064c"
walker@~1.0.5:
version "1.0.7"
@@ -2957,11 +2993,11 @@ webpack-sources@^0.2.3:
source-list-map "^1.1.1"
source-map "~0.5.3"
-webpack@*, webpack@^2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.3.3.tgz#eecc083c18fb7bf958ea4f40b57a6640c5a0cc78"
+webpack@*, webpack@^2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce"
dependencies:
- acorn "^4.0.4"
+ acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
ajv "^4.7.0"
ajv-keywords "^1.1.1"
@@ -2969,6 +3005,7 @@ webpack@*, webpack@^2.3.3:
enhanced-resolve "^3.0.0"
interpret "^1.0.0"
json-loader "^0.5.4"
+ json5 "^0.5.1"
loader-runner "^2.3.0"
loader-utils "^0.2.16"
memory-fs "~0.4.1"
@@ -2999,7 +3036,7 @@ which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-which@^1.1.1, which@^1.2.12:
+which@^1.2.12:
version "1.2.12"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
dependencies:
@@ -3065,7 +3102,7 @@ yargs-parser@^5.0.0:
dependencies:
camelcase "^3.0.0"
-yargs@^6.0.0, yargs@^6.3.0:
+yargs@^6.0.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
dependencies:
@@ -3083,7 +3120,7 @@ yargs@^6.0.0, yargs@^6.3.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
-yargs@^7.0.1:
+yargs@^7.0.1, yargs@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.0.2.tgz#115b97df1321823e8b8648e8968c782521221f67"
dependencies: