\'s empty when no projects ', (t) => {
+ const Projects = require('@containers/org/projects').WrappedComponent;
+ const wrapper = render(create.withIntl());
+
+ const empty = wrapper.find('p[name=empty]');
+ const ul = wrapper.find('ul[name=projects]');
+ const li = ul.find('li');
+
+ t.deepEqual(wrapper.length, 1);
+ t.deepEqual(li.length, 0);
+ t.deepEqual(empty.length, 1);
+});
diff --git a/frontend/test/helpers/create.js b/frontend/test/helpers/create.js
new file mode 100644
index 00000000..db4472a6
--- /dev/null
+++ b/frontend/test/helpers/create.js
@@ -0,0 +1,61 @@
+const React = require('react');
+const ReactRedux = require('react-redux');
+const ReactIntl = require('react-intl');
+const createStore = require('@state/store');
+
+const {
+ addLocaleData,
+ IntlProvider
+} = ReactIntl;
+
+const {
+ Provider
+} = ReactRedux;
+
+const Messages = {
+ 'en-us': require('../../locales/en-us.json'),
+ 'pt-pt': require('../../locales/pt-pt.json')
+};
+
+const Locales = {
+ 'en': require('react-intl/locale-data/en'),
+ 'pt': require('react-intl/locale-data/pt')
+};
+
+const LocalesMessages = {
+ 'en-us': {
+ messages: Messages['en-us'],
+ locale: 'en'
+ },
+ 'pt-pt': {
+ messages: Messages['pt-pt'],
+ locale: 'pt'
+ }
+};
+
+Object.keys(Locales).forEach((lang) => {
+ addLocaleData(Locales[lang] || []);
+});
+
+const withRedux = (children, {
+ store = createStore()
+} = {}) => (
+
+ {children}
+
+);
+
+const withIntl = (children, {
+ locale = 'en-us'
+} = {}) => (
+
+ {children}
+
+);
+
+module.exports = (children, props) => withRedux(withIntl(children), props);
+module.exports.withRedux = withRedux;
+module.exports.withIntl = withIntl;
diff --git a/frontend/test/reducers/app.js b/frontend/test/reducers/app.js
new file mode 100644
index 00000000..a3da66e8
--- /dev/null
+++ b/frontend/test/reducers/app.js
@@ -0,0 +1,21 @@
+const ReduxAva = require('redux-ava');
+const test = require('ava');
+
+const reducer = require('@state/reducers/app');
+const actions = require('@state/actions');
+
+const {
+ reducerTest
+} = ReduxAva;
+
+const {
+ updateRouter
+} = actions;
+
+test('updateReducer', reducerTest(reducer, {}, updateRouter({
+ transitionTo: '[Function]'
+}), {
+ router: {
+ transitionTo: '[Function]'
+ }
+}));
diff --git a/frontend/test/selectors/index.js b/frontend/test/selectors/index.js
new file mode 100644
index 00000000..2473da93
--- /dev/null
+++ b/frontend/test/selectors/index.js
@@ -0,0 +1,105 @@
+const test = require('ava');
+
+const selectors = require('@state/selectors');
+
+const {
+ accountSelector,
+ orgByIdSelector
+ // orgsSelector,
+ // orgSectionsSelector,
+ // projectsByOrgIdSelector
+} = selectors;
+
+test('accountSelector with empty input', (t) => {
+ t.deepEqual(accountSelector(), {});
+
+ t.deepEqual(accountSelector({
+ account: undefined
+ }), {});
+
+ t.deepEqual(accountSelector({
+ account: {}
+ }), {});
+
+ t.deepEqual(accountSelector({
+ account: {
+ data: undefined
+ }
+ }), {});
+
+ t.deepEqual(accountSelector({
+ account: {
+ data: {}
+ }
+ }), {});
+});
+
+test('accountSelector with attrs', (t) => {
+ t.deepEqual(accountSelector({
+ account: {
+ data: {
+ id: '[id]',
+ uuid: '[uuid]'
+ }
+ }
+ }), {
+ id: '[id]',
+ uuid: '[uuid]'
+ });
+});
+
+test('orgByIdSelector with empty input', (t) => {
+ t.deepEqual(orgByIdSelector()(), undefined);
+
+ t.deepEqual(orgByIdSelector()({
+ orgs: undefined
+ }), undefined);
+
+ t.deepEqual(orgByIdSelector()({
+ orgs: {}
+ }), undefined);
+
+ t.deepEqual(orgByIdSelector()({
+ orgs: {
+ data: undefined
+ }
+ }), undefined);
+
+ t.deepEqual(orgByIdSelector()({
+ orgs: {
+ data: {}
+ }
+ }), undefined);
+});
+
+test('orgByIdSelector should find org', (t) => {
+ const orgs = [{
+ id: '1'
+ }, {
+ id: '2'
+ }, {
+ id: '3'
+ }];
+
+ t.deepEqual(orgByIdSelector('1')({
+ orgs: {
+ data: orgs
+ }
+ }), {
+ id: '1'
+ });
+
+ t.deepEqual(orgByIdSelector('2')({
+ orgs: {
+ data: orgs
+ }
+ }), {
+ id: '2'
+ });
+
+ t.deepEqual(orgByIdSelector('4')({
+ orgs: {
+ data: orgs
+ }
+ }), undefined);
+});
diff --git a/frontend/test/thunks/app.js b/frontend/test/thunks/app.js
new file mode 100644
index 00000000..f26241d8
--- /dev/null
+++ b/frontend/test/thunks/app.js
@@ -0,0 +1,35 @@
+const mock = require('simple-mock');
+const test = require('ava');
+
+const thunks = require('@state/thunks');
+
+const {
+ transitionTo
+} = thunks;
+
+test('transitionTo should dispatch', (t) => {
+ const pathname = '/hello';
+
+ const state = {
+ app: {
+ router: {
+ transitionTo: mock.spy((pathname) => pathname)
+ }
+ }
+ };
+
+ const dispatch = mock.spy(({
+ PAYLOAD
+ }) => {
+ t.deepEqual(PAYLOAD, pathname);
+ });
+
+ const getState = () => state;
+
+ transitionTo(pathname)(dispatch, getState);
+
+ t.deepEqual(dispatch.called, true);
+ t.deepEqual(dispatch.callCount, 1);
+ t.deepEqual(state.app.router.transitionTo.called, true);
+ t.deepEqual(state.app.router.transitionTo.callCount, 1);
+});
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 249e54dd..29550de9 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1,5 +1,9 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
+abab@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
+
abbrev@1:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
@@ -21,12 +25,22 @@ acorn-es7-plugin@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.3.tgz#6a032a71f1faf396a1a29729c7b150fe480cc17a"
+acorn-globals@^1.0.4:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf"
+ dependencies:
+ acorn "^2.1.0"
+
acorn-jsx@^3.0.0, acorn-jsx@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
dependencies:
acorn "^3.0.4"
+acorn@^2.1.0, acorn@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
+
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
@@ -134,6 +148,10 @@ array-differ@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
+array-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+
array-find-index@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
@@ -1639,6 +1657,10 @@ content-disposition@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b"
+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"
+
content-type@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
@@ -1770,6 +1792,16 @@ css-what@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3"
+
+"cssstyle@>= 0.2.36 < 0.3.0":
+ version "0.2.37"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
+ dependencies:
+ cssom "0.3.x"
+
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -1832,6 +1864,10 @@ deep-extend@~0.4.0:
version "0.4.1"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
+deep-freeze@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
+
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -2128,6 +2164,17 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+escodegen@^1.6.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ dependencies:
+ esprima "^2.7.1"
+ estraverse "^1.9.1"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.2.0"
+
escope@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
@@ -2227,7 +2274,7 @@ espree@^3.3.1:
acorn "^4.0.1"
acorn-jsx "^3.0.0"
-esprima@^2.6.0:
+esprima@^2.6.0, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
@@ -2244,6 +2291,10 @@ esrecurse@^4.1.0:
estraverse "~4.1.0"
object-assign "^4.0.1"
+estraverse@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+
estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
@@ -2791,6 +2842,12 @@ hosted-git-info@^2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
+html-encoding-sniffer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da"
+ dependencies:
+ whatwg-encoding "^1.0.1"
+
htmlparser2@^3.9.1:
version "3.9.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
@@ -2842,10 +2899,14 @@ hyphenate-style-name@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
-iconv-lite@~0.4.13:
+iconv-lite@^0.4.13, iconv-lite@~0.4.13:
version "0.4.15"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
+iconv-lite@0.4.13:
+ version "0.4.13"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
+
ieee754@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
@@ -2858,6 +2919,10 @@ ignore@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435"
+immutable@^3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.1.tgz#200807f11ab0f72710ea485542de088075f68cd2"
+
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -3277,6 +3342,31 @@ jsbn@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
+jsdom:
+ version "9.9.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.9.1.tgz#84f3972ad394ab963233af8725211bce4d01bfd5"
+ dependencies:
+ abab "^1.0.0"
+ acorn "^2.4.0"
+ acorn-globals "^1.0.4"
+ array-equal "^1.0.0"
+ content-type-parser "^1.0.1"
+ cssom ">= 0.3.0 < 0.4.0"
+ cssstyle ">= 0.2.36 < 0.3.0"
+ escodegen "^1.6.1"
+ html-encoding-sniffer "^1.0.1"
+ iconv-lite "^0.4.13"
+ nwmatcher ">= 1.3.9 < 2.0.0"
+ parse5 "^1.5.1"
+ request "^2.55.0"
+ sax "^1.1.4"
+ symbol-tree ">= 3.1.0 < 4.0.0"
+ tough-cookie "^2.3.1"
+ webidl-conversions "^3.0.1"
+ whatwg-encoding "^1.0.1"
+ whatwg-url "^4.1.0"
+ xml-name-validator ">= 2.0.1 < 3.0.0"
+
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -3451,6 +3541,10 @@ lodash.foreach@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+lodash.get:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+
lodash.isempty@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
@@ -3859,6 +3953,10 @@ number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+"nwmatcher@>= 1.3.9 < 2.0.0":
+ version "1.3.9"
+ resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a"
+
nyc@^10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.0.0.tgz#95bd4a2c3487f33e1e78f213c6d5a53d88074ce6"
@@ -3990,7 +4088,7 @@ option-chain@^0.1.0:
dependencies:
object-assign "^4.0.1"
-optionator@^0.8.2:
+optionator@^0.8.1, optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
@@ -4112,6 +4210,10 @@ parse-ms@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d"
+parse5@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
+
parseurl@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
@@ -4626,6 +4728,13 @@ redux-actions@^1.2.0:
lodash "^4.13.1"
reduce-reducers "^0.1.0"
+redux-ava:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/redux-ava/-/redux-ava-2.2.0.tgz#b93d26d725d97e7577af08cd18d9a542804ac5dc"
+ dependencies:
+ deep-freeze "0.0.1"
+ immutable "^3.8.1"
+
redux-batched-actions@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/redux-batched-actions/-/redux-batched-actions-0.1.5.tgz#b39b84775f4499a4724f3154b882968073b58bed"
@@ -4720,7 +4829,7 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@^2.79.0:
+request@^2.55.0, request@^2.79.0:
version "2.79.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
dependencies:
@@ -4831,6 +4940,10 @@ rx-lite@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+sax@^1.1.4:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
+
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -4928,6 +5041,10 @@ signal-exit@^3.0.0, signal-exit@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+simple-mock:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/simple-mock/-/simple-mock-0.7.3.tgz#461c9e6f1c339cc49a7871b390676cd064388036"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -4996,6 +5113,12 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3, sour
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+source-map@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
+ 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"
@@ -5192,6 +5315,10 @@ symbol-observable@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+"symbol-tree@>= 3.1.0 < 4.0.0":
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.1.tgz#8549dd1d01fa9f893c18cc9ab0b106b4d9b168cb"
+
symbol@^0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7"
@@ -5315,12 +5442,16 @@ to-fast-properties@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320"
-tough-cookie@~2.3.0:
+tough-cookie@^2.3.1, tough-cookie@~2.3.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
dependencies:
punycode "^1.4.1"
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+
traverse@^0.6.6:
version "0.6.6"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
@@ -5541,6 +5672,10 @@ watchpack@^1.0.0:
chokidar "^1.4.3"
graceful-fs "^4.1.2"
+webidl-conversions@^3.0.0, webidl-conversions@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+
webpack-dev-middleware@^1.4.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz#a1c67a3dfd8a5c5d62740aa0babe61758b4c84aa"
@@ -5615,10 +5750,23 @@ websocket-extensions@>=0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7"
+whatwg-encoding@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4"
+ dependencies:
+ iconv-lite "0.4.13"
+
whatwg-fetch@>=0.10.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz#078b9461bbe91cea73cbce8bb122a05f9e92b772"
+whatwg-url@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.1.1.tgz#567074923352de781e3500d64a86aa92a971b4a4"
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
@@ -5710,6 +5858,10 @@ xdg-basedir@^2.0.0:
dependencies:
os-homedir "^1.0.0"
+"xml-name-validator@>= 2.0.1 < 3.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
+
xmlbuilder@~4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4"