summaryrefslogtreecommitdiffstats
path: root/finished-application/frontend
diff options
context:
space:
mode:
authorRandy Ridge <randyridge@gmail.com>2018-09-14 20:01:25 -0400
committerGitHub <noreply@github.com>2018-09-14 20:01:25 -0400
commit908180c77cd38011eeedcae949613da2a3391e5e (patch)
treeb59bf1aae819a04d453cde72f6e601f5561a740f /finished-application/frontend
parent1f6667d233a4a2e9df977204d83a8f749c050c75 (diff)
parentb3bebda57ba187b7fa10398054b54c05d3fd3555 (diff)
Merge branch 'master' into randyridge/our
Diffstat (limited to 'finished-application/frontend')
-rw-r--r--finished-application/frontend/.vscode/settings.json7
-rw-r--r--finished-application/frontend/README.md59
-rw-r--r--finished-application/frontend/__tests__/AddToCart.test.js45
-rw-r--r--finished-application/frontend/__tests__/Cart.test.js19
-rw-r--r--finished-application/frontend/__tests__/CartCount.test.js12
-rw-r--r--finished-application/frontend/__tests__/CartItem.test.js33
-rw-r--r--finished-application/frontend/__tests__/CreateItem.test.js84
-rw-r--r--finished-application/frontend/__tests__/EditUser.test.js75
-rw-r--r--finished-application/frontend/__tests__/Item.test.js31
-rw-r--r--finished-application/frontend/__tests__/Nav.test.js62
-rw-r--r--finished-application/frontend/__tests__/Order.test.js24
-rw-r--r--finished-application/frontend/__tests__/Pagination.test.js33
-rw-r--r--finished-application/frontend/__tests__/PleaseSignIn.test.js59
-rw-r--r--finished-application/frontend/__tests__/RemoveFromCart.test.js39
-rw-r--r--finished-application/frontend/__tests__/RequestReset.test.js (renamed from finished-application/frontend/__tests__/ResetRequest.test.js)36
-rw-r--r--finished-application/frontend/__tests__/Signup.test.js37
-rw-r--r--finished-application/frontend/__tests__/SingleItem.test.js52
-rw-r--r--finished-application/frontend/__tests__/TakeMyMoney.test.js64
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/AddToCart.test.js.snap6
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Cart.test.js.snap20
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/CartCount.test.js.snap232
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/CartItem.test.js.snap33
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/CreateItem.test.js.snap38
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/EditUser.test.js.snap47
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Item.test.js.snap24
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Nav.test.js.snap22
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Order.test.js.snap24
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Pagination.test.js.snap26
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/RemoveFromCart.test.js.snap4
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/RequestReset.test.js.snap (renamed from finished-application/frontend/__tests__/__snapshots__/ResetRequest.test.js.snap)18
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/Signup.test.js.snap16
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/SingleItem.test.js.snap10
-rw-r--r--finished-application/frontend/__tests__/__snapshots__/TakeMyMoney.test.js.snap8
-rw-r--r--finished-application/frontend/__tests__/formatMoney.test.js6
-rw-r--r--finished-application/frontend/__tests__/mocking.test.js36
-rw-r--r--finished-application/frontend/__tests__/sample.test.js19
-rw-r--r--finished-application/frontend/components/AddToCart.js62
-rw-r--r--finished-application/frontend/components/Cart.js52
-rw-r--r--finished-application/frontend/components/CartCount.js42
-rw-r--r--finished-application/frontend/components/CartItem.js16
-rw-r--r--finished-application/frontend/components/CreateItem.js96
-rw-r--r--finished-application/frontend/components/DeleteItem.js55
-rw-r--r--finished-application/frontend/components/Dump.js19
-rw-r--r--finished-application/frontend/components/EditUser.js81
-rw-r--r--finished-application/frontend/components/Header.js56
-rw-r--r--finished-application/frontend/components/Item.js23
-rw-r--r--finished-application/frontend/components/Items.js49
-rw-r--r--finished-application/frontend/components/LoadingItem.js22
-rw-r--r--finished-application/frontend/components/Meta.js17
-rw-r--r--finished-application/frontend/components/Nav.js82
-rw-r--r--finished-application/frontend/components/Order.js30
-rw-r--r--finished-application/frontend/components/OrderList.js39
-rw-r--r--finished-application/frontend/components/Page.js63
-rw-r--r--finished-application/frontend/components/Pagination.js35
-rw-r--r--finished-application/frontend/components/Permissions.js172
-rw-r--r--finished-application/frontend/components/PleaseSignIn.js26
-rw-r--r--finished-application/frontend/components/RemoveFromCart.js30
-rw-r--r--finished-application/frontend/components/RequestReset.js (renamed from finished-application/frontend/components/ResetRequest.js)33
-rw-r--r--finished-application/frontend/components/Reset.js55
-rw-r--r--finished-application/frontend/components/Search.js85
-rw-r--r--finished-application/frontend/components/Signin.js33
-rw-r--r--finished-application/frontend/components/Signout.js16
-rw-r--r--finished-application/frontend/components/Signup.js30
-rw-r--r--finished-application/frontend/components/SingleItem.js95
-rw-r--r--finished-application/frontend/components/TakeMyMoney.js36
-rw-r--r--finished-application/frontend/components/UpdateItem.js110
-rw-r--r--finished-application/frontend/components/User.js10
-rw-r--r--finished-application/frontend/components/styles/DropDown.js47
-rw-r--r--finished-application/frontend/components/styles/NavStyles.js2
-rw-r--r--finished-application/frontend/components/styles/OrderStyles.js1
-rw-r--r--finished-application/frontend/components/styles/Table.js6
-rw-r--r--finished-application/frontend/config.js3
-rw-r--r--finished-application/frontend/lib/withData.js15
-rw-r--r--finished-application/frontend/package-lock.json2939
-rw-r--r--finished-application/frontend/package.json52
-rw-r--r--finished-application/frontend/pages/.gitkeep0
-rw-r--r--finished-application/frontend/pages/_app.js11
-rw-r--r--finished-application/frontend/pages/_document.js4
-rw-r--r--finished-application/frontend/pages/add.js10
-rw-r--r--finished-application/frontend/pages/diagram.js202
-rw-r--r--finished-application/frontend/pages/index.js6
-rw-r--r--finished-application/frontend/pages/item.js8
-rw-r--r--finished-application/frontend/pages/items.js4
-rw-r--r--finished-application/frontend/pages/me.js13
-rw-r--r--finished-application/frontend/pages/order.js7
-rw-r--r--finished-application/frontend/pages/orders.js14
-rw-r--r--finished-application/frontend/pages/permissions.js14
-rw-r--r--finished-application/frontend/pages/reset.js10
-rw-r--r--finished-application/frontend/pages/sell.js12
-rw-r--r--finished-application/frontend/pages/signup.js10
-rw-r--r--finished-application/frontend/pages/update.js18
91 files changed, 2457 insertions, 3881 deletions
diff --git a/finished-application/frontend/.vscode/settings.json b/finished-application/frontend/.vscode/settings.json
deleted file mode 100644
index 2fd8efc..0000000
--- a/finished-application/frontend/.vscode/settings.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "workbench.colorCustomizations": {
- "titleBar.activeForeground": "#000",
- "titleBar.inactiveForeground": "#000000CC",
- "titleBar.activeBackground": "#FFC600",
- "titleBar.inactiveBackground": "#FFC600CC"
- }
diff --git a/finished-application/frontend/README.md b/finished-application/frontend/README.md
deleted file mode 100644
index 9914799..0000000
--- a/finished-application/frontend/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Advanced-React
-
-<!--
-## Marketing
-
-I love this look and feel: http://wes.io/lxQe
-https://www.youtube.com/watch?v=Y0ePh9OxSWo
-
-
-
-Descriptions for Images
-
-Nudie Belt
-
-Our accessories are all about genuine leather and denim. Belts, leather wallets cases, denim bags, Knitted hats and scarves in wool or organic cotton. For our leather accessories, we only use vegetable tanned leather. Leather accessories will acquire a patina and become more beautiful the longer you use them.
-
-Triple Black Ultra Boost
-
-Ultraboost is the ultimate running shoe that delivers constant energy returns. The more you run the more energy you bring to your life.
-
-Patagonia Black Hole
-
-The Black Hole Duffle is highly weather-resistant, and protects your gear from rough handling. The U-shaped lid allows quick access to the main compartment, while 2 zippered internal mesh pockets keep small items organized. A padded bottom panel adds structure and helps cushion the load when it gets tossed out of the vehicle or dropped from the pack mule.
-
-Yeti cooler
-
-Keep your brie and bevies chilly. Heavy-duty insulation ensures cold temperatures persist. A self-stopping hinge and Yeti-tough details are durable. Non-slip rubber feet keep your drinks and snacks orderly through whitewater or rough approaches to the picnic site.
-
-Black Vapor Max
-
-With the radically reinvented VaporMax Air cushioning unit, the Nike Air VaporMax not only defies convention, it delivers a sensation that seems to defy gravity.
-
-Naked and Famous Jeans
-
-Naked & Famous Denim uses only the most unique and rare selvedge denim fabrics from Japan, with the best style and fits around. Made in Canada.
-
-
-Rimowa Suitcase
-
-RIMOWA is one of Europe's leading manufacturers of premium travel and carry-on luggage made of aluminum and polycarbonate.
-
-
-Canada goose Macmillian
-
-The MacMillan Parka offers active urban style with a quilt-through design and curved hem cut. Canada Goose.
-
-## The North Face Fanorak
-
-This versatile pullover offers wind and rain resistance, and packs into its own stylish fanny-pack-style kangaroo pocket.
-
-
-Kith Hoodie
-
-Hat
-
-270s
-
--->
-
diff --git a/finished-application/frontend/__tests__/AddToCart.test.js b/finished-application/frontend/__tests__/AddToCart.test.js
index fe15f3f..cfc2e3e 100644
--- a/finished-application/frontend/__tests__/AddToCart.test.js
+++ b/finished-application/frontend/__tests__/AddToCart.test.js
@@ -1,12 +1,11 @@
-import React from 'react';
import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
-import { ApolloConsumer } from 'react-apollo';
import { MockedProvider } from 'react-apollo/test-utils';
-import wait from 'waait';
+import { ApolloConsumer } from 'react-apollo';
import AddToCart, { ADD_TO_CART_MUTATION } from '../components/AddToCart';
-import { fakeCartItem, fakeUser } from '../lib/testUtils';
import { CURRENT_USER_QUERY } from '../components/User';
+import { fakeUser, fakeCartItem } from '../lib/testUtils';
const mocks = [
{
@@ -21,6 +20,17 @@ const mocks = [
},
},
{
+ request: { query: CURRENT_USER_QUERY },
+ result: {
+ data: {
+ me: {
+ ...fakeUser(),
+ cart: [fakeCartItem()],
+ },
+ },
+ },
+ },
+ {
request: { query: ADD_TO_CART_MUTATION, variables: { id: 'abc123' } },
result: {
data: {
@@ -33,8 +43,8 @@ const mocks = [
},
];
-describe('<AddtoCart/>', () => {
- it('renders and matches snapshot', async () => {
+describe('<AddToCart/>', () => {
+ it('renders and matches the snap shot', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
<AddToCart id="abc123" />
@@ -42,14 +52,11 @@ describe('<AddtoCart/>', () => {
);
await wait();
wrapper.update();
-
expect(toJSON(wrapper.find('button'))).toMatchSnapshot();
});
- it('adds an item to the cart when clicked', async () => {
- // 1. Grab a copy of the current client
+ it('adds an item to cart when clicked', async () => {
let apolloClient;
- // const wrapper = mountWithApollo(<RemoveFromCart id="abc123" />);
const wrapper = mount(
<MockedProvider mocks={mocks}>
<ApolloConsumer>
@@ -62,22 +69,20 @@ describe('<AddtoCart/>', () => {
);
await wait();
wrapper.update();
-
- const { me } = apolloClient.readQuery({ query: CURRENT_USER_QUERY });
+ const { data: { me } } = await apolloClient.query({ query: CURRENT_USER_QUERY });
+ // console.log(me);
expect(me.cart).toHaveLength(0);
-
- // add to cart
+ // add an item to the cart
wrapper.find('button').simulate('click');
await wait();
// check if the item is in the cart
- const { me: me2 } = apolloClient.readQuery({ query: CURRENT_USER_QUERY });
-
+ const { data: { me: me2 } } = await apolloClient.query({ query: CURRENT_USER_QUERY });
expect(me2.cart).toHaveLength(1);
expect(me2.cart[0].id).toBe('omg123');
- expect(me2.cart[0].quantity).toBe(1);
+ expect(me2.cart[0].quantity).toBe(3);
});
- it('changes to adding when clicked', async () => {
+ it('changes from add to adding when clicked', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
<AddToCart id="abc123" />
@@ -85,8 +90,8 @@ describe('<AddtoCart/>', () => {
);
await wait();
wrapper.update();
- expect(wrapper.text()).toContain('🛒 Add To Cart');
+ expect(wrapper.text()).toContain('Add To Cart');
wrapper.find('button').simulate('click');
- expect(wrapper.text()).toContain('🛒 Adding To Cart');
+ expect(wrapper.text()).toContain('Adding To Cart');
});
});
diff --git a/finished-application/frontend/__tests__/Cart.test.js b/finished-application/frontend/__tests__/Cart.test.js
index 255183e..b8afc88 100644
--- a/finished-application/frontend/__tests__/Cart.test.js
+++ b/finished-application/frontend/__tests__/Cart.test.js
@@ -1,13 +1,10 @@
-import React from 'react';
-import { shallow, mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
-import mountOptions from '../lib/testUtils';
+import { mount } from 'enzyme';
import wait from 'waait';
-import Cart from '../components/Cart';
+import toJSON from 'enzyme-to-json';
import { MockedProvider } from 'react-apollo/test-utils';
-import { fakeCartItem, fakeUser } from '../lib/testUtils';
+import Cart, { LOCAL_STATE_QUERY } from '../components/Cart';
import { CURRENT_USER_QUERY } from '../components/User';
-import { LOCAL_STATE_QUERY } from '../components/Cart';
+import { fakeUser, fakeCartItem } from '../lib/testUtils';
const mocks = [
{
@@ -23,16 +20,12 @@ const mocks = [
},
{
request: { query: LOCAL_STATE_QUERY },
- result: {
- data: {
- cartOpen: true,
- },
- },
+ result: { data: { cartOpen: true } },
},
];
describe('<Cart/>', () => {
- it('renders', async () => {
+ it('renders and matches snappy', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
<Cart />
diff --git a/finished-application/frontend/__tests__/CartCount.test.js b/finished-application/frontend/__tests__/CartCount.test.js
index dcb9ca8..8ace3da 100644
--- a/finished-application/frontend/__tests__/CartCount.test.js
+++ b/finished-application/frontend/__tests__/CartCount.test.js
@@ -1,19 +1,19 @@
-import React from 'react';
import { shallow, mount } from 'enzyme';
import toJSON from 'enzyme-to-json';
import CartCount from '../components/CartCount';
-describe('<CartCount></CartCount>', () => {
- it('renders okay', () => {
+describe('<CartCount/>', () => {
+ it('renders', () => {
shallow(<CartCount count={10} />);
});
- it('matches snapshot', () => {
- const wrapper = shallow(<CartCount count={10} />);
+ it('matches the snapshot', () => {
+ const wrapper = shallow(<CartCount count={11} />);
expect(toJSON(wrapper)).toMatchSnapshot();
});
+
it('updates via props', () => {
- const wrapper = mount(<CartCount count={50} />);
+ const wrapper = shallow(<CartCount count={50} />);
expect(toJSON(wrapper)).toMatchSnapshot();
wrapper.setProps({ count: 10 });
expect(toJSON(wrapper)).toMatchSnapshot();
diff --git a/finished-application/frontend/__tests__/CartItem.test.js b/finished-application/frontend/__tests__/CartItem.test.js
deleted file mode 100644
index 42dd39b..0000000
--- a/finished-application/frontend/__tests__/CartItem.test.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import React from 'react';
-import { shallow, mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
-import CartItem from '../components/CartItem';
-
-const cartItem = {
- item: {
- price: 5000,
- image: 'dog.jpg',
- title: 'Fake Item',
- },
- id: 'abc123',
- quantity: 20,
-};
-
-describe('<CartItem>', () => {
- it('renders and matches snapshot', () => {
- const wrapper = shallow(<CartItem cartItem={cartItem} />);
- expect(toJSON(wrapper)).toMatchSnapshot();
- });
-
- it('renders a single quantity', () => {
- const wrapper = shallow(<CartItem cartItem={{ ...cartItem, quantity: 1 }} />);
- const p = wrapper.find('p');
- expect(p.text()).toBe('$50 — 1 × $50 each');
- });
-
- it('renders multiples', () => {
- const wrapper = shallow(<CartItem cartItem={{ ...cartItem, quantity: 23423 }} />);
- const p = wrapper.find('p');
- expect(p.text()).toBe('$1,171,150 — 23423 × $50 each');
- });
-});
diff --git a/finished-application/frontend/__tests__/CreateItem.test.js b/finished-application/frontend/__tests__/CreateItem.test.js
index 56c3f10..6e88d94 100644
--- a/finished-application/frontend/__tests__/CreateItem.test.js
+++ b/finished-application/frontend/__tests__/CreateItem.test.js
@@ -1,15 +1,14 @@
-import React from 'react';
import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
import Router from 'next/router';
import { MockedProvider } from 'react-apollo/test-utils';
import CreateItem, { CREATE_ITEM_MUTATION } from '../components/CreateItem';
-import wait from 'waait';
import { fakeItem } from '../lib/testUtils';
const dogImage = 'https://dog.com/dog.jpg';
-// Mock fetch to resolve data
+// mock the global fetch API
global.fetch = jest.fn().mockResolvedValue({
json: () => ({
secure_url: dogImage,
@@ -17,14 +16,14 @@ global.fetch = jest.fn().mockResolvedValue({
}),
});
-describe('<Createitem/>', () => {
- it('renders and matches snapshot', () => {
+describe('<CreateItem/>', () => {
+ it('renders and matches snapshot', async () => {
const wrapper = mount(
<MockedProvider>
<CreateItem />
</MockedProvider>
);
- const form = wrapper.find('form[data-test]');
+ const form = wrapper.find('form[data-test="form"]');
expect(toJSON(form)).toMatchSnapshot();
});
@@ -34,14 +33,14 @@ describe('<Createitem/>', () => {
<CreateItem />
</MockedProvider>
);
- const component = wrapper.find('CreateItem').instance();
-
const input = wrapper.find('input[type="file"]');
- // internally this does some setState() calls
- input.simulate('change', { currentTarget: { files: ['fakedog.jpg'] } });
- await wait(0);
+ input.simulate('change', { target: { files: ['fakedog.jpg'] } });
+ await wait();
+ const component = wrapper.find('CreateItem').instance();
expect(component.state.image).toEqual(dogImage);
expect(component.state.largeImage).toEqual(dogImage);
+ expect(global.fetch).toHaveBeenCalled();
+ global.fetch.mockReset();
});
it('handles state updating', async () => {
@@ -50,32 +49,21 @@ describe('<Createitem/>', () => {
<CreateItem />
</MockedProvider>
);
-
wrapper.find('#title').simulate('change', { target: { value: 'Testing', name: 'title' } });
- wrapper.find('#price').simulate('change', {
- target: {
- value: 50000,
- name: 'price',
- type: 'number',
- },
- });
- wrapper.find('#description').simulate('change', {
- target: {
- value: 'This is a really nice item',
- name: 'description',
- },
- });
- const component = wrapper.find('CreateItem').instance();
- expect(component.state).toMatchObject({
+ wrapper
+ .find('#price')
+ .simulate('change', { target: { value: 50000, name: 'price', type: 'number' } });
+ wrapper
+ .find('#description')
+ .simulate('change', { target: { value: 'This is a really nice item', name: 'description' } });
+
+ expect(wrapper.find('CreateItem').instance().state).toMatchObject({
title: 'Testing',
- description: 'This is a really nice item',
- image: '',
- largeImage: '',
price: 50000,
+ description: 'This is a really nice item',
});
});
-
- it('creates an item when form is submitted', async () => {
+ it('creates an item when the form is submitted', async () => {
const item = fakeItem();
const mocks = [
{
@@ -92,8 +80,9 @@ describe('<Createitem/>', () => {
result: {
data: {
createItem: {
- ...fakeItem(),
- __typeName: 'Item',
+ ...fakeItem,
+ id: 'abc123',
+ __typename: 'Item',
},
},
},
@@ -105,28 +94,19 @@ describe('<Createitem/>', () => {
<CreateItem />
</MockedProvider>
);
-
+ // simulate someone filling out the form
wrapper.find('#title').simulate('change', { target: { value: item.title, name: 'title' } });
- wrapper.find('#price').simulate('change', {
- target: {
- value: item.price,
- name: 'price',
- type: 'number',
- },
- });
- wrapper.find('#description').simulate('change', {
- target: {
- value: item.description,
- name: 'description',
- },
- });
-
+ wrapper
+ .find('#price')
+ .simulate('change', { target: { value: item.price, name: 'price', type: 'number' } });
+ wrapper
+ .find('#description')
+ .simulate('change', { target: { value: item.description, name: 'description' } });
+ // mock the router
Router.router = { push: jest.fn() };
- // it submits and matches the mocks
wrapper.find('form').simulate('submit');
- // it routes to the item page
await wait(50);
expect(Router.router.push).toHaveBeenCalled();
- expect(Router.router.push).toHaveBeenCalledWith({ pathname: '/item', query: { id: '123' } });
+ expect(Router.router.push).toHaveBeenCalledWith({ pathname: '/item', query: { id: 'abc123' } });
});
});
diff --git a/finished-application/frontend/__tests__/EditUser.test.js b/finished-application/frontend/__tests__/EditUser.test.js
deleted file mode 100644
index a98cbb5..0000000
--- a/finished-application/frontend/__tests__/EditUser.test.js
+++ /dev/null
@@ -1,75 +0,0 @@
-import React from 'react';
-import { mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
-import { MockedProvider } from 'react-apollo/test-utils';
-import wait from 'waait';
-import EditUser, { UPDATE_USER_MUTATION } from '../components/EditUser';
-import { fakeUser } from '../lib/testUtils';
-import { CURRENT_USER_QUERY } from '../components/User';
-
-const mocks = [
- {
- request: { query: CURRENT_USER_QUERY },
- result: {
- data: {
- me: fakeUser(),
- },
- },
- },
- {
- request: {
- query: UPDATE_USER_MUTATION,
- variables: {
- name: 'Westopher',
- },
- },
- result: {
- updateUser: {
- name: 'Westopher',
- __typename: 'User',
- },
- },
- },
-];
-
-describe('<EditUser/>', () => {
- it('renders', async () => {
- const wrapper = mount(
- <MockedProvider mocks={mocks}>
- <EditUser />
- </MockedProvider>
- );
- await wait();
- wrapper.update();
- expect(toJSON(wrapper.find('form'))).toMatchSnapshot();
- });
-
- it('displays changes', async () => {
- const wrapper = mount(
- <MockedProvider mocks={mocks}>
- <EditUser />
- </MockedProvider>
- );
- await wait();
- wrapper.update();
- const nameInput = wrapper.find('[name="name"]');
- nameInput.simulate('change', { target: { name: 'name', value: 'Scott' } });
- const diff = wrapper.find('pre[data-test="change"]');
- expect(diff.text()).toBe('{"name":"Scott"}');
- });
-
- it('calls update user when form is submitted', async () => {
- const wrapper = mount(
- <MockedProvider mocks={mocks}>
- <EditUser />
- </MockedProvider>
- );
- await wait();
- wrapper.update();
- const nameInput = wrapper.find('[name="name"]');
- nameInput.simulate('change', { target: { name: 'name', value: 'Westopher' } });
- wrapper.find('form').simulate('submit');
- wrapper.update();
- expect(wrapper.find('[data-test="updated"]').text()).toBe('Updated!');
- });
-});
diff --git a/finished-application/frontend/__tests__/Item.test.js b/finished-application/frontend/__tests__/Item.test.js
index 129efa9..692b913 100644
--- a/finished-application/frontend/__tests__/Item.test.js
+++ b/finished-application/frontend/__tests__/Item.test.js
@@ -1,22 +1,39 @@
-/* eslint-env jest */
-
-import React from 'react';
-import Enzyme, { shallow, mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
import ItemComponent from '../components/Item';
+import { shallow, mount } from 'enzyme';
+import toJSON from 'enzyme-to-json';
const fakeItem = {
id: 'ABC123',
title: 'A Cool Item',
- price: 5000,
+ price: 4000,
description: 'This item is really cool!',
image: 'dog.jpg',
largeImage: 'largedog.jpg',
};
describe('<Item/>', () => {
- it('Renders and matches snapshot', () => {
+ it('renders and matches the snapshot', () => {
const wrapper = shallow(<ItemComponent item={fakeItem} />);
expect(toJSON(wrapper)).toMatchSnapshot();
});
+ // it('renders the image properly', () => {
+ // const wrapper = shallow(<ItemComponent item={fakeItem} />);
+ // const img = wrapper.find('img');
+ // expect(img.props().src).toBe(fakeItem.image);
+ // expect(img.props().alt).toBe(fakeItem.title);
+ // });
+ // it('renders the pricetag and title', () => {
+ // const wrapper = shallow(<ItemComponent item={fakeItem} />);
+ // const PriceTag = wrapper.find('PriceTag');
+ // expect(PriceTag.children().text()).toBe('$50');
+ // expect(wrapper.find('Title a').text()).toBe(fakeItem.title);
+ // });
+ // it('renders out the buttons properly', () => {
+ // const wrapper = shallow(<ItemComponent item={fakeItem} />);
+ // const buttonList = wrapper.find('.buttonList');
+ // expect(buttonList.children()).toHaveLength(3);
+ // expect(buttonList.find('Link')).toHaveLength(1);
+ // expect(buttonList.find('AddToCart').exists()).toBe(true);
+ // expect(buttonList.find('DeleteItem').exists()).toBe(true);
+ // });
});
diff --git a/finished-application/frontend/__tests__/Nav.test.js b/finished-application/frontend/__tests__/Nav.test.js
index 5c61c56..d30cb39 100644
--- a/finished-application/frontend/__tests__/Nav.test.js
+++ b/finished-application/frontend/__tests__/Nav.test.js
@@ -1,66 +1,76 @@
-import React from 'react';
import { mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
import wait from 'waait';
-import Router from 'next/router';
+import toJSON from 'enzyme-to-json';
import Nav from '../components/Nav';
-import { MockedProvider } from 'react-apollo/test-utils';
-import { fakeUser } from '../lib/testUtils';
import { CURRENT_USER_QUERY } from '../components/User';
+import { MockedProvider } from 'react-apollo/test-utils';
+import { fakeUser, fakeCartItem } from '../lib/testUtils';
-// Mock the router
-Router.router = { push() {} };
+const notSignedInMocks = [
+ {
+ request: { query: CURRENT_USER_QUERY },
+ result: { data: { me: null } },
+ },
+];
-const loggedOutMocks = [
+const signedInMocks = [
{
request: { query: CURRENT_USER_QUERY },
- delay: 0,
- result: {
- data: {
- me: null,
- },
- },
+ result: { data: { me: fakeUser() } },
},
];
-const loggedInMocks = [
+const signedInMocksWithCartItems = [
{
request: { query: CURRENT_USER_QUERY },
result: {
data: {
- what: 'yah',
me: {
...fakeUser(),
- orders: [],
- cart: [],
+ cart: [fakeCartItem(), fakeCartItem(), fakeCartItem()],
},
},
},
},
];
-describe('<Nav></Nav>', () => {
- it('Renders minimal nav when logged out', () => {
+describe('<Nav/>', () => {
+ it('renders a minimal nav when signed out', async () => {
const wrapper = mount(
- <MockedProvider mocks={loggedOutMocks}>
+ <MockedProvider mocks={notSignedInMocks}>
<Nav />
</MockedProvider>
);
+ await wait();
+ wrapper.update();
+ // console.log(wrapper.debug());
const nav = wrapper.find('ul[data-test="nav"]');
expect(toJSON(nav)).toMatchSnapshot();
});
- it('renders full nav when logged in', async () => {
+ it('renders full nav when signed in', async () => {
const wrapper = mount(
- <MockedProvider mocks={loggedInMocks}>
+ <MockedProvider mocks={signedInMocks}>
<Nav />
</MockedProvider>
);
await wait();
wrapper.update();
const nav = wrapper.find('ul[data-test="nav"]');
- // account link
- const accountLink = wrapper.find('a[href="/me"]');
- expect(accountLink.length).toBe(1);
+ expect(nav.children().length).toBe(6);
+ expect(nav.text()).toContain('Sign Out');
+ });
+
+ it('renders the amount of items in the cart', async () => {
+ const wrapper = mount(
+ <MockedProvider mocks={signedInMocksWithCartItems}>
+ <Nav />
+ </MockedProvider>
+ );
+ await wait();
+ wrapper.update();
+ const nav = wrapper.find('[data-test="nav"]');
+ const count = nav.find('div.count');
+ expect(toJSON(count)).toMatchSnapshot();
});
});
diff --git a/finished-application/frontend/__tests__/Order.test.js b/finished-application/frontend/__tests__/Order.test.js
index f3a4f06..71accfa 100644
--- a/finished-application/frontend/__tests__/Order.test.js
+++ b/finished-application/frontend/__tests__/Order.test.js
@@ -1,4 +1,3 @@
-import React from 'react';
import { mount } from 'enzyme';
import toJSON from 'enzyme-to-json';
import wait from 'waait';
@@ -8,32 +7,19 @@ import { fakeOrder } from '../lib/testUtils';
const mocks = [
{
- request: { query: SINGLE_ORDER_QUERY, variables: { id: '123' } },
- result: {
- data: {
- order: fakeOrder(),
- },
- },
+ request: { query: SINGLE_ORDER_QUERY, variables: { id: 'ord123' } },
+ result: { data: { order: fakeOrder() } },
},
];
describe('<Order/>', () => {
- it('Renders loading state', async () => {
+ it('renders the order', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
- <Order id="123" />
+ <Order id="ord123" />
</MockedProvider>
);
- expect(wrapper.text()).toContain('Loading...');
- });
-
- it('Renders the order', async () => {
- const wrapper = mount(
- <MockedProvider mocks={mocks}>
- <Order id="123" />
- </MockedProvider>
- );
- await wait(50);
+ await wait();
wrapper.update();
const order = wrapper.find('div[data-test="order"]');
expect(toJSON(order)).toMatchSnapshot();
diff --git a/finished-application/frontend/__tests__/Pagination.test.js b/finished-application/frontend/__tests__/Pagination.test.js
index 29a57f9..7117db8 100644
--- a/finished-application/frontend/__tests__/Pagination.test.js
+++ b/finished-application/frontend/__tests__/Pagination.test.js
@@ -1,20 +1,19 @@
-import React from 'react';
-import { shallow, mount } from 'enzyme';
+import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
+import Router from 'next/router';
import Pagination, { PAGINATION_QUERY } from '../components/Pagination';
import { MockedProvider } from 'react-apollo/test-utils';
-import wait from 'waait';
-import { fakeItem } from '../lib/testUtils';
-
-import Router from 'next/router';
-// mock the router because there isn't really a router instance
-Router.router = { push() {}, prefetch() {} };
+Router.router = {
+ push() {},
+ prefetch() {},
+};
function makeMocksFor(length) {
return [
{
- request: { query: PAGINATION_QUERY, variables: { skip: 0, first: 4 } },
+ request: { query: PAGINATION_QUERY },
result: {
data: {
itemsConnection: {
@@ -31,15 +30,14 @@ function makeMocksFor(length) {
}
describe('<Pagination/>', () => {
- it('displays loading message', async () => {
+ it('displays a loading message', () => {
const wrapper = mount(
<MockedProvider mocks={makeMocksFor(1)}>
<Pagination page={1} />
</MockedProvider>
);
- await wait();
- wrapper.update();
- expect(toJSON(wrapper.find('div[data-test="pagination"]'))).toMatchSnapshot();
+ const pagination = wrapper.find('[data-test="pagination"]');
+ expect(wrapper.text()).toContain('Loading...');
});
it('renders pagination for 18 items', async () => {
@@ -51,6 +49,8 @@ describe('<Pagination/>', () => {
await wait();
wrapper.update();
expect(wrapper.find('.totalPages').text()).toEqual('5');
+ const pagination = wrapper.find('div[data-test="pagination"]');
+ expect(toJSON(pagination)).toMatchSnapshot();
});
it('disables prev button on first page', async () => {
@@ -61,11 +61,9 @@ describe('<Pagination/>', () => {
);
await wait();
wrapper.update();
- // first page
expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(true);
expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(false);
});
-
it('disables next button on last page', async () => {
const wrapper = mount(
<MockedProvider mocks={makeMocksFor(18)}>
@@ -74,20 +72,17 @@ describe('<Pagination/>', () => {
);
await wait();
wrapper.update();
- // first page
expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(false);
expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(true);
});
-
it('enables all buttons on a middle page', async () => {
const wrapper = mount(
<MockedProvider mocks={makeMocksFor(18)}>
- <Pagination page={2} />
+ <Pagination page={3} />
</MockedProvider>
);
await wait();
wrapper.update();
- // first page
expect(wrapper.find('a.prev').prop('aria-disabled')).toEqual(false);
expect(wrapper.find('a.next').prop('aria-disabled')).toEqual(false);
});
diff --git a/finished-application/frontend/__tests__/PleaseSignIn.test.js b/finished-application/frontend/__tests__/PleaseSignIn.test.js
index f516ea3..7d476b4 100644
--- a/finished-application/frontend/__tests__/PleaseSignIn.test.js
+++ b/finished-application/frontend/__tests__/PleaseSignIn.test.js
@@ -1,80 +1,51 @@
-import React from 'react';
import { mount } from 'enzyme';
import wait from 'waait';
import PleaseSignIn from '../components/PleaseSignIn';
+import { CURRENT_USER_QUERY } from '../components/User';
import { MockedProvider } from 'react-apollo/test-utils';
import { fakeUser } from '../lib/testUtils';
-import { CURRENT_USER_QUERY } from '../components/User';
const notSignedInMocks = [
{
request: { query: CURRENT_USER_QUERY },
- result: {
- data: {
- me: null,
- },
- },
+ result: { data: { me: null } },
},
];
const signedInMocks = [
{
request: { query: CURRENT_USER_QUERY },
- result: {
- data: {
- me: {
- ...fakeUser(),
- permissions: ['VIEW_HEY'],
- },
- },
- },
+ result: { data: { me: fakeUser() } },
},
];
-// some dummy child component
-const Hey = () => <p>Hey!</p>;
-describe('<PleaseSignIn />', () => {
- it('renders sign in dialog to logged out users', async () => {
+describe('<PleaseSignIn/>', () => {
+ it('renders the sign in dialog to logged out users', async () => {
const wrapper = mount(
<MockedProvider mocks={notSignedInMocks}>
- <PleaseSignIn allowedPermissions={[]}>
- <Hey />
- </PleaseSignIn>
+ <PleaseSignIn />
</MockedProvider>
);
await wait();
wrapper.update();
- // find the error message
- expect(wrapper.text()).toContain('Please sign in before continuing!');
- // show the sign in dialog
- expect(wrapper.find('Signin').exists()).toBeTruthy();
+ expect(wrapper.text()).toContain('Please Sign In before Continuing');
+ const SignIn = wrapper.find('Signin');
+ expect(SignIn.exists()).toBe(true);
});
- it('renders child for correct permissions', async () => {
- const wrapper = mount(
- <MockedProvider mocks={signedInMocks}>
- <PleaseSignIn allowedPermissions={['ADMIN', 'VIEW_HEY']}>
- <Hey />
- </PleaseSignIn>
- </MockedProvider>
- );
- await wait();
- wrapper.update();
- expect(wrapper.find('Hey').exists()).toBeTruthy();
- });
- it("renders error when permissions aren't met", async () => {
+ it('renders the child component when the user is signed in', async () => {
+ const Hey = () => <p>Hey!</p>;
const wrapper = mount(
<MockedProvider mocks={signedInMocks}>
- <PleaseSignIn allowedPermissions={['ADMIN']}>
+ <PleaseSignIn>
<Hey />
</PleaseSignIn>
</MockedProvider>
);
+
await wait();
wrapper.update();
- // should tell you you can't access it
- expect(wrapper.text()).toContain('Insufficient Permissions');
- // it should not render the child component
- expect(wrapper.find('Hey').exists()).toBeFalsy();
+ // expect(wrapper.find('Hey').exists()).toBe(true);
+ expect(wrapper.contains(<Hey />)).toBe(true);
});
});
diff --git a/finished-application/frontend/__tests__/RemoveFromCart.test.js b/finished-application/frontend/__tests__/RemoveFromCart.test.js
index 34229a5..faacc91 100644
--- a/finished-application/frontend/__tests__/RemoveFromCart.test.js
+++ b/finished-application/frontend/__tests__/RemoveFromCart.test.js
@@ -1,12 +1,13 @@
-import React from 'react';
import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
-import { ApolloConsumer } from 'react-apollo';
import { MockedProvider } from 'react-apollo/test-utils';
-import wait from 'waait';
+import { ApolloConsumer } from 'react-apollo';
import RemoveFromCart, { REMOVE_FROM_CART_MUTATION } from '../components/RemoveFromCart';
-import { fakeCartItem, fakeUser } from '../lib/testUtils';
import { CURRENT_USER_QUERY } from '../components/User';
+import { fakeUser, fakeCartItem } from '../lib/testUtils';
+
+global.alert = console.log;
const mocks = [
{
@@ -16,17 +17,12 @@ const mocks = [
me: {
...fakeUser(),
cart: [fakeCartItem({ id: 'abc123' })],
- orders: [],
},
},
},
},
{
- request: {
- // This is the mutation
- query: REMOVE_FROM_CART_MUTATION,
- variables: { id: 'abc123' },
- },
+ request: { query: REMOVE_FROM_CART_MUTATION, variables: { id: 'abc123' } },
result: {
data: {
removeFromCart: {
@@ -39,19 +35,17 @@ const mocks = [
];
describe('<RemoveFromCart/>', () => {
- it('renders and matches snapshot', () => {
+ it('renders and matches snapshot', async () => {
const wrapper = mount(
- <MockedProvider mocks={mocks}>
+ <MockedProvider>
<RemoveFromCart id="abc123" />
</MockedProvider>
);
expect(toJSON(wrapper.find('button'))).toMatchSnapshot();
});
- it('removes an item from the cart', async () => {
- // 1. Grab a copy of the current client
+ it('removes the item from cart', async () => {
let apolloClient;
- // const wrapper = mountWithApollo(<RemoveFromCart id="abc123" />);
const wrapper = mount(
<MockedProvider mocks={mocks}>
<ApolloConsumer>
@@ -62,17 +56,12 @@ describe('<RemoveFromCart/>', () => {
</ApolloConsumer>
</MockedProvider>
);
- // Fire Off that first mock
- await apolloClient.query({ query: CURRENT_USER_QUERY });
- // check if it worked
- const { me } = apolloClient.readQuery({ query: CURRENT_USER_QUERY });
- expect(me.cart).toHaveLength(1);
- expect(me.cart[0].item.price).toBe(5000);
-
- // simulate a click, which will fire REMOVE_FROM_CART mock
+ const res = await apolloClient.query({ query: CURRENT_USER_QUERY });
+ expect(res.data.me.cart).toHaveLength(1);
+ expect(res.data.me.cart[0].item.price).toBe(5000);
wrapper.find('button').simulate('click');
await wait();
- const { me: me2 } = apolloClient.readQuery({ query: CURRENT_USER_QUERY });
- expect(me2.cart).toHaveLength(0);
+ const res2 = await apolloClient.query({ query: CURRENT_USER_QUERY });
+ expect(res2.data.me.cart).toHaveLength(0);
});
});
diff --git a/finished-application/frontend/__tests__/ResetRequest.test.js b/finished-application/frontend/__tests__/RequestReset.test.js
index 22a9508..345b365 100644
--- a/finished-application/frontend/__tests__/ResetRequest.test.js
+++ b/finished-application/frontend/__tests__/RequestReset.test.js
@@ -1,54 +1,46 @@
import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
import { MockedProvider } from 'react-apollo/test-utils';
-import wait from 'waait';
-import ResetRequest, { REQUEST_RESET_MUTATION } from '../components/ResetRequest';
+import RequestReset, { REQUEST_RESET_MUTATION } from '../components/RequestReset';
const mocks = [
{
request: {
query: REQUEST_RESET_MUTATION,
- variables: {
- email: 'wesbos@gmail.com',
- },
+ variables: { email: 'wesbos@gmail.com' },
},
result: {
- data: {
- requestReset: { id: 'abc123', __typename: 'User' },
- },
+ data: { requestReset: { message: 'success', __typename: 'Message' } },
},
},
];
-describe('<ResetRequest/>', () => {
+describe('<RequestReset/>', () => {
it('renders and matches snapshot', async () => {
const wrapper = mount(
<MockedProvider>
- <ResetRequest />
+ <RequestReset />
</MockedProvider>
);
- const form = wrapper.find("form[data-test='ResetRequest']");
+ const form = wrapper.find('form[data-test="form"]');
expect(toJSON(form)).toMatchSnapshot();
});
it('calls the mutation', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
- <ResetRequest />
+ <RequestReset />
</MockedProvider>
);
-
- wrapper.find('input').simulate('change', {
- target: { value: 'wesbos@gmail.com' },
- });
-
+ // simulate typing an email
+ wrapper
+ .find('input')
+ .simulate('change', { target: { name: 'email', value: 'wesbos@gmail.com' } });
// submit the form
- const form = wrapper.find('form');
- console.log(form);
- form.simulate('submit');
-
+ wrapper.find('form').simulate('submit');
await wait();
wrapper.update();
- expect(wrapper.find('p').text()).toContain('Success! Check Your Email!');
+ expect(wrapper.find('p').text()).toContain('Success! Check your email for a reset link!');
});
});
diff --git a/finished-application/frontend/__tests__/Signup.test.js b/finished-application/frontend/__tests__/Signup.test.js
index 2a668a6..e18bdee 100644
--- a/finished-application/frontend/__tests__/Signup.test.js
+++ b/finished-application/frontend/__tests__/Signup.test.js
@@ -1,29 +1,27 @@
-import React from 'react';
import { mount } from 'enzyme';
-import toJSON from 'enzyme-to-json';
import wait from 'waait';
-import { ApolloConsumer } from 'react-apollo';
+import toJSON from 'enzyme-to-json';
import { MockedProvider } from 'react-apollo/test-utils';
+import { ApolloConsumer } from 'react-apollo';
import Signup, { SIGNUP_MUTATION } from '../components/Signup';
-import { fakeUser } from '../lib/testUtils';
import { CURRENT_USER_QUERY } from '../components/User';
+import { fakeUser } from '../lib/testUtils';
function type(wrapper, name, value) {
wrapper.find(`input[name="${name}"]`).simulate('change', {
- target: {
- name,
- value,
- },
+ target: { name, value },
});
}
+
const me = fakeUser();
const mocks = [
+ // signup mock mutation
{
request: {
query: SIGNUP_MUTATION,
variables: {
- email: me.email,
name: me.name,
+ email: me.email,
password: 'wes',
},
},
@@ -38,22 +36,15 @@ const mocks = [
},
},
},
+ // current user query mock
{
request: { query: CURRENT_USER_QUERY },
- result: {
- data: {
- me: {
- __typename: 'User',
- ...me,
- cart: [],
- },
- },
- },
+ result: { data: { me } },
},
];
describe('<Signup/>', () => {
- it('renders and matches snapshot', () => {
+ it('renders and matches snapshot', async () => {
const wrapper = mount(
<MockedProvider>
<Signup />
@@ -62,7 +53,7 @@ describe('<Signup/>', () => {
expect(toJSON(wrapper.find('form'))).toMatchSnapshot();
});
- it('calls mutation with correct data', async () => {
+ it('calls the mutation properly', async () => {
let apolloClient;
const wrapper = mount(
<MockedProvider mocks={mocks}>
@@ -74,17 +65,15 @@ describe('<Signup/>', () => {
</ApolloConsumer>
</MockedProvider>
);
-
await wait();
wrapper.update();
-
type(wrapper, 'name', me.name);
type(wrapper, 'email', me.email);
type(wrapper, 'password', 'wes');
-
wrapper.update();
wrapper.find('form').simulate('submit');
-
+ await wait();
+ // query the user out of the apollo client
const user = await apolloClient.query({ query: CURRENT_USER_QUERY });
expect(user.data.me).toMatchObject(me);
});
diff --git a/finished-application/frontend/__tests__/SingleItem.test.js b/finished-application/frontend/__tests__/SingleItem.test.js
index aeb8554..2963bde 100644
--- a/finished-application/frontend/__tests__/SingleItem.test.js
+++ b/finished-application/frontend/__tests__/SingleItem.test.js
@@ -1,26 +1,22 @@
-import React from 'react';
import { mount } from 'enzyme';
-import wait from 'waait';
import toJSON from 'enzyme-to-json';
+import wait from 'waait';
import SingleItem, { SINGLE_ITEM_QUERY } from '../components/SingleItem';
import { MockedProvider } from 'react-apollo/test-utils';
-import { fakeItem, fakeUser } from '../lib/testUtils';
-import { CURRENT_USER_QUERY } from '../components/User';
-
-const data = {
- items: [fakeItem()],
-};
+import { fakeItem } from '../lib/testUtils';
describe('<SingleItem/>', () => {
- it('Renders with Proper Data', async () => {
+ it('renders with proper data', async () => {
const mocks = [
{
+ // when someone makes a request with this query and variable combo
request: { query: SINGLE_ITEM_QUERY, variables: { id: '123' } },
- result: { data },
- },
- {
- request: { query: CURRENT_USER_QUERY },
- result: { data: { me: fakeUser() } },
+ // return this fake data (mocked data)
+ result: {
+ data: {
+ item: fakeItem(),
+ },
+ },
},
];
const wrapper = mount(
@@ -28,27 +24,22 @@ describe('<SingleItem/>', () => {
<SingleItem id="123" />
</MockedProvider>
);
- // Check for loading state
expect(wrapper.text()).toContain('Loading...');
-
- // wait for response and refresh
- await wait(55);
+ await wait();
wrapper.update();
- // Grab the piece we want
+ // console.log(wrapper.debug());
expect(toJSON(wrapper.find('h2'))).toMatchSnapshot();
expect(toJSON(wrapper.find('img'))).toMatchSnapshot();
expect(toJSON(wrapper.find('p'))).toMatchSnapshot();
});
- it('Errors with a not found Item', async () => {
+ it('Errors with a not found item', async () => {
const mocks = [
{
request: { query: SINGLE_ITEM_QUERY, variables: { id: '123' } },
- delay: 50,
- // we can return data and an error
- result: { data, errors: [{ message: 'Item not found!' }] },
- // or just an error!
- // error: new Error('offline!'),
+ result: {
+ errors: [{ message: 'Items Not Found!' }],
+ },
},
];
const wrapper = mount(
@@ -56,12 +47,11 @@ describe('<SingleItem/>', () => {
<SingleItem id="123" />
</MockedProvider>
);
-
- // wait for response
- await wait(55);
+ await wait();
wrapper.update();
-
- const Item = wrapper.find('[data-test="graphql-error"]');
- expect(toJSON(Item)).toMatchSnapshot();
+ console.log(wrapper.debug());
+ const item = wrapper.find('[data-test="graphql-error"]');
+ expect(item.text()).toContain('Items Not Found!');
+ expect(toJSON(item)).toMatchSnapshot();
});
});
diff --git a/finished-application/frontend/__tests__/TakeMyMoney.test.js b/finished-application/frontend/__tests__/TakeMyMoney.test.js
index 1c41410..3d68502 100644
--- a/finished-application/frontend/__tests__/TakeMyMoney.test.js
+++ b/finished-application/frontend/__tests__/TakeMyMoney.test.js
@@ -1,12 +1,13 @@
import { mount } from 'enzyme';
+import wait from 'waait';
import toJSON from 'enzyme-to-json';
import NProgress from 'nprogress';
import Router from 'next/router';
-import wait from 'waait';
import { MockedProvider } from 'react-apollo/test-utils';
-import TakeMyMoney from '../components/TakeMyMoney';
-import { fakeUser, fakeCartItem } from '../lib/testUtils';
+import { ApolloConsumer } from 'react-apollo';
+import TakeMyMoney, { CREATE_ORDER_MUTATION } from '../components/TakeMyMoney';
import { CURRENT_USER_QUERY } from '../components/User';
+import { fakeUser, fakeCartItem } from '../lib/testUtils';
Router.router = { push() {} };
@@ -23,34 +24,33 @@ const mocks = [
},
},
];
-describe('<TakeMyMoney />', () => {
- it('renders', async () => {
+
+describe('<TakeMyMoney/>', () => {
+ it('renders and matches snapshot', async () => {
const wrapper = mount(
<MockedProvider mocks={mocks}>
<TakeMyMoney />
</MockedProvider>
);
- // wait for it to load
await wait();
wrapper.update();
- // find the button
const checkoutButton = wrapper.find('ReactStripeCheckout');
expect(toJSON(checkoutButton)).toMatchSnapshot();
});
-
- it('creates an order onToken', async () => {
- const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } });
-
+ it('creates an order ontoken', async () => {
+ const createOrderMock = jest.fn().mockResolvedValue({
+ data: { createOrder: { id: 'xyz789' } },
+ });
const wrapper = mount(
<MockedProvider mocks={mocks}>
<TakeMyMoney />
</MockedProvider>
);
- const component = wrapper.find('TakeMyMoney');
- component.instance().onToken({ id: 'abc123' }, createOrderSpy);
- // check it
- expect(createOrderSpy).toBeCalled();
- expect(createOrderSpy).toBeCalledWith({ variables: { token: 'abc123' } });
+ const component = wrapper.find('TakeMyMoney').instance();
+ // manully call that onToken method
+ component.onToken({ id: 'abc123' }, createOrderMock);
+ expect(createOrderMock).toHaveBeenCalled();
+ expect(createOrderMock).toHaveBeenCalledWith({ variables: { token: 'abc123' } });
});
it('turns the progress bar on', async () => {
@@ -62,16 +62,16 @@ describe('<TakeMyMoney />', () => {
await wait();
wrapper.update();
NProgress.start = jest.fn();
-
- const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } });
- const component = wrapper.find('TakeMyMoney');
- component.instance().onToken({ id: 'abc123' }, createOrderSpy);
- wrapper.find('button').simulate('click');
+ const createOrderMock = jest.fn().mockResolvedValue({
+ data: { createOrder: { id: 'xyz789' } },
+ });
+ const component = wrapper.find('TakeMyMoney').instance();
+ // manully call that onToken method
+ component.onToken({ id: 'abc123' }, createOrderMock);
expect(NProgress.start).toHaveBeenCalled();
});
it('routes to the order page when completed', async () => {
- // Mount the wrapper
const wrapper = mount(
<MockedProvider mocks={mocks}>
<TakeMyMoney />
@@ -79,20 +79,20 @@ describe('<TakeMyMoney />', () => {
);
await wait();
wrapper.update();
-
- // Spy on Router Push
+ const createOrderMock = jest.fn().mockResolvedValue({
+ data: { createOrder: { id: 'xyz789' } },
+ });
+ const component = wrapper.find('TakeMyMoney').instance();
Router.router.push = jest.fn();
- const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } });
-
- const component = wrapper.find('TakeMyMoney');
- component.instance().onToken({ id: 'abc123' }, createOrderSpy);
-
- // submit the form
- wrapper.find('button').simulate('click');
+ // manully call that onToken method
+ component.onToken({ id: 'abc123' }, createOrderMock);
await wait();
+ expect(Router.router.push).toHaveBeenCalled();
expect(Router.router.push).toHaveBeenCalledWith({
pathname: '/order',
- query: { id: 'xyz789' },
+ query: {
+ id: 'xyz789',
+ },
});
});
});
diff --git a/finished-application/frontend/__tests__/__snapshots__/AddToCart.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/AddToCart.test.js.snap
index e3f8229..2f489d4 100644
--- a/finished-application/frontend/__tests__/__snapshots__/AddToCart.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/AddToCart.test.js.snap
@@ -1,11 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<AddtoCart/> renders and matches snapshot 1`] = `
+exports[`<AddToCart/> renders and matches the snap shot 1`] = `
<button
disabled={false}
onClick={[Function]}
>
- 🛒 Add
- To Cart
+ Add
+ To Cart 🛒
</button>
`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/Cart.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Cart.test.js.snap
index 9aeedfd..d5c0d92 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Cart.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Cart.test.js.snap
@@ -1,31 +1,31 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Cart/> renders 1`] = `
+exports[`<Cart/> renders and matches snappy 1`] = `
<header>
- <styled.button
+ <CloseButton
onClick={[Function]}
title="close"
>
<button
- className="sc-EHOje jytiuo"
+ className="CloseButton-sc-1seb878-0 lbNKfp"
onClick={[Function]}
title="close"
>
×
</button>
- </styled.button>
- <styled.h3>
+ </CloseButton>
+ <Supreme>
<h3
- className="sc-ifAKCX imryuh"
+ className="Supreme-xv30qb-0 hpaXsq"
>
Miss Coleman Berge
- 's Cart.
+ 's Cart
</h3>
- </styled.h3>
+ </Supreme>
<p>
- You have
+ You Have
1
- item
+ Item
in your cart.
</p>
</header>
diff --git a/finished-application/frontend/__tests__/__snapshots__/CartCount.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/CartCount.test.js.snap
index 224141b..92ee89a 100644
--- a/finished-application/frontend/__tests__/__snapshots__/CartCount.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/CartCount.test.js.snap
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<CartCount></CartCount> matches snapshot 1`] = `
-<styled.span>
+exports[`<CartCount/> matches the snapshot 1`] = `
+<CartCount__AnimationStyles>
<TransitionGroup
childFactory={[Function]}
component="div"
@@ -9,7 +9,7 @@ exports[`<CartCount></CartCount> matches snapshot 1`] = `
<CSSTransition
className="count"
classNames="count"
- key="10"
+ key="11"
timeout={
Object {
"enter": 400,
@@ -18,188 +18,62 @@ exports[`<CartCount></CartCount> matches snapshot 1`] = `
}
unmountOnExit={true}
>
- <styled.div>
- 10
- </styled.div>
+ <CartCount__Dot>
+ 11
+ </CartCount__Dot>
</CSSTransition>
</TransitionGroup>
-</styled.span>
+</CartCount__AnimationStyles>
`;
-exports[`<CartCount></CartCount> updates via props 1`] = `
-<CartCount
- count={50}
->
- <styled.span>
- <span
- className="sc-bwzfXH fWZfOZ"
+exports[`<CartCount/> updates via props 1`] = `
+<CartCount__AnimationStyles>
+ <TransitionGroup
+ childFactory={[Function]}
+ component="div"
+ >
+ <CSSTransition
+ className="count"
+ classNames="count"
+ key="50"
+ timeout={
+ Object {
+ "enter": 400,
+ "exit": 400,
+ }
+ }
+ unmountOnExit={true}
>
- <TransitionGroup
- childFactory={[Function]}
- component="div"
- >
- <div>
- <CSSTransition
- className="count"
- classNames="count"
- in={true}
- key=".$50"
- onExited={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <Transition
- appear={false}
- className="count"
- enter={true}
- exit={true}
- in={true}
- mountOnEnter={false}
- onEnter={[Function]}
- onEntered={[Function]}
- onEntering={[Function]}
- onExit={[Function]}
- onExited={[Function]}
- onExiting={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <styled.div
- className="count"
- >
- <div
- className="count sc-bdVaJa ldHGxH"
- >
- 50
- </div>
- </styled.div>
- </Transition>
- </CSSTransition>
- </div>
- </TransitionGroup>
- </span>
- </styled.span>
-</CartCount>
+ <CartCount__Dot>
+ 50
+ </CartCount__Dot>
+ </CSSTransition>
+ </TransitionGroup>
+</CartCount__AnimationStyles>
`;
-exports[`<CartCount></CartCount> updates via props 2`] = `
-<CartCount
- count={10}
->
- <styled.span>
- <span
- className="sc-bwzfXH fWZfOZ"
+exports[`<CartCount/> updates via props 2`] = `
+<CartCount__AnimationStyles>
+ <TransitionGroup
+ childFactory={[Function]}
+ component="div"
+ >
+ <CSSTransition
+ className="count"
+ classNames="count"
+ key="10"
+ timeout={
+ Object {
+ "enter": 400,
+ "exit": 400,
+ }
+ }
+ unmountOnExit={true}
>
- <TransitionGroup
- childFactory={[Function]}
- component="div"
- >
- <div>
- <CSSTransition
- className="count"
- classNames="count"
- in={true}
- key=".$10"
- onExited={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <Transition
- appear={false}
- className="count"
- enter={true}
- exit={true}
- in={true}
- mountOnEnter={false}
- onEnter={[Function]}
- onEntered={[Function]}
- onEntering={[Function]}
- onExit={[Function]}
- onExited={[Function]}
- onExiting={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <styled.div
- className="count"
- >
- <div
- className="count sc-bdVaJa ldHGxH"
- >
- 10
- </div>
- </styled.div>
- </Transition>
- </CSSTransition>
- <CSSTransition
- className="count"
- classNames="count"
- in={false}
- key=".$50"
- onExited={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <Transition
- appear={false}
- className="count"
- enter={true}
- exit={true}
- in={false}
- mountOnEnter={false}
- onEnter={[Function]}
- onEntered={[Function]}
- onEntering={[Function]}
- onExit={[Function]}
- onExited={[Function]}
- onExiting={[Function]}
- timeout={
- Object {
- "enter": 400,
- "exit": 400,
- }
- }
- unmountOnExit={true}
- >
- <styled.div
- className="count"
- >
- <div
- className="count sc-bdVaJa ldHGxH"
- >
- 50
- </div>
- </styled.div>
- </Transition>
- </CSSTransition>
- </div>
- </TransitionGroup>
- </span>
- </styled.span>
-</CartCount>
+ <CartCount__Dot>
+ 10
+ </CartCount__Dot>
+ </CSSTransition>
+ </TransitionGroup>
+</CartCount__AnimationStyles>
`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/CartItem.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/CartItem.test.js.snap
deleted file mode 100644
index b8f5ad3..0000000
--- a/finished-application/frontend/__tests__/__snapshots__/CartItem.test.js.snap
+++ /dev/null
@@ -1,33 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`<CartItem> renders and matches snapshot 1`] = `
-<styled.li
- key="abc123"
->
- <img
- alt="Fake Item"
- src="dog.jpg"
- width="100"
- />
- <div
- className="cart-item-details"
- >
- <h3>
- Fake Item
- </h3>
- <p>
- $1,000
- —
- <em>
- 20
- ×
- $50
- each
- </em>
- </p>
- </div>
- <RemoveFromCart
- id="abc123"
- />
-</styled.li>
-`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/CreateItem.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/CreateItem.test.js.snap
index 89dbcd2..59d8557 100644
--- a/finished-application/frontend/__tests__/__snapshots__/CreateItem.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/CreateItem.test.js.snap
@@ -1,14 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Createitem/> renders and matches snapshot 1`] = `
+exports[`<CreateItem/> renders and matches snapshot 1`] = `
<form
- className="sc-bwzfXH ikCwBB"
- data-test={true}
+ className="Form-sc-1xszr8q-0 krRxky"
+ data-test="form"
onSubmit={[Function]}
>
- <h2>
- Sell an Item.
- </h2>
<DisplayError
error={Object {}}
/>
@@ -21,9 +18,10 @@ exports[`<Createitem/> renders and matches snapshot 1`] = `
>
Image
<input
- accept=".png, .jpg, .jpeg"
id="file"
+ name="file"
onChange={[Function]}
+ placeholder="Upload an image"
required={true}
type="file"
/>
@@ -45,26 +43,30 @@ exports[`<Createitem/> renders and matches snapshot 1`] = `
<label
htmlFor="price"
>
- Price
- 0
+ Price
<input
id="price"
- min="0"
name="price"
onChange={[Function]}
+ placeholder="Price"
required={true}
type="number"
value={0}
/>
</label>
- <textarea
- id="description"
- name="description"
- onChange={[Function]}
- placeholder="The desc for this item"
- required={true}
- value=""
- />
+ <label
+ htmlFor="description"
+ >
+ Description
+ <textarea
+ id="description"
+ name="description"
+ onChange={[Function]}
+ placeholder="Enter A Description"
+ required={true}
+ value=""
+ />
+ </label>
<button
type="submit"
>
diff --git a/finished-application/frontend/__tests__/__snapshots__/EditUser.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/EditUser.test.js.snap
deleted file mode 100644
index bbb672d..0000000
--- a/finished-application/frontend/__tests__/__snapshots__/EditUser.test.js.snap
+++ /dev/null
@@ -1,47 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`<EditUser/> renders 1`] = `
-<form
- className="sc-bdVaJa LHejR"
- onSubmit={[Function]}
->
- <DisplayError
- error={Object {}}
- />
- <fieldset
- aria-busy={false}
- disabled={false}
- >
- <label
- htmlFor="name"
- >
- Name:
- <input
- defaultValue="Miss Coleman Berge"
- name="name"
- onChange={[Function]}
- type="text"
- />
- </label>
- <button
- type="submit"
- >
- Update
- </button>
- <strong>
- me:
- </strong>
- <pre>
- "Miss Coleman Berge"
- </pre>
- <strong>
- Change:
- </strong>
- <pre
- data-test="change"
- >
- {}
- </pre>
- </fieldset>
-</form>
-`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/Item.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Item.test.js.snap
index 930c7a9..70e4aa8 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Item.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Item.test.js.snap
@@ -1,14 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Item/> Renders and matches snapshot 1`] = `
-<styled.div
- key="ABC123"
->
+exports[`<Item/> renders and matches the snapshot 1`] = `
+<ItemStyles__Item>
<img
alt="A Cool Item"
src="dog.jpg"
/>
- <styled.h3>
+ <Title>
<Link
href={
Object {
@@ -23,10 +21,10 @@ exports[`<Item/> Renders and matches snapshot 1`] = `
A Cool Item
</a>
</Link>
- </styled.h3>
- <styled.span>
- $50
- </styled.span>
+ </Title>
+ <PriceTag>
+ $40
+ </PriceTag>
<p>
This item is really cool!
</p>
@@ -36,7 +34,7 @@ exports[`<Item/> Renders and matches snapshot 1`] = `
<Link
href={
Object {
- "pathname": "/update",
+ "pathname": "update",
"query": Object {
"id": "ABC123",
},
@@ -52,7 +50,9 @@ exports[`<Item/> Renders and matches snapshot 1`] = `
/>
<DeleteItem
id="ABC123"
- />
+ >
+ Delete This Item
+ </DeleteItem>
</div>
-</styled.div>
+</ItemStyles__Item>
`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/Nav.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Nav.test.js.snap
index 354fbc1..c3155a9 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Nav.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Nav.test.js.snap
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Nav></Nav> Renders minimal nav when logged out 1`] = `
+exports[`<Nav/> renders a minimal nav when signed out 1`] = `
<ul
- className="sc-dnqmqq kxZizK"
+ className="NavStyles-sc-11c0d2g-0 YVEeD"
data-test="nav"
>
<Link
@@ -16,16 +16,6 @@ exports[`<Nav></Nav> Renders minimal nav when logged out 1`] = `
</a>
</Link>
<Link
- href="/sell"
- >
- <a
- href="/sell"
- onClick={[Function]}
- >
- Sell
- </a>
- </Link>
- <Link
href="/signup"
>
<a
@@ -37,3 +27,11 @@ exports[`<Nav></Nav> Renders minimal nav when logged out 1`] = `
</Link>
</ul>
`;
+
+exports[`<Nav/> renders the amount of items in the cart 1`] = `
+<div
+ className="count CartCount__Dot-xxvp4g-1 fJsVOg"
+>
+ 9
+</div>
+`;
diff --git a/finished-application/frontend/__tests__/__snapshots__/Order.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Order.test.js.snap
index 8e76546..9dce80b 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Order.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Order.test.js.snap
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Order/> Renders the order 1`] = `
+exports[`<Order/> renders the order 1`] = `
<div
- className="sc-bwzfXH wJijb"
+ className="OrderStyles-sc-4oqalm-0 eDzsVm"
data-test="order"
>
<SideEffect(Head)>
@@ -10,7 +10,7 @@ exports[`<Order/> Renders the order 1`] = `
</SideEffect(Head)>
<p>
<span>
- Order Id:
+ Order ID:
</span>
<span>
ord123
@@ -29,7 +29,7 @@ exports[`<Order/> Renders the order 1`] = `
Date
</span>
<span>
- March 90, 2018 8:00 A
+ March 31, 2018 8:00 PM
</span>
</p>
<p>
@@ -63,9 +63,7 @@ exports[`<Order/> Renders the order 1`] = `
className="item-details"
>
<h2>
-
soluta non omnis consequatur enim quia autem
-
</h2>
<p>
Qty:
@@ -76,12 +74,8 @@ exports[`<Order/> Renders the order 1`] = `
$42.34
</p>
<p>
- Subtotal:
- $42.34
- </p>
- <p>
SubTotal:
- et modi tenetur amet modi reprehenderit omnis
+ $42.34
</p>
<p>
et modi tenetur amet modi reprehenderit omnis
@@ -100,9 +94,7 @@ exports[`<Order/> Renders the order 1`] = `
className="item-details"
>
<h2>
-
quia sed exercitationem omnis laborum exercitationem est
-
</h2>
<p>
Qty:
@@ -113,12 +105,8 @@ exports[`<Order/> Renders the order 1`] = `
$42.34
</p>
<p>
- Subtotal:
- $42.34
- </p>
- <p>
SubTotal:
- sapiente laudantium molestias assumenda quasi adipisci mollitia
+ $42.34
</p>
<p>
sapiente laudantium molestias assumenda quasi adipisci mollitia
diff --git a/finished-application/frontend/__tests__/__snapshots__/Pagination.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Pagination.test.js.snap
index c757968..110f59d 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Pagination.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Pagination.test.js.snap
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<Pagination/> displays loading message 1`] = `
+exports[`<Pagination/> renders pagination for 18 items 1`] = `
<div
- className="sc-bdVaJa ijYKGd"
+ className="PaginationStyles-aduuar-0 ewJsCc"
data-test="pagination"
>
<SideEffect(Head)>
@@ -25,26 +25,22 @@ exports[`<Pagination/> displays loading message 1`] = `
href="items?page=0"
onClick={[Function]}
>
- ←Prev
+ ← Prev
</a>
</Link>
<p>
Page
- <strong>
- 1
-
- </strong>
- of
- <strong
+ 1
+ of
+ <span
className="totalPages"
>
- 1
- </strong>
+ 5
+ </span>
+ !
</p>
<p>
- <strong>
- 1
- </strong>
+ 18
Items Total
</p>
<Link
@@ -59,7 +55,7 @@ exports[`<Pagination/> displays loading message 1`] = `
prefetch={true}
>
<a
- aria-disabled={true}
+ aria-disabled={false}
className="next"
href="items?page=2"
onClick={[Function]}
diff --git a/finished-application/frontend/__tests__/__snapshots__/RemoveFromCart.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/RemoveFromCart.test.js.snap
index a80b678..db8687b 100644
--- a/finished-application/frontend/__tests__/__snapshots__/RemoveFromCart.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/RemoveFromCart.test.js.snap
@@ -2,10 +2,10 @@
exports[`<RemoveFromCart/> renders and matches snapshot 1`] = `
<button
- className="sc-bdVaJa fXnNqM"
+ className="RemoveFromCart__BigButton-emvtd6-0 gPWNSn"
disabled={false}
onClick={[Function]}
- title="Remove From Cart"
+ title="Delete Item"
>
×
</button>
diff --git a/finished-application/frontend/__tests__/__snapshots__/ResetRequest.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/RequestReset.test.js.snap
index a6a0375..c0de705 100644
--- a/finished-application/frontend/__tests__/__snapshots__/ResetRequest.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/RequestReset.test.js.snap
@@ -1,18 +1,22 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<ResetRequest/> renders and matches snapshot 1`] = `
+exports[`<RequestReset/> renders and matches snapshot 1`] = `
<form
- className="sc-bdVaJa LHejR"
- data-test="ResetRequest"
+ className="Form-sc-1xszr8q-0 krRxky"
+ data-test="form"
+ method="post"
onSubmit={[Function]}
>
- <DisplayError
- error={Object {}}
- />
<fieldset
aria-busy={false}
disabled={false}
>
+ <h2>
+ Request a password reset
+ </h2>
+ <DisplayError
+ error={Object {}}
+ />
<label
htmlFor="email"
>
@@ -21,7 +25,7 @@ exports[`<ResetRequest/> renders and matches snapshot 1`] = `
name="email"
onChange={[Function]}
placeholder="email"
- type="text"
+ type="email"
value=""
/>
</label>
diff --git a/finished-application/frontend/__tests__/__snapshots__/Signup.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/Signup.test.js.snap
index b3c057e..bb61ff1 100644
--- a/finished-application/frontend/__tests__/__snapshots__/Signup.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/Signup.test.js.snap
@@ -2,7 +2,7 @@
exports[`<Signup/> renders and matches snapshot 1`] = `
<form
- className="sc-bdVaJa LHejR"
+ className="Form-sc-1xszr8q-0 krRxky"
method="post"
onSubmit={[Function]}
>
@@ -10,12 +10,12 @@ exports[`<Signup/> renders and matches snapshot 1`] = `
aria-busy={false}
disabled={false}
>
+ <h2>
+ Sign Up for An Account
+ </h2>
<DisplayError
error={Object {}}
/>
- <h2>
- Sign Up for an Account
- </h2>
<label
htmlFor="email"
>
@@ -24,7 +24,7 @@ exports[`<Signup/> renders and matches snapshot 1`] = `
name="email"
onChange={[Function]}
placeholder="email"
- type="text"
+ type="email"
value=""
/>
</label>
@@ -41,12 +41,10 @@ exports[`<Signup/> renders and matches snapshot 1`] = `
/>
</label>
<label
- htmlFor="signupPassword"
+ htmlFor="password"
>
Password
<input
- className="password"
- id="signupPassword"
name="password"
onChange={[Function]}
placeholder="password"
@@ -57,7 +55,7 @@ exports[`<Signup/> renders and matches snapshot 1`] = `
<button
type="submit"
>
- Submit
+ Sign Up!
</button>
</fieldset>
</form>
diff --git a/finished-application/frontend/__tests__/__snapshots__/SingleItem.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/SingleItem.test.js.snap
index 28e9174..2f41d4c 100644
--- a/finished-application/frontend/__tests__/__snapshots__/SingleItem.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/SingleItem.test.js.snap
@@ -1,31 +1,31 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<SingleItem/> Errors with a not found Item 1`] = `
+exports[`<SingleItem/> Errors with a not found item 1`] = `
<p
data-test="graphql-error"
>
<strong>
Shoot!
</strong>
- Item not found!
+ Items Not Found!
</p>
`;
-exports[`<SingleItem/> Renders with Proper Data 1`] = `
+exports[`<SingleItem/> renders with proper data 1`] = `
<h2>
Viewing
dogs are best
</h2>
`;
-exports[`<SingleItem/> Renders with Proper Data 2`] = `
+exports[`<SingleItem/> renders with proper data 2`] = `
<img
alt="dogs are best"
src="dog.jpg"
/>
`;
-exports[`<SingleItem/> Renders with Proper Data 3`] = `
+exports[`<SingleItem/> renders with proper data 3`] = `
<p>
dogs
</p>
diff --git a/finished-application/frontend/__tests__/__snapshots__/TakeMyMoney.test.js.snap b/finished-application/frontend/__tests__/__snapshots__/TakeMyMoney.test.js.snap
index 00863d3..02a112e 100644
--- a/finished-application/frontend/__tests__/__snapshots__/TakeMyMoney.test.js.snap
+++ b/finished-application/frontend/__tests__/__snapshots__/TakeMyMoney.test.js.snap
@@ -1,19 +1,19 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`<TakeMyMoney /> renders 1`] = `
+exports[`<TakeMyMoney/> renders and matches snapshot 1`] = `
<ReactStripeCheckout
ComponentClass="span"
amount={15000}
className="StripeCheckout"
currency="USD"
- description="Order of 3 Items From Sick Fits"
+ description="Order of 3 items!"
email="Delmer.Smith@yahoo.com"
image="dog-small.jpg"
label="Pay With Card"
locale="auto"
- name="Sick Fits Haul"
+ name="Sick Fits"
reconfigureOnUpdate={false}
- stripeKey="pk_lclTtThFp8CnO3QtEZSd8HA9mFUps"
+ stripeKey="pk_test_Vtknn6vSdcZWSG2JWvEiWSqC"
token={[Function]}
triggerEvent="onClick"
>
diff --git a/finished-application/frontend/__tests__/formatMoney.test.js b/finished-application/frontend/__tests__/formatMoney.test.js
index c5c79b6..23d8183 100644
--- a/finished-application/frontend/__tests__/formatMoney.test.js
+++ b/finished-application/frontend/__tests__/formatMoney.test.js
@@ -1,9 +1,11 @@
import formatMoney from '../lib/formatMoney';
-describe('formatMoney', () => {
+describe('formatMoney Function', () => {
it('works with fractional dollars', () => {
expect(formatMoney(1)).toEqual('$0.01');
expect(formatMoney(10)).toEqual('$0.10');
+ expect(formatMoney(9)).toEqual('$0.09');
+ expect(formatMoney(40)).toEqual('$0.40');
});
it('leaves cents off for whole dollars', () => {
@@ -16,6 +18,6 @@ describe('formatMoney', () => {
expect(formatMoney(5012)).toEqual('$50.12');
expect(formatMoney(101)).toEqual('$1.01');
expect(formatMoney(110)).toEqual('$1.10');
- expect(formatMoney(54345345)).toEqual('$543,453.45');
+ expect(formatMoney(20893749823749823749)).toEqual('$208,937,498,237,498,240.00');
});
});
diff --git a/finished-application/frontend/__tests__/mocking.test.js b/finished-application/frontend/__tests__/mocking.test.js
new file mode 100644
index 0000000..d0a05bf
--- /dev/null
+++ b/finished-application/frontend/__tests__/mocking.test.js
@@ -0,0 +1,36 @@
+function Person(name, foods) {
+ this.name = name;
+ this.foods = foods;
+}
+
+Person.prototype.fetchFavFoods = function() {
+ return new Promise((resolve, reject) => {
+ // Simulate an API
+ setTimeout(() => resolve(this.foods), 2000);
+ });
+};
+
+describe('mocking learning', () => {
+ it('mocks a reg function', () => {
+ const fetchDogs = jest.fn();
+ fetchDogs('snickers');
+ expect(fetchDogs).toHaveBeenCalled();
+ expect(fetchDogs).toHaveBeenCalledWith('snickers');
+ fetchDogs('hugo');
+ expect(fetchDogs).toHaveBeenCalledTimes(2);
+ });
+
+ it('can create a person', () => {
+ const me = new Person('Wes', ['pizza', 'burgs']);
+ expect(me.name).toBe('Wes');
+ });
+
+ it('can fetch foods', async () => {
+ const me = new Person('Wes', ['pizza', 'burgs']);
+ // mock the favFoods function
+ me.fetchFavFoods = jest.fn().mockResolvedValue(['sushi', 'ramen']);
+ const favFoods = await me.fetchFavFoods();
+ console.log(favFoods);
+ expect(favFoods).toContain('sushi');
+ });
+});
diff --git a/finished-application/frontend/__tests__/sample.test.js b/finished-application/frontend/__tests__/sample.test.js
new file mode 100644
index 0000000..dbed94f
--- /dev/null
+++ b/finished-application/frontend/__tests__/sample.test.js
@@ -0,0 +1,19 @@
+describe('sample test 101', () => {
+ it('works as expected', () => {
+ const age = 100;
+ expect(1).toEqual(1);
+ expect(age).toEqual(100);
+ });
+
+ it('handles ranges just fine', () => {
+ const age = 200;
+ expect(age).toBeGreaterThan(100);
+ });
+
+ it('makes a list of dog names', () => {
+ const dogs = ['snickers', 'hugo'];
+ expect(dogs).toEqual(dogs);
+ expect(dogs).toContain('snickers');
+ expect(dogs).toContain('snickers');
+ });
+});
diff --git a/finished-application/frontend/components/AddToCart.js b/finished-application/frontend/components/AddToCart.js
index 03242a4..8a71cc3 100644
--- a/finished-application/frontend/components/AddToCart.js
+++ b/finished-application/frontend/components/AddToCart.js
@@ -1,68 +1,36 @@
-import { Component } from 'react';
+import React from 'react';
import { Mutation } from 'react-apollo';
-import PropTypes from 'prop-types';
import gql from 'graphql-tag';
-import User, { CURRENT_USER_QUERY } from './User';
+import { CURRENT_USER_QUERY } from './User';
const ADD_TO_CART_MUTATION = gql`
mutation addToCart($id: ID!) {
addToCart(id: $id) {
id
quantity
- item {
- id
- price
- description
- image
- title
- }
}
}
`;
-class AddToCart extends Component {
- static propTypes = {
- id: PropTypes.string.isRequired,
- };
-
- update = (cache, payload) => {
- const newCartItem = payload.data.addToCart;
- const data = cache.readQuery({ query: CURRENT_USER_QUERY });
-
- const existingIndex = data.me.cart.findIndex(cartItem => cartItem.id === newCartItem.id);
- if (existingIndex >= 0) {
- // already in cache, just replace it
- data.me.cart = [
- ...data.me.cart.slice(0, existingIndex),
- newCartItem,
- ...data.me.cart.slice(existingIndex + 1),
- ];
- } else {
- data.me.cart = [...data.me.cart, newCartItem];
- }
- cache.writeQuery({ query: CURRENT_USER_QUERY, data });
- };
-
+class AddToCart extends React.Component {
render() {
const { id } = this.props;
return (
- <User>
- {({ data: { me }, loading }) => {
- if (!me || loading) return null;
- return (
- <Mutation mutation={ADD_TO_CART_MUTATION} variables={{ id }} update={this.update}>
- {(addToCart, { loading }) => (
- <button disabled={loading} onClick={addToCart}>
- 🛒 Add{loading && 'ing'} To Cart
- </button>
- )}
- </Mutation>
- );
+ <Mutation
+ mutation={ADD_TO_CART_MUTATION}
+ variables={{
+ id,
}}
- </User>
+ refetchQueries={[{ query: CURRENT_USER_QUERY }]}
+ >
+ {(addToCart, { loading }) => (
+ <button disabled={loading} onClick={addToCart}>
+ Add{loading && 'ing'} To Cart 🛒
+ </button>
+ )}
+ </Mutation>
);
}
}
-
export default AddToCart;
export { ADD_TO_CART_MUTATION };
diff --git a/finished-application/frontend/components/Cart.js b/finished-application/frontend/components/Cart.js
index 7e8a9c5..2a72b38 100644
--- a/finished-application/frontend/components/Cart.js
+++ b/finished-application/frontend/components/Cart.js
@@ -1,17 +1,16 @@
import React from 'react';
-import { Mutation, Query } from 'react-apollo';
-import { adopt } from 'react-adopt';
+import { Query, Mutation } from 'react-apollo';
import gql from 'graphql-tag';
-import TakeMyMoney from './TakeMyMoney';
-import formatMoney from '../lib/formatMoney';
-import CartItem from './CartItem';
-import { CURRENT_USER_QUERY } from './User';
-import calcTotalPrice from '../lib/calcTotalPrice';
-import Error from './ErrorMessage';
+import { adopt } from 'react-adopt';
+import User from './User';
import CartStyles from './styles/CartStyles';
import Supreme from './styles/Supreme';
import CloseButton from './styles/CloseButton';
import SickButton from './styles/SickButton';
+import CartItem from './CartItem';
+import calcTotalPrice from '../lib/calcTotalPrice';
+import formatMoney from '../lib/formatMoney';
+import TakeMyMoney from './TakeMyMoney';
const LOCAL_STATE_QUERY = gql`
query {
@@ -24,45 +23,38 @@ const TOGGLE_CART_MUTATION = gql`
toggleCart @client
}
`;
-
+/* eslint-disable */
const Composed = adopt({
- toggleCart: ({ render }) => (
- <Mutation mutation={TOGGLE_CART_MUTATION}>
- {(mutate, result) => render({ mutate, result })}
- </Mutation>
- ),
- localState: ({ render }) => <Query query={LOCAL_STATE_QUERY} children={render} />,
- currentUser: ({ render }) => (
- <Query children={render} query={CURRENT_USER_QUERY} data-test="cart" />
- ),
+ user: ({ render }) => <User>{render}</User>,
+ toggleCart: ({ render }) => <Mutation mutation={TOGGLE_CART_MUTATION}>{render}</Mutation>,
+ localState: ({ render }) => <Query query={LOCAL_STATE_QUERY}>{render}</Query>,
});
+/* eslint-enable */
const Cart = () => (
<Composed>
- {({ toggleCart, localState, currentUser }) => {
- const { data: { me }, error, loading } = currentUser;
- if (loading) return <p>Loading...</p>;
- if (error) return <Error error={error} />;
+ {({ user, toggleCart, localState }) => {
+ const me = user.data.me;
if (!me) return null;
return (
<CartStyles open={localState.data.cartOpen}>
<header>
- <CloseButton title="close" onClick={toggleCart.mutate}>
+ <CloseButton onClick={toggleCart} title="close">
&times;
</CloseButton>
-
- <Supreme>{me.name}'s Cart.</Supreme>
+ <Supreme>{me.name}'s Cart</Supreme>
<p>
- You have {me.cart.length} item{me.cart.length === 1 ? '' : 's'} in your cart.
+ You Have {me.cart.length} Item{me.cart.length === 1 ? '' : 's'} in your cart.
</p>
</header>
-
<ul>{me.cart.map(cartItem => <CartItem key={cartItem.id} cartItem={cartItem} />)}</ul>
<footer>
<p>{formatMoney(calcTotalPrice(me.cart))}</p>
- <TakeMyMoney>
- <SickButton>Checkout</SickButton>
- </TakeMyMoney>
+ {me.cart.length && (
+ <TakeMyMoney>
+ <SickButton>Checkout</SickButton>
+ </TakeMyMoney>
+ )}
</footer>
</CartStyles>
);
diff --git a/finished-application/frontend/components/CartCount.js b/finished-application/frontend/components/CartCount.js
index ae51f20..c202d74 100644
--- a/finished-application/frontend/components/CartCount.js
+++ b/finished-application/frontend/components/CartCount.js
@@ -1,19 +1,7 @@
-import styled from 'styled-components';
-import { TransitionGroup, CSSTransition } from 'react-transition-group';
+import React from 'react';
import PropTypes from 'prop-types';
-
-const Dot = styled.div`
- background: ${props => props.theme.red};
- color: white;
- border-radius: 50%;
- padding: 0.5rem;
- line-height: 2rem;
- min-width: 3rem;
- margin-left: 1rem;
- font-weight: 100;
- font-feature-settings: 'tnum';
- font-variant-numeric: tabular-nums;
-`;
+import { TransitionGroup, CSSTransition } from 'react-transition-group';
+import styled from 'styled-components';
const AnimationStyles = styled.span`
position: relative;
@@ -23,25 +11,36 @@ const AnimationStyles = styled.span`
transition: all 0.4s;
backface-visibility: hidden;
}
+ /* Intial State of the entered Dot */
.count-enter {
- transform: rotateX(0.5turn);
+ transform: scale(4) rotateX(0.5turn);
}
-
.count-enter-active {
transform: rotateX(0);
}
-
.count-exit {
top: 0;
position: absolute;
transform: rotateX(0);
}
-
.count-exit-active {
- transform: rotateX(0.5turn);
+ transform: scale(4) rotateX(0.5turn);
}
`;
+const Dot = styled.div`
+ background: ${props => props.theme.red};
+ color: white;
+ border-radius: 50%;
+ padding: 0.5rem;
+ line-height: 2rem;
+ min-width: 3rem;
+ margin-left: 1rem;
+ font-weight: 100;
+ font-feature-settings: 'tnum';
+ font-variant-numeric: tabular-nums;
+`;
+
const CartCount = ({ count }) => (
<AnimationStyles>
<TransitionGroup>
@@ -58,7 +57,4 @@ const CartCount = ({ count }) => (
</AnimationStyles>
);
-CartCount.propTypes = {
- count: PropTypes.number.isRequired,
-};
export default CartCount;
diff --git a/finished-application/frontend/components/CartItem.js b/finished-application/frontend/components/CartItem.js
index 6c6d575..b0ce62e 100644
--- a/finished-application/frontend/components/CartItem.js
+++ b/finished-application/frontend/components/CartItem.js
@@ -1,3 +1,4 @@
+import React from 'react';
import styled from 'styled-components';
import PropTypes from 'prop-types';
import formatMoney from '../lib/formatMoney';
@@ -12,30 +13,29 @@ const CartItemStyles = styled.li`
img {
margin-right: 10px;
}
- h3 {
- margin: 0;
- }
+ h3,
p {
margin: 0;
}
`;
const CartItem = ({ cartItem }) => {
+ // first check if that item exists
if (!cartItem.item)
return (
- <CartItemStyles key={cartItem.id}>
- <p>Ack! That Item is gone!</p>
+ <CartItemStyles>
+ <p>This Item has been removed</p>
<RemoveFromCart id={cartItem.id} />
</CartItemStyles>
);
return (
- <CartItemStyles key={cartItem.id}>
+ <CartItemStyles>
<img width="100" src={cartItem.item.image} alt={cartItem.item.title} />
<div className="cart-item-details">
<h3>{cartItem.item.title}</h3>
<p>
- {formatMoney(cartItem.quantity * cartItem.item.price)}
- {' — '}
+ {formatMoney(cartItem.item.price * cartItem.quantity)}
+ {' - '}
<em>
{cartItem.quantity} &times; {formatMoney(cartItem.item.price)} each
</em>
diff --git a/finished-application/frontend/components/CreateItem.js b/finished-application/frontend/components/CreateItem.js
index 503b3cb..c115eac 100644
--- a/finished-application/frontend/components/CreateItem.js
+++ b/finished-application/frontend/components/CreateItem.js
@@ -1,25 +1,22 @@
import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
-import Router from 'next/router';
-import wait from 'waait';
import gql from 'graphql-tag';
-import Error from './ErrorMessage';
+import Router from 'next/router';
import Form from './styles/Form';
import formatMoney from '../lib/formatMoney';
-import { ALL_ITEMS_QUERY } from './Items';
-import { PAGINATION_QUERY } from './Pagination';
+import Error from './ErrorMessage';
const CREATE_ITEM_MUTATION = gql`
mutation CREATE_ITEM_MUTATION(
- $description: String!
$title: String!
+ $description: String!
$price: Int!
$image: String
$largeImage: String
) {
createItem(
- description: $description
title: $title
+ description: $description
price: $price
image: $image
largeImage: $largeImage
@@ -37,22 +34,19 @@ class CreateItem extends Component {
largeImage: '',
price: 0,
};
-
handleChange = e => {
- const { name, value, type } = e.target;
+ const { name, type, value } = e.target;
const val = type === 'number' ? parseFloat(value) : value;
this.setState({ [name]: val });
};
uploadFile = async e => {
- this.setState({ loading: true });
- const files = e.currentTarget.files;
+ const files = e.target.files;
const data = new FormData();
data.append('file', files[0]);
data.append('upload_preset', 'sickfits');
- // use the file endpoint
- const res = await fetch('https://api.cloudinary.com/v1_1/wesbos/image/upload', {
+ const res = await fetch('https://api.cloudinary.com/v1_1/wesbostutorial/image/upload', {
method: 'POST',
body: data,
});
@@ -60,82 +54,82 @@ class CreateItem extends Component {
this.setState({
image: file.secure_url,
largeImage: file.eager[0].secure_url,
- loading: false,
});
};
-
render() {
return (
- <Mutation
- mutation={CREATE_ITEM_MUTATION}
- variables={this.state}
- refetchQueries={[{ query: ALL_ITEMS_QUERY }, { query: PAGINATION_QUERY }]}
- >
+ <Mutation mutation={CREATE_ITEM_MUTATION} variables={this.state}>
{(createItem, { loading, error }) => (
<Form
- data-test
+ data-test="form"
onSubmit={async e => {
+ // Stop the form from submitting
e.preventDefault();
- const { data: { createItem: item } } = await createItem();
- // we wait 0 ms so it puts the router push at the end of the call stack. This ensures that refetchQueries runs before we unmount the component :)
- await wait();
+ // call the mutation
+ const res = await createItem();
+ // change them to the single item page
+ console.log(res);
Router.push({
- pathname: `/item`,
- query: { id: item.id },
+ pathname: '/item',
+ query: { id: res.data.createItem.id },
});
}}
>
- <h2>Sell an Item.</h2>
<Error error={error} />
<fieldset disabled={loading} aria-busy={loading}>
<label htmlFor="file">
Image
<input
- required
+ type="file"
id="file"
+ name="file"
+ placeholder="Upload an image"
+ required
onChange={this.uploadFile}
- type="file"
- accept=".png, .jpg, .jpeg"
/>
- {this.state.image ? (
- <img src={this.state.image} width="100" alt={this.state.title} />
- ) : null}
+ {this.state.image && (
+ <img width="200" src={this.state.image} alt="Upload Preview" />
+ )}
</label>
+
<label htmlFor="title">
Title
<input
- required
- value={this.state.title}
- onChange={this.handleChange}
type="text"
- name="title"
id="title"
+ name="title"
placeholder="Title"
+ required
+ value={this.state.title}
+ onChange={this.handleChange}
/>
</label>
+
<label htmlFor="price">
- Price {this.state.price && formatMoney(this.state.price)}
+ Price
<input
- required
type="number"
id="price"
name="price"
- min="0"
+ placeholder="Price"
+ required
value={this.state.price}
onChange={this.handleChange}
/>
</label>
- <textarea
- id="description"
- required
- name="description"
- value={this.state.description}
- onChange={this.handleChange}
- placeholder="The desc for this item"
- />
- <button disabled={this.state.loading} type="submit">
- Submit
- </button>
+
+ <label htmlFor="description">
+ Description
+ <textarea
+ id="description"
+ name="description"
+ placeholder="Enter A Description"
+ required
+ value={this.state.description}
+ onChange={this.handleChange}
+ />
+ </label>
+ <button type="submit">Submit</button>
</fieldset>
</Form>
)}
diff --git a/finished-application/frontend/components/DeleteItem.js b/finished-application/frontend/components/DeleteItem.js
index 4d68d5e..e5e4752 100644
--- a/finished-application/frontend/components/DeleteItem.js
+++ b/finished-application/frontend/components/DeleteItem.js
@@ -1,65 +1,45 @@
-import React from 'react';
+import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
-import PropTypes, { number } from 'prop-types';
import gql from 'graphql-tag';
-import { withRouter } from 'next/router';
import { ALL_ITEMS_QUERY } from './Items';
-import { PAGINATION_QUERY } from './Pagination';
-import { perPage } from '../config';
const DELETE_ITEM_MUTATION = gql`
- mutation deleteItem($id: ID!) {
+ mutation DELETE_ITEM_MUTATION($id: ID!) {
deleteItem(id: $id) {
id
- title
- description
}
}
`;
-class DeleteItem extends React.Component {
- static propTypes = {
- id: PropTypes.string.isRequired,
- };
-
+class DeleteItem extends Component {
update = (cache, payload) => {
- const deletedItem = payload.data.deleteItem;
- let { page = 1 } = this.props.router.query;
- page = parseFloat(page);
- const skip = page * perPage - perPage;
- const variables = { skip };
- const data = cache.readQuery({ query: ALL_ITEMS_QUERY, variables });
- // filter this one out
- data.items = data.items.filter(item => item.id !== deletedItem.id);
- // write the data back to the cache
- console.log(data.items);
- cache.writeQuery({ query: ALL_ITEMS_QUERY, data, variables });
- // FYI Pagination is broken with Apollo currently - will make a followup video
+ // manually update the cache on the client, so it matches the server
+ // 1. Read the cache for the items we want
+ const data = cache.readQuery({ query: ALL_ITEMS_QUERY });
+ console.log(data, payload);
+ // 2. Filter the deleted itemout of the page
+ data.items = data.items.filter(item => item.id !== payload.data.deleteItem.id);
+ // 3. Put the items back!
+ cache.writeQuery({ query: ALL_ITEMS_QUERY, data });
};
-
render() {
return (
<Mutation
mutation={DELETE_ITEM_MUTATION}
variables={{ id: this.props.id }}
- refetchQueries={[
- {
- query: ALL_ITEMS_QUERY,
- variables: { skip: (this.props.router.query.page || 1) * perPage - perPage },
- },
- { query: PAGINATION_QUERY },
- ]}
update={this.update}
>
- {(removeItem, { error }) => (
+ {(deleteItem, { error }) => (
<button
onClick={() => {
if (confirm('Are you sure you want to delete this item?')) {
- removeItem();
+ deleteItem().catch(err => {
+ alert(err.message);
+ });
}
}}
>
- {error ? error.message : '× Delete Item'}
+ {this.props.children}
</button>
)}
</Mutation>
@@ -67,5 +47,4 @@ class DeleteItem extends React.Component {
}
}
-export default withRouter(DeleteItem);
-export { DELETE_ITEM_MUTATION };
+export default DeleteItem;
diff --git a/finished-application/frontend/components/Dump.js b/finished-application/frontend/components/Dump.js
deleted file mode 100644
index f281281..0000000
--- a/finished-application/frontend/components/Dump.js
+++ /dev/null
@@ -1,19 +0,0 @@
-const Dump = props => (
- <div
- style={{
- fontSize: 20,
- border: '1px solid #efefef',
- padding: 10,
- background: 'white',
- }}
- >
- {Object.keys(props).map(prop => (
- <pre key={prop}>
- <strong style={{ color: 'white', background: 'red' }}>{prop} 💩</strong>
- {JSON.stringify(props[prop], '', ' ')}
- </pre>
- ))}
- </div>
-);
-
-export default Dump;
diff --git a/finished-application/frontend/components/EditUser.js b/finished-application/frontend/components/EditUser.js
deleted file mode 100644
index 1bb8e5b..0000000
--- a/finished-application/frontend/components/EditUser.js
+++ /dev/null
@@ -1,81 +0,0 @@
-import React from 'react';
-import { Query, Mutation } from 'react-apollo';
-import gql from 'graphql-tag';
-import Form from './styles/Form';
-import { CURRENT_USER_QUERY } from './User';
-import Error from './ErrorMessage';
-import User from './User';
-
-const UPDATE_USER_MUTATION = gql`
- mutation updateUser($name: String!) {
- updateUser(name: $name) {
- name
- }
- }
-`;
-
-class EditUser extends React.Component {
- state = {
- changes: {},
- };
-
- handleChange = e => {
- const { name, value } = e.target;
- const changes = {
- ...this.state.changes,
- [name]: value,
- };
- this.setState({ changes });
- };
-
- handleSubmit = async (e, updateUser) => {
- e.preventDefault();
- // only submit if there are real changes
- if (Object.keys(this.state.changes).length === 0) return;
- await updateUser();
- this.setState({ changes: {} });
- };
-
- render() {
- return (
- <User>
- {({ data: { me }, loading }) => {
- if (loading) return <p>Loading...</p>;
- return (
- <Mutation
- mutation={UPDATE_USER_MUTATION}
- refetchQueries={[{ query: CURRENT_USER_QUERY }]}
- variables={this.state.changes}
- >
- {(updateUser, { error, called }) => (
- <Form onSubmit={e => this.handleSubmit(e, updateUser)}>
- <Error error={error} />
- <fieldset disabled={loading} aria-busy={loading}>
- {called && !error && <p data-test="updated">Updated!</p>}
- <label htmlFor="name">
- Name:
- <input
- type="text"
- name="name"
- defaultValue={me.name}
- onChange={this.handleChange}
- />
- </label>
- <button type="submit">Update</button>
- <strong>me:</strong>
- <pre>{JSON.stringify(me.name)}</pre>
- <strong>Change:</strong>
- <pre data-test="change">{JSON.stringify(this.state.changes)}</pre>
- </fieldset>
- </Form>
- )}
- </Mutation>
- );
- }}
- </User>
- );
- }
-}
-
-export default EditUser;
-export { UPDATE_USER_MUTATION };
diff --git a/finished-application/frontend/components/Header.js b/finished-application/frontend/components/Header.js
index bb05c34..797eb8e 100644
--- a/finished-application/frontend/components/Header.js
+++ b/finished-application/frontend/components/Header.js
@@ -1,36 +1,21 @@
-import React from 'react';
+import Link from 'next/link';
+import styled from 'styled-components';
import NProgress from 'nprogress';
import Router from 'next/router';
-import styled from 'styled-components';
-import Link from 'next/link';
+import Nav from './Nav';
import Cart from './Cart';
import Search from './Search';
-import Nav from './Nav';
Router.onRouteChangeStart = () => {
NProgress.start();
};
-Router.onRouteChangeComplete = () => NProgress.done();
-Router.onRouteChangeError = () => NProgress.done();
+Router.onRouteChangeComplete = () => {
+ NProgress.done();
+};
-const StyledHeader = styled.header`
- .bar {
- border-bottom: 10px solid ${props => props.theme.black};
- display: grid;
- grid-template-columns: auto 1fr;
- justify-content: space-between;
- align-items: stretch;
- @media (max-width: 1300px) {
- grid-template-columns: 1fr;
- justify-content: center;
- }
- }
- .sub-bar {
- display: grid;
- grid-template-columns: 1fr auto;
- border-bottom: 1px solid ${props => props.theme.lightgrey};
- }
-`;
+Router.onRouteChangeError = () => {
+ NProgress.done();
+};
const Logo = styled.h1`
font-size: 4rem;
@@ -42,8 +27,8 @@ const Logo = styled.h1`
padding: 0.5rem 1rem;
background: ${props => props.theme.red};
color: white;
- letter-spacing: -2px;
text-transform: uppercase;
+ text-decoration: none;
}
@media (max-width: 1300px) {
margin: 0;
@@ -51,12 +36,31 @@ const Logo = styled.h1`
}
`;
+const StyledHeader = styled.header`
+ .bar {
+ border-bottom: 10px solid ${props => props.theme.black};
+ display: grid;
+ grid-template-columns: auto 1fr;
+ justify-content: space-between;
+ align-items: stretch;
+ @media (max-width: 1300px) {
+ grid-template-columns: 1fr;
+ justify-content: center;
+ }
+ }
+ .sub-bar {
+ display: grid;
+ grid-template-columns: 1fr auto;
+ border-bottom: 1px solid ${props => props.theme.lightgrey};
+ }
+`;
+
const Header = () => (
<StyledHeader>
<div className="bar">
<Logo>
<Link href="/">
- <a>Sick&nbsp;Fits!</a>
+ <a>Sick Fits</a>
</Link>
</Logo>
<Nav />
diff --git a/finished-application/frontend/components/Item.js b/finished-application/frontend/components/Item.js
index d6b339e..2741dcf 100644
--- a/finished-application/frontend/components/Item.js
+++ b/finished-application/frontend/components/Item.js
@@ -1,23 +1,24 @@
-import React from 'react';
+import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Link from 'next/link';
import Title from './styles/Title';
-import AddToCart from './AddToCart';
-import DeleteItem from './DeleteItem';
-import formatMoney from '../lib/formatMoney';
import ItemStyles from './styles/ItemStyles';
import PriceTag from './styles/PriceTag';
+import formatMoney from '../lib/formatMoney';
+import DeleteItem from './DeleteItem';
+import AddToCart from './AddToCart';
-class Item extends React.Component {
+export default class Item extends Component {
static propTypes = {
item: PropTypes.object.isRequired,
};
render() {
- const item = this.props.item;
+ const { item } = this.props;
return (
- <ItemStyles key={item.id}>
+ <ItemStyles>
{item.image && <img src={item.image} alt={item.title} />}
+
<Title>
<Link
href={{
@@ -28,26 +29,22 @@ class Item extends React.Component {
<a>{item.title}</a>
</Link>
</Title>
-
<PriceTag>{formatMoney(item.price)}</PriceTag>
-
<p>{item.description}</p>
<div className="buttonList">
<Link
href={{
- pathname: '/update',
+ pathname: 'update',
query: { id: item.id },
}}
>
<a>Edit ✏️</a>
</Link>
<AddToCart id={item.id} />
- <DeleteItem id={item.id} />
+ <DeleteItem id={item.id}>Delete This Item</DeleteItem>
</div>
</ItemStyles>
);
}
}
-
-export default Item;
diff --git a/finished-application/frontend/components/Items.js b/finished-application/frontend/components/Items.js
index 5694d0b..9b5426c 100644
--- a/finished-application/frontend/components/Items.js
+++ b/finished-application/frontend/components/Items.js
@@ -1,17 +1,14 @@
-import React from 'react';
+import React, { Component } from 'react';
import { Query } from 'react-apollo';
-import styled from 'styled-components';
-import PropTypes from 'prop-types';
import gql from 'graphql-tag';
-import Pagination from './Pagination';
+import styled from 'styled-components';
import Item from './Item';
-import LoadingItem from './LoadingItem';
+import Pagination from './Pagination';
import { perPage } from '../config';
const ALL_ITEMS_QUERY = gql`
query ALL_ITEMS_QUERY($skip: Int = 0, $first: Int = ${perPage}) {
- items(orderBy: createdAt_DESC, first: $first, skip: $skip) {
- __typename
+ items(first: $first, skip: $skip, orderBy: createdAt_DESC) {
id
title
price
@@ -22,7 +19,11 @@ const ALL_ITEMS_QUERY = gql`
}
`;
-const Items = styled.div`
+const Center = styled.div`
+ text-align: center;
+`;
+
+const ItemsList = styled.div`
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 60px;
@@ -30,38 +31,24 @@ const Items = styled.div`
margin: 0 auto;
`;
-const Center = styled.div`
- text-align: center;
-`;
-
-class ItemList extends React.Component {
- static propTypes = {
- page: PropTypes.number.isRequired,
- };
+class Items extends Component {
render() {
return (
- <Center key={this.props.page}>
+ <Center>
<Pagination page={this.props.page} />
<Query
query={ALL_ITEMS_QUERY}
+ // fetchPolicy="network-only"
variables={{
skip: this.props.page * perPage - perPage,
- first: perPage,
}}
- // fetchPolicy="network-only"
>
{({ data, error, loading }) => {
- if (loading) {
- return (
- <Items>
- {Array.from({ length: 4 })
- .map((x, id) => ({ id }))
- .map(x => <LoadingItem key={x.id} />)}
- </Items>
- );
- }
- if (error) return <div>Error</div>;
- return <Items>{data.items.map(item => <Item key={item.id} item={item} />)}</Items>;
+ if (loading) return <p>Loading...</p>;
+ if (error) return <p>Error: {error.message}</p>;
+ return (
+ <ItemsList>{data.items.map(item => <Item item={item} key={item.id} />)}</ItemsList>
+ );
}}
</Query>
<Pagination page={this.props.page} />
@@ -70,5 +57,5 @@ class ItemList extends React.Component {
}
}
-export default ItemList;
+export default Items;
export { ALL_ITEMS_QUERY };
diff --git a/finished-application/frontend/components/LoadingItem.js b/finished-application/frontend/components/LoadingItem.js
deleted file mode 100644
index 5736337..0000000
--- a/finished-application/frontend/components/LoadingItem.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import React from 'react';
-import Title from './styles/Title';
-import ItemStyles from './styles/ItemStyles';
-
-class LoadingItem extends React.Component {
- render() {
- return (
- <ItemStyles>
- <img
- src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
- alt="Loading..."
- />>
- <Title>
- <a>Loading...</a>
- </Title>
- <p>Please Wait</p>
- </ItemStyles>
- );
- }
-}
-
-export default LoadingItem;
diff --git a/finished-application/frontend/components/Meta.js b/finished-application/frontend/components/Meta.js
index fe9c29f..2b98f92 100644
--- a/finished-application/frontend/components/Meta.js
+++ b/finished-application/frontend/components/Meta.js
@@ -1,16 +1,13 @@
-import React from 'react';
import Head from 'next/head';
const Meta = () => (
- <div>
- <Head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta charSet="utf-8" />
- <link rel="shortcut icon" href="/static/favicon.png" />
- <link rel="stylesheet" type="text/css" href="/static/nprogress.css" />
- <title>Sick Fits!</title>
- </Head>
- </div>
+ <Head>
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta charSet="utf-8" />
+ <link rel="shortcut icon" href="/static/favicon.png" />
+ <link rel="stylesheet" type="text/css" href="/static/nprogress.css" />
+ <title>Sick Fits!</title>
+ </Head>
);
export default Meta;
diff --git a/finished-application/frontend/components/Nav.js b/finished-application/frontend/components/Nav.js
index b483376..118db5a 100644
--- a/finished-application/frontend/components/Nav.js
+++ b/finished-application/frontend/components/Nav.js
@@ -1,59 +1,49 @@
-import React, { Fragment } from 'react';
import Link from 'next/link';
-import { Query, Mutation } from 'react-apollo';
+import { Mutation } from 'react-apollo';
import { TOGGLE_CART_MUTATION } from './Cart';
+import NavStyles from './styles/NavStyles';
import User from './User';
import CartCount from './CartCount';
import Signout from './Signout';
-import NavStyles from './styles/NavStyles';
-class Nav extends React.Component {
- render() {
- // below we set the fetchPolicy to network only so it forces re-fetch on the server
- return (
- <User>
- {({ data: { me }, error }) => (
- <NavStyles data-test="nav">
- <Link href="/items">
- <a>Shop</a>
- </Link>
+const Nav = () => (
+ <User>
+ {({ data: { me } }) => (
+ <NavStyles data-test="nav">
+ <Link href="/items">
+ <a>Shop</a>
+ </Link>
+ {me && (
+ <>
<Link href="/sell">
<a>Sell</a>
</Link>
+ <Link href="/orders">
+ <a>Orders</a>
+ </Link>
+ <Link href="/me">
+ <a>Account</a>
+ </Link>
+ <Signout />
+ <Mutation mutation={TOGGLE_CART_MUTATION}>
+ {(toggleCart) => (
+ <button onClick={toggleCart}>
+ My Cart
+ <CartCount count={me.cart.reduce((tally, cartItem) => tally + cartItem.quantity, 0)}></CartCount>
+ </button>
+ )}
+ </Mutation>
+ </>
+ )}
+ {!me && (
+ <Link href="/signup">
+ <a>Sign In</a>
+ </Link>
- {!me && (
- <Link href="/signup">
- <a>Sign In</a>
- </Link>
- )}
-
- {me && (
- <Fragment>
- <Link href="/orders">
- <a>Orders</a>
- </Link>
- <Link href="/me">
- <a>My Account</a>
- </Link>
- <Signout />
- <Mutation mutation={TOGGLE_CART_MUTATION}>
- {toggleCart => (
- <button onClick={toggleCart}>
- My Cart
- <CartCount
- className="cart-count"
- count={me.cart.reduce((tally, cartItem) => tally + cartItem.quantity, 0)}
- />
- </button>
- )}
- </Mutation>
- </Fragment>
- )}
- </NavStyles>
)}
- </User>
- );
- }
-}
+ </NavStyles>
+ )}
+ </User>
+);
export default Nav;
diff --git a/finished-application/frontend/components/Order.js b/finished-application/frontend/components/Order.js
index b4a0a0e..5177c0a 100644
--- a/finished-application/frontend/components/Order.js
+++ b/finished-application/frontend/components/Order.js
@@ -1,8 +1,8 @@
-import { Component } from 'react';
+import React from 'react';
+import PropTypes from 'prop-types';
import { Query } from 'react-apollo';
import { format } from 'date-fns';
import Head from 'next/head';
-import PropTypes from 'prop-types';
import gql from 'graphql-tag';
import formatMoney from '../lib/formatMoney';
import Error from './ErrorMessage';
@@ -21,8 +21,8 @@ const SINGLE_ORDER_QUERY = gql`
items {
id
title
- price
description
+ price
image
quantity
}
@@ -30,21 +30,16 @@ const SINGLE_ORDER_QUERY = gql`
}
`;
-class Order extends Component {
+class Order extends React.Component {
static propTypes = {
id: PropTypes.string.isRequired,
};
-
render() {
return (
- <Query
- query={SINGLE_ORDER_QUERY}
- variables={{ id: this.props.id }}
- fetchPolicy="network-only"
- >
- {({ data, error, loading, refetch }) => {
+ <Query query={SINGLE_ORDER_QUERY} variables={{ id: this.props.id }}>
+ {({ data, error, loading }) => {
+ if (error) return <Error error={error} />;
if (loading) return <p>Loading...</p>;
- if (error) return <Error error={error} refetch={refetch} />;
const order = data.order;
return (
<OrderStyles data-test="order">
@@ -52,8 +47,8 @@ class Order extends Component {
<title>Sick Fits - Order {order.id}</title>
</Head>
<p>
- <span>Order Id:</span>
- <span>{order.id}</span>
+ <span>Order ID:</span>
+ <span>{this.props.id}</span>
</p>
<p>
<span>Charge</span>
@@ -61,7 +56,7 @@ class Order extends Component {
</p>
<p>
<span>Date</span>
- <span>{format(order.createdAt, 'MMMM D, YYYY h:mm A')}</span>
+ <span>{format(order.createdAt, 'MMMM d, YYYY h:mm a')}</span>
</p>
<p>
<span>Order Total</span>
@@ -76,11 +71,10 @@ class Order extends Component {
<div className="order-item" key={item.id}>
<img src={item.image} alt={item.title} />
<div className="item-details">
- <h2> {item.title} </h2>
+ <h2>{item.title}</h2>
<p>Qty: {item.quantity}</p>
<p>Each: {formatMoney(item.price)}</p>
- <p>Subtotal: {formatMoney(item.price * item.quantity)}</p>
- <p>SubTotal: {item.description}</p>
+ <p>SubTotal: {formatMoney(item.price * item.quantity)}</p>
<p>{item.description}</p>
</div>
</div>
diff --git a/finished-application/frontend/components/OrderList.js b/finished-application/frontend/components/OrderList.js
index 5886ad7..e2e22ff 100644
--- a/finished-application/frontend/components/OrderList.js
+++ b/finished-application/frontend/components/OrderList.js
@@ -4,16 +4,16 @@ import { formatDistance } from 'date-fns';
import Link from 'next/link';
import styled from 'styled-components';
import gql from 'graphql-tag';
+import Error from './ErrorMessage';
import formatMoney from '../lib/formatMoney';
import OrderItemStyles from './styles/OrderItemStyles';
const USER_ORDERS_QUERY = gql`
- query orders {
+ query USER_ORDERS_QUERY {
orders(orderBy: createdAt_DESC) {
id
total
createdAt
- updatedAt
items {
id
title
@@ -26,7 +26,7 @@ const USER_ORDERS_QUERY = gql`
}
`;
-const OrderUl = styled.ul`
+const orderUl = styled.ul`
display: grid;
grid-gap: 4rem;
grid-template-columns: repeat(auto-fit, minmax(40%, 1fr));
@@ -37,13 +37,13 @@ class OrderList extends React.Component {
return (
<Query query={USER_ORDERS_QUERY}>
{({ data: { orders }, loading, error }) => {
- if (loading) return <p>Loading...</p>;
- if (error) return <p>Error...</p>;
- if (!orders || !orders.length) return <p>No Orders Yet!</p>;
+ if (loading) return <p>loading...</p>;
+ if (error) return <Error erorr={error} />;
+ console.log(orders);
return (
<div>
- <h2>You have {orders.length} Orders</h2>
- <OrderUl>
+ <h2>You have {orders.length} orders</h2>
+ <orderUl>
{orders.map(order => (
<OrderItemStyles key={order.id}>
<Link
@@ -54,22 +54,10 @@ class OrderList extends React.Component {
>
<a>
<div className="order-meta">
- <p>
- <strong>{order.items.reduce((a, b) => a + b.quantity, 0)}</strong>
- Items
- </p>
- <p>
- <strong>{order.items.length}</strong>
- Products
- </p>
- <p>
- <strong>{formatDistance(order.createdAt, new Date())}</strong>
- ago
- </p>
- <p>
- <strong>{formatMoney(order.total)}</strong>
- Total
- </p>
+ <p>{order.items.reduce((a, b) => a + b.quantity, 0)} Items</p>
+ <p>{order.items.length} Products</p>
+ <p>{formatDistance(order.createdAt, new Date())}</p>
+ <p>{formatMoney(order.total)}</p>
</div>
<div className="images">
{order.items.map(item => (
@@ -80,7 +68,7 @@ class OrderList extends React.Component {
</Link>
</OrderItemStyles>
))}
- </OrderUl>
+ </orderUl>
</div>
);
}}
@@ -90,4 +78,3 @@ class OrderList extends React.Component {
}
export default OrderList;
-export { USER_ORDERS_QUERY };
diff --git a/finished-application/frontend/components/Page.js b/finished-application/frontend/components/Page.js
index c3e04ac..75ab84a 100644
--- a/finished-application/frontend/components/Page.js
+++ b/finished-application/frontend/components/Page.js
@@ -1,8 +1,7 @@
-import React from 'react';
+import React, { Component } from 'react';
import styled, { ThemeProvider, injectGlobal } from 'styled-components';
-import PropTypes from 'prop-types';
-import Header from './Header';
-import Meta from './Meta';
+import Header from '../components/Header';
+import Meta from '../components/Meta';
const theme = {
red: '#FF0000',
@@ -10,47 +9,49 @@ const theme = {
grey: '#3A3A3A',
lightgrey: '#E1E1E1',
offWhite: '#EDEDED',
- maxWidth: '1300px',
+ maxWidth: '1000px',
bs: '0 12px 24px 0 rgba(0, 0, 0, 0.09)',
};
+const StyledPage = styled.div`
+ background: white;
+ color: ${props => props.theme.black};
+`;
+
+const Inner = styled.div`
+ max-width: ${props => props.theme.maxWidth};
+ margin: 0 auto;
+ padding: 2rem;
+`;
+
injectGlobal`
- html {
- box-sizing: border-box;
- font-size: 10px;
+ @font-face {
+ font-family: 'radnika_next';
+ src: url('/static/radnikanext-medium-webfont.woff2') format('woff2');
+ font-weight: normal;
+ font-style: normal;
}
- body {
- font-family: 'radnika next', sans-serif;
- padding: 0;
- background-color: #ffffff;
- margin: 0;
- font-size: 1.5rem;
- line-height: 2;
+ html {
+ box-sizing: border-box;
+ font-size: 10px;
}
*, *:before, *:after {
box-sizing: inherit;
}
+ body {
+ padding: 0;
+ margin: 0;
+ font-size: 1.5rem;
+ line-height: 2;
+ font-family: 'radnika_next';
+ }
a {
- color: ${theme.black};
text-decoration: none;
+ color: ${theme.black};
}
`;
-const Inner = styled.div`
- max-width: 1000px;
- margin: 0 auto;
- padding: 2rem;
-`;
-
-const StyledPage = styled.div`
- color: ${props => props.theme.black};
- background: white;
-`;
-
-class Page extends React.Component {
- static propTypes = {
- children: PropTypes.node.isRequired,
- };
+class Page extends Component {
render() {
return (
<ThemeProvider theme={theme}>
diff --git a/finished-application/frontend/components/Pagination.js b/finished-application/frontend/components/Pagination.js
index f684840..b84af76 100644
--- a/finished-application/frontend/components/Pagination.js
+++ b/finished-application/frontend/components/Pagination.js
@@ -1,18 +1,14 @@
import React from 'react';
-import { Query } from 'react-apollo';
-import styled from 'styled-components';
-import Link from 'next/link';
-import PropTypes from 'prop-types';
import gql from 'graphql-tag';
+import { Query } from 'react-apollo';
import Head from 'next/head';
-import { perPage } from '../config';
+import Link from 'next/link';
import PaginationStyles from './styles/PaginationStyles';
-
-
+import { perPage } from '../config';
const PAGINATION_QUERY = gql`
- query itemsConnection($skip: Int = 0, $first: Int = 4) {
- itemsConnection(orderBy: createdAt_DESC, first: $first, skip: $skip) {
+ query PAGINATION_QUERY {
+ itemsConnection {
aggregate {
count
}
@@ -23,10 +19,10 @@ const PAGINATION_QUERY = gql`
const Pagination = props => (
<Query query={PAGINATION_QUERY}>
{({ data, loading, error }) => {
- if (loading || error) return null;
- const { aggregate } = data.itemsConnection;
- const { page } = props;
- const pages = Math.ceil(aggregate.count / perPage);
+ if (loading) return <p>Loading...</p>;
+ const count = data.itemsConnection.aggregate.count;
+ const pages = Math.ceil(count / perPage);
+ const page = props.page;
return (
<PaginationStyles data-test="pagination">
<Head>
@@ -42,15 +38,14 @@ const Pagination = props => (
}}
>
<a className="prev" aria-disabled={page <= 1}>
- ←Prev
+ ← Prev
</a>
</Link>
<p>
- Page <strong>{page} </strong> of <strong className="totalPages">{pages}</strong>
- </p>
- <p>
- <strong>{aggregate.count}</strong> Items Total
+ Page {props.page} of
+ <span className="totalPages">{pages}</span>!
</p>
+ <p>{count} Items Total</p>
<Link
prefetch
href={{
@@ -68,9 +63,5 @@ const Pagination = props => (
</Query>
);
-Pagination.propTypes = {
- page: PropTypes.number.isRequired,
-};
-
export default Pagination;
export { PAGINATION_QUERY };
diff --git a/finished-application/frontend/components/Permissions.js b/finished-application/frontend/components/Permissions.js
index 52a6acf..4b08c39 100644
--- a/finished-application/frontend/components/Permissions.js
+++ b/finished-application/frontend/components/Permissions.js
@@ -1,57 +1,84 @@
-import React from 'react';
import { Query, Mutation } from 'react-apollo';
-import PropTypes from 'prop-types';
-import gql from 'graphql-tag';
import Error from './ErrorMessage';
-import SickButton from './styles/SickButton';
+import gql from 'graphql-tag';
import Table from './styles/Table';
+import SickButton from './styles/SickButton';
+import PropTypes from 'prop-types';
-const ALL_USERS_QUERY = gql`
- query {
- users {
+const possiblePermissions = [
+ 'ADMIN',
+ 'USER',
+ 'ITEMCREATE',
+ 'ITEMUPDATE',
+ 'ITEMDELETE',
+ 'PERMISSIONUPDATE',
+];
+
+const UPDATE_PERMISSIONS_MUTATION = gql`
+ mutation updatePermissions($permissions: [Permission], $userId: ID!) {
+ updatePermissions(permissions: $permissions, userId: $userId) {
id
+ permissions
name
email
- permissions
}
}
`;
-const UPDATE_PERMISSIONS_MUTATION = gql`
- mutation updatePermissions($permissions: [Permission], $userId: ID!) {
- updatePermissions(permissions: $permissions, userId: $userId) {
+const ALL_USERS_QUERY = gql`
+ query {
+ users {
id
- permissions
name
email
+ permissions
}
}
`;
-const possiblePermissions = [
- 'ADMIN',
- 'USER',
- 'ITEMCREATE',
- 'ITEMUPDATE',
- 'ITEMDELETE',
- 'PERMISSIONUPDATE',
-];
+const Permissions = props => (
+ <Query query={ALL_USERS_QUERY}>
+ {({ data, loading, error }) => (
+ <div>
+ <Error error={error} />
+ <div>
+ <h2>Manage Permissions</h2>
+ <Table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Email</th>
+ {possiblePermissions.map(permission => <th key={permission}>{permission}</th>)}
+ <th>👇🏻</th>
+ </tr>
+ </thead>
+ <tbody>{data.users.map(user => <UserPermissions user={user} key={user.id} />)}</tbody>
+ </Table>
+ </div>
+ </div>
+ )}
+ </Query>
+);
-class User extends React.Component {
+class UserPermissions extends React.Component {
static propTypes = {
user: PropTypes.shape({
- permissions: PropTypes.array.isRequired,
- id: PropTypes.string.isRequired,
+ name: PropTypes.string,
+ email: PropTypes.string,
+ id: PropTypes.string,
+ permissions: PropTypes.array,
}).isRequired,
};
state = {
permissions: this.props.user.permissions,
};
- handlePermissionsChange = e => {
+ handlePermissionChange = (e) => {
const checkbox = e.target;
+ // take a copy of the current permissions
let updatedPermissions = [...this.state.permissions];
+ // figure out if we need to remove or add this permission
if (checkbox.checked) {
- // add it in
+ // add it in!
updatedPermissions.push(checkbox.value);
} else {
updatedPermissions = updatedPermissions.filter(permission => permission !== checkbox.value);
@@ -59,75 +86,46 @@ class User extends React.Component {
this.setState({ permissions: updatedPermissions });
};
render() {
- const { user } = this.props;
+ const user = this.props.user;
return (
- <Mutation mutation={UPDATE_PERMISSIONS_MUTATION}>
+ <Mutation
+ mutation={UPDATE_PERMISSIONS_MUTATION}
+ variables={{
+ permissions: this.state.permissions,
+ userId: this.props.user.id,
+ }}
+ >
{(updatePermissions, { loading, error }) => (
- <tr key={user.id} className="user">
- <Error error={error} />
- <td>{user.name}</td>
- <td>{user.email}</td>
- {possiblePermissions.map(permission => (
+ <>
+ {error && <tr><td colspan="8"><Error error={error} /></td></tr>}
+ < tr >
+ <td>{user.name}</td>
+ <td>{user.email}</td>
+ {possiblePermissions.map(permission => (
+ <td key={permission}>
+ <label htmlFor={`${user.id}-permission-${permission}`}>
+ <input
+ id={`${user.id}-permission-${permission}`}
+ type="checkbox"
+ checked={this.state.permissions.includes(permission)}
+ value={permission}
+ onChange={this.handlePermissionChange}
+ />
+ </label>
+ </td>
+ ))}
<td>
- <label key={permission} htmlFor={`${user.id}-permission-${permission}`}>
- <input
- type="checkbox"
- checked={this.state.permissions.includes(permission)}
- name={`permission-${permission}`}
- id={`${user.id}-permission-${permission}`}
- onChange={this.handlePermissionsChange}
- value={permission}
- />
- </label>
+ <SickButton type="button" disabled={loading} onClick={updatePermissions}>
+ Updat{loading ? 'ing' : 'e'}
+ </SickButton>
</td>
- ))}
- <td>
- <SickButton
- type="button"
- disabled={loading}
- onClick={async () => {
- await updatePermissions({
- variables: {
- permissions: this.state.permissions,
- userId: this.props.user.id,
- },
- });
- }}
- >
- Updat{loading ? 'ing' : 'e'}
- </SickButton>
- </td>
- </tr>
- )}
+ </tr>
+ </>
+ )
+ }
</Mutation>
);
}
}
-const Permissions = () => (
- <Query query={ALL_USERS_QUERY}>
- {({ data, error, loading }) => {
- if (loading) return <div>Loading</div>;
- if (error) return <Error error={error} />;
- return (
- <div>
- <h1>Manage User Permissions</h1>
- <Table>
- <thead>
- <tr>
- <th>Name</th>
- <th>Email</th>
- {possiblePermissions.map(p => <th>{p}</th>)}
- <th>👇🏻</th>
- </tr>
- </thead>
- <tbody>{data.users.map(user => <User key={user.id} user={user} />)}</tbody>
- </Table>
- </div>
- );
- }}
- </Query>
-);
-
export default Permissions;
-export { ALL_USERS_QUERY, UPDATE_PERMISSIONS_MUTATION };
diff --git a/finished-application/frontend/components/PleaseSignIn.js b/finished-application/frontend/components/PleaseSignIn.js
index 5646749..80cfdbf 100644
--- a/finished-application/frontend/components/PleaseSignIn.js
+++ b/finished-application/frontend/components/PleaseSignIn.js
@@ -1,5 +1,4 @@
import { Query } from 'react-apollo';
-import PropTypes from 'prop-types';
import { CURRENT_USER_QUERY } from './User';
import Signin from './Signin';
@@ -7,40 +6,17 @@ const PleaseSignIn = props => (
<Query query={CURRENT_USER_QUERY}>
{({ data, loading }) => {
if (loading) return <p>Loading...</p>;
- // check if they are signed in
if (!data.me) {
return (
<div>
- <p>Please sign in before continuing!</p>
+ <p>Please Sign In before Continuing</p>
<Signin />
</div>
);
}
- // check if they need permissions
- if (props.allowedPermissions) {
- // check if they NO permissions, or they don't meet the requmrenets
- if (
- !data.me.permissions ||
- !props.allowedPermissions.some(permission => data.me.permissions.includes(permission))
- ) {
- return (
- <p>
- Insufficient Permissions. You have:
- <strong>{data.me.permissions}</strong>
- and you need
- <strong>{props.allowedPermissions.join(' OR ')}</strong>
- </p>
- );
- }
- }
return props.children;
}}
</Query>
);
-PleaseSignIn.propTypes = {
- allowedPermissions: PropTypes.array,
- children: PropTypes.any.isRequired,
-};
-
export default PleaseSignIn;
diff --git a/finished-application/frontend/components/RemoveFromCart.js b/finished-application/frontend/components/RemoveFromCart.js
index d29cbf1..025dae5 100644
--- a/finished-application/frontend/components/RemoveFromCart.js
+++ b/finished-application/frontend/components/RemoveFromCart.js
@@ -1,4 +1,4 @@
-import { Component } from 'react';
+import React from 'react';
import { Mutation } from 'react-apollo';
import styled from 'styled-components';
import PropTypes from 'prop-types';
@@ -23,29 +23,43 @@ const BigButton = styled.button`
}
`;
-class RemoveFromCart extends Component {
+class RemoveFromCart extends React.Component {
static propTypes = {
id: PropTypes.string.isRequired,
};
-
+ // This gets called as soon as we get a response back from the server after a mutation has been performed
update = (cache, payload) => {
+ // 1. first read the cache
const data = cache.readQuery({ query: CURRENT_USER_QUERY });
- // console.log(data.me.cart[0]);
+ // 2. remove that item from the cart
const cartItemId = payload.data.removeFromCart.id;
data.me.cart = data.me.cart.filter(cartItem => cartItem.id !== cartItemId);
+ // 3. write it back to the cache
cache.writeQuery({ query: CURRENT_USER_QUERY, data });
};
-
render() {
return (
<Mutation
mutation={REMOVE_FROM_CART_MUTATION}
variables={{ id: this.props.id }}
update={this.update}
+ optimisticResponse={{
+ __typename: 'Mutation',
+ removeFromCart: {
+ __typename: 'CartItem',
+ id: this.props.id,
+ },
+ }}
>
- {(removeFromCart, { loading }) => (
- <BigButton disabled={loading} title="Remove From Cart" onClick={() => removeFromCart}>
- ×
+ {(removeFromCart, { loading, error }) => (
+ <BigButton
+ disabled={loading}
+ onClick={() => {
+ removeFromCart().catch(err => alert(err.message));
+ }}
+ title="Delete Item"
+ >
+ &times;
</BigButton>
)}
</Mutation>
diff --git a/finished-application/frontend/components/ResetRequest.js b/finished-application/frontend/components/RequestReset.js
index 6aedcc1..be21639 100644
--- a/finished-application/frontend/components/ResetRequest.js
+++ b/finished-application/frontend/components/RequestReset.js
@@ -1,44 +1,49 @@
-import React from 'react';
+import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
import gql from 'graphql-tag';
import Form from './styles/Form';
import Error from './ErrorMessage';
const REQUEST_RESET_MUTATION = gql`
- mutation requestReset($email: String!) {
+ mutation REQUEST_RESET_MUTATION($email: String!) {
requestReset(email: $email) {
- id
+ message
}
}
`;
-class ResetRequest extends React.Component {
+class RequestReset extends Component {
state = {
email: '',
};
-
+ saveToState = e => {
+ this.setState({ [e.target.name]: e.target.value });
+ };
render() {
return (
<Mutation mutation={REQUEST_RESET_MUTATION} variables={this.state}>
- {(resetMutation, { loading, error, called }) => (
+ {(reset, { error, loading, called }) => (
<Form
+ method="post"
+ data-test="form"
onSubmit={async e => {
e.preventDefault();
- await resetMutation();
+ await reset();
+ this.setState({ email: '' });
}}
- data-test="ResetRequest"
>
- <Error error={error} />
- {!error && called && !loading && <p>Success! Check Your Email!</p>}
<fieldset disabled={loading} aria-busy={loading}>
+ <h2>Request a password reset</h2>
+ <Error error={error} />
+ {!error && !loading && called && <p>Success! Check your email for a reset link!</p>}
<label htmlFor="email">
Email
<input
- value={this.state.email}
- onChange={e => this.setState({ email: e.target.value })}
+ type="email"
name="email"
- type="text"
placeholder="email"
+ value={this.state.email}
+ onChange={this.saveToState}
/>
</label>
@@ -51,5 +56,5 @@ class ResetRequest extends React.Component {
}
}
-export default ResetRequest;
+export default RequestReset;
export { REQUEST_RESET_MUTATION };
diff --git a/finished-application/frontend/components/Reset.js b/finished-application/frontend/components/Reset.js
index bb2ece0..a132f03 100644
--- a/finished-application/frontend/components/Reset.js
+++ b/finished-application/frontend/components/Reset.js
@@ -1,7 +1,7 @@
-import React from 'react';
+import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
-import PropTypes from 'prop-types';
import gql from 'graphql-tag';
+import PropTypes from 'prop-types';
import Form from './styles/Form';
import Error from './ErrorMessage';
import { CURRENT_USER_QUERY } from './User';
@@ -16,26 +16,17 @@ const RESET_MUTATION = gql`
}
`;
-class Reset extends React.Component {
+class Reset extends Component {
static propTypes = {
resetToken: PropTypes.string.isRequired,
};
-
state = {
- confirmPassword: '',
password: '',
+ confirmPassword: '',
};
-
saveToState = e => {
- const { name, value } = e.target;
- this.setState({ [name]: value });
- };
-
- resetPassword = async (e, resetMutation) => {
- e.preventDefault();
- await resetMutation();
+ this.setState({ [e.target.name]: e.target.value });
};
-
render() {
return (
<Mutation
@@ -47,32 +38,41 @@ class Reset extends React.Component {
}}
refetchQueries={[{ query: CURRENT_USER_QUERY }]}
>
- {(resetMutation, { error, loading }) => (
- <Form onSubmit={e => this.resetPassword(e, resetMutation)}>
- <Error error={error} />
+ {(reset, { error, loading, called }) => (
+ <Form
+ method="post"
+ onSubmit={async e => {
+ e.preventDefault();
+ await reset();
+ this.setState({ password: '', confirmPassword: '' });
+ }}
+ >
<fieldset disabled={loading} aria-busy={loading}>
+ <h2>Reset Your Password</h2>
+ <Error error={error} />
<label htmlFor="password">
- password
+ Password
<input
+ type="password"
+ name="password"
+ placeholder="password"
value={this.state.password}
onChange={this.saveToState}
- name="password"
- type="password"
- id="password"
/>
</label>
- <label htmlFor="confirm">
- Confirm:
+
+ <label htmlFor="confirmPassword">
+ Confirm Your Password
<input
+ type="password"
+ name="confirmPassword"
+ placeholder="confirmPassword"
value={this.state.confirmPassword}
onChange={this.saveToState}
- name="confirmPassword"
- type="password"
- id="confirmPassword"
/>
</label>
- <button type="submit">Request Reset!</button>
+ <button type="submit">Reset Your Password!</button>
</fieldset>
</Form>
)}
@@ -82,4 +82,3 @@ class Reset extends React.Component {
}
export default Reset;
-export { RESET_MUTATION };
diff --git a/finished-application/frontend/components/Search.js b/finished-application/frontend/components/Search.js
index a972db2..c29f93e 100644
--- a/finished-application/frontend/components/Search.js
+++ b/finished-application/frontend/components/Search.js
@@ -1,10 +1,10 @@
import React from 'react';
-import Downshift from 'downshift';
+import Downshift, { resetIdCounter } from 'downshift';
import Router from 'next/router';
import { ApolloConsumer } from 'react-apollo';
import gql from 'graphql-tag';
-import styled, { keyframes } from 'styled-components';
import debounce from 'lodash.debounce';
+import { DropDown, DropDownItem, SearchStyles } from './styles/DropDown';
const SEARCH_ITEMS_QUERY = gql`
query SEARCH_ITEMS_QUERY($searchTerm: String!) {
@@ -15,6 +15,7 @@ const SEARCH_ITEMS_QUERY = gql`
}
}
`;
+
function routeToItem(item) {
Router.push({
pathname: '/item',
@@ -24,83 +25,38 @@ function routeToItem(item) {
});
}
-const DropDown = styled.div`
- position: absolute;
- width: 100%;
- z-index: 2;
- border: 1px solid ${props => props.theme.lightgrey};
-`;
-
-const DropDownItem = styled.div`
- border-bottom: 1px solid ${props => props.theme.lightgrey};
- background: ${props => (props.highlighted ? '#f7f7f7' : 'white')};
- padding: 1rem;
- transition: all 0.2s;
- ${props => (props.highlighted ? 'padding-left: 2rem;' : null)};
- display: flex;
- align-items: center;
- border-left: 10px solid ${props => (props.highlighted ? props.theme.lightgrey : 'white')};
- img {
- margin-right: 10px;
- }
-`;
-
-const glow = keyframes`
- from {
- box-shadow: 0 0 0px yellow;
- }
-
- to {
- box-shadow: 0 0 10px 1px yellow;
- }
-`;
-
-const SearchStyles = styled.div`
- position: relative;
- input {
- width: 100%;
- padding: 10px;
- border: 0;
- font-size: 2rem;
- &.loading {
- animation: ${glow} 0.5s ease-in-out infinite alternate;
- }
- }
-`;
-
class AutoComplete extends React.Component {
state = {
items: [],
loading: false,
};
- onChange = async (e, client) => {
- if (!e.target.value) {
- return this.setState({ items: [] });
- }
+ onChange = debounce(async (e, client) => {
+ console.log('Searching...');
+ // turn loading on
this.setState({ loading: true });
- this.search(client, e.target.value);
- };
-
- search = debounce(async (client, searchTerm) => {
+ // Manually query apollo client
const res = await client.query({
query: SEARCH_ITEMS_QUERY,
- variables: { searchTerm },
+ variables: { searchTerm: e.target.value },
+ });
+ this.setState({
+ items: res.data.items,
+ loading: false,
});
- this.setState({ items: res.data.items, loading: false });
}, 350);
-
render() {
+ resetIdCounter();
return (
<SearchStyles>
- <Downshift onChange={routeToItem} itemToString={i => (i === null ? '' : i.title)}>
+ <Downshift onChange={routeToItem} itemToString={item => (item === null ? '' : item.title)}>
{({ getInputProps, getItemProps, isOpen, inputValue, highlightedIndex }) => (
<div>
- {/* This is the searchInput */}
<ApolloConsumer>
{client => (
<input
{...getInputProps({
- placeholder: 'Search For Item',
+ type: 'search',
+ placeholder: 'Search For An Item',
id: 'search',
className: this.state.loading ? 'loading' : '',
onChange: e => {
@@ -111,24 +67,20 @@ class AutoComplete extends React.Component {
/>
)}
</ApolloConsumer>
- {/* This is the Dropdown */}
{isOpen && (
<DropDown>
{this.state.items.map((item, index) => (
<DropDownItem
{...getItemProps({ item })}
key={item.id}
- highlighted={highlightedIndex === index}
+ highlighted={index === highlightedIndex}
>
<img width="50" src={item.image} alt={item.title} />
{item.title}
</DropDownItem>
))}
- {/* Found Nothing State */}
{!this.state.items.length &&
- !this.state.loading && (
- <DropDownItem>Nothing Found for {inputValue}...</DropDownItem>
- )}
+ !this.state.loading && <DropDownItem> Nothing Found {inputValue}</DropDownItem>}
</DropDown>
)}
</div>
@@ -140,4 +92,3 @@ class AutoComplete extends React.Component {
}
export default AutoComplete;
-export { SEARCH_ITEMS_QUERY };
diff --git a/finished-application/frontend/components/Signin.js b/finished-application/frontend/components/Signin.js
index 53cdb76..4fd3013 100644
--- a/finished-application/frontend/components/Signin.js
+++ b/finished-application/frontend/components/Signin.js
@@ -1,9 +1,9 @@
import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
import gql from 'graphql-tag';
-import { CURRENT_USER_QUERY } from './User';
-import Error from './ErrorMessage';
import Form from './styles/Form';
+import Error from './ErrorMessage';
+import { CURRENT_USER_QUERY } from './User';
const SIGNIN_MUTATION = gql`
mutation SIGNIN_MUTATION($email: String!, $password: String!) {
@@ -17,15 +17,13 @@ const SIGNIN_MUTATION = gql`
class Signin extends Component {
state = {
- email: '',
+ name: '',
password: '',
+ email: '',
};
-
saveToState = e => {
- const { name, value } = e.target;
- this.setState({ [name]: value });
+ this.setState({ [e.target.name]: e.target.value });
};
-
render() {
return (
<Mutation
@@ -33,33 +31,33 @@ class Signin extends Component {
variables={this.state}
refetchQueries={[{ query: CURRENT_USER_QUERY }]}
>
- {(signin, { loading, error }) => (
+ {(signup, { error, loading }) => (
<Form
- onSubmit={e => {
+ method="post"
+ onSubmit={async e => {
e.preventDefault();
- signin();
+ await signup();
+ this.setState({ name: '', email: '', password: '' });
}}
>
- <Error error={error} />
<fieldset disabled={loading} aria-busy={loading}>
+ <h2>Sign into your account</h2>
+ <Error error={error} />
<label htmlFor="email">
Email
<input
- value={this.state.email}
- onChange={this.saveToState}
+ type="email"
name="email"
- type="text"
placeholder="email"
+ value={this.state.email}
+ onChange={this.saveToState}
/>
</label>
-
<label htmlFor="password">
Password
<input
type="password"
name="password"
- id="password"
- className="password"
placeholder="password"
value={this.state.password}
onChange={this.saveToState}
@@ -76,4 +74,3 @@ class Signin extends Component {
}
export default Signin;
-export { SIGNIN_MUTATION };
diff --git a/finished-application/frontend/components/Signout.js b/finished-application/frontend/components/Signout.js
index ae87631..f852531 100644
--- a/finished-application/frontend/components/Signout.js
+++ b/finished-application/frontend/components/Signout.js
@@ -11,15 +11,9 @@ const SIGN_OUT_MUTATION = gql`
}
`;
-class Signout extends Component {
- render() {
- return (
- <Mutation mutation={SIGN_OUT_MUTATION} refetchQueries={[{ query: CURRENT_USER_QUERY }]}>
- {signout => <button onClick={signout}>Sign Out</button>}
- </Mutation>
- );
- }
-}
-
+const Signout = props => (
+ <Mutation mutation={SIGN_OUT_MUTATION} refetchQueries={[{ query: CURRENT_USER_QUERY }]}>
+ {signout => <button onClick={signout}>Sign Out</button>}
+ </Mutation>
+);
export default Signout;
-export { SIGN_OUT_MUTATION };
diff --git a/finished-application/frontend/components/Signup.js b/finished-application/frontend/components/Signup.js
index 9164e67..e2f1a3f 100644
--- a/finished-application/frontend/components/Signup.js
+++ b/finished-application/frontend/components/Signup.js
@@ -1,9 +1,9 @@
import React, { Component } from 'react';
import { Mutation } from 'react-apollo';
import gql from 'graphql-tag';
-import { CURRENT_USER_QUERY } from './User';
import Form from './styles/Form';
import Error from './ErrorMessage';
+import { CURRENT_USER_QUERY } from './User';
const SIGNUP_MUTATION = gql`
mutation SIGNUP_MUTATION($email: String!, $name: String!, $password: String!) {
@@ -17,16 +17,13 @@ const SIGNUP_MUTATION = gql`
class Signup extends Component {
state = {
- email: '',
name: '',
+ email: '',
password: '',
};
-
saveToState = e => {
- const { name, value } = e.target;
- this.setState({ [name]: value });
+ this.setState({ [e.target.name]: e.target.value });
};
-
render() {
return (
<Mutation
@@ -34,28 +31,28 @@ class Signup extends Component {
variables={this.state}
refetchQueries={[{ query: CURRENT_USER_QUERY }]}
>
- {(signup, { loading, error }) => (
+ {(signup, { error, loading }) => (
<Form
method="post"
onSubmit={async e => {
e.preventDefault();
- const res = await signup();
+ await signup();
+ this.setState({ name: '', email: '', password: '' });
}}
>
<fieldset disabled={loading} aria-busy={loading}>
+ <h2>Sign Up for An Account</h2>
<Error error={error} />
- <h2>Sign Up for an Account</h2>
<label htmlFor="email">
Email
<input
- value={this.state.email}
- onChange={this.saveToState}
+ type="email"
name="email"
- type="text"
placeholder="email"
+ value={this.state.email}
+ onChange={this.saveToState}
/>
</label>
-
<label htmlFor="name">
Name
<input
@@ -66,21 +63,18 @@ class Signup extends Component {
onChange={this.saveToState}
/>
</label>
-
- <label htmlFor="signupPassword">
+ <label htmlFor="password">
Password
<input
type="password"
name="password"
- id="signupPassword"
- className="password"
placeholder="password"
value={this.state.password}
onChange={this.saveToState}
/>
</label>
- <button type="submit">Submit</button>
+ <button type="submit">Sign Up!</button>
</fieldset>
</Form>
)}
diff --git a/finished-application/frontend/components/SingleItem.js b/finished-application/frontend/components/SingleItem.js
index 83ef8a0..145b5ae 100644
--- a/finished-application/frontend/components/SingleItem.js
+++ b/finished-application/frontend/components/SingleItem.js
@@ -1,23 +1,9 @@
+import React, { Component } from 'react';
+import gql from 'graphql-tag';
import { Query } from 'react-apollo';
-import PropTypes from 'prop-types';
+import Error from './ErrorMessage';
import styled from 'styled-components';
import Head from 'next/head';
-import Link from 'next/link';
-import gql from 'graphql-tag';
-import Error from './ErrorMessage';
-import AddToCart from './AddToCart';
-
-const SINGLE_ITEM_QUERY = gql`
- query SINGLE_ITEM_QUERY($id: ID!) {
- items(where: { id: $id }) {
- id
- title
- description
- largeImage
- image
- }
- }
-`;
const SingleItemStyles = styled.div`
max-width: 1200px;
@@ -38,40 +24,47 @@ const SingleItemStyles = styled.div`
}
`;
-const SingleItem = props => (
- <Query query={SINGLE_ITEM_QUERY} variables={{ id: props.id }}>
- {({ data, loading, error }) => {
- if (loading) return <p>Loading...</p>;
- if (error) return <Error error={error} />;
- const [item] = data.items;
- return (
- <SingleItemStyles data-test="SingleItem">
- <Head>
- <title>{item.title}</title>
- </Head>
- <img src={item.largeImage || item.image} alt={item.title} />
- <div className="details">
- <h2>Viewing {item.title}</h2>
- <p>{item.description}</p>
- <Link
- href={{
- pathname: '/update',
- query: { id: item.id },
- }}
- >
- <a>Edit ✏️</a>
- </Link>
- <AddToCart id={item.id} />
- </div>
- </SingleItemStyles>
- );
- }}
- </Query>
-);
-
-SingleItem.propTypes = {
- id: PropTypes.string.isRequired,
-};
+const SINGLE_ITEM_QUERY = gql`
+ query SINGLE_ITEM_QUERY($id: ID!) {
+ item(where: { id: $id }) {
+ id
+ title
+ description
+ largeImage
+ }
+ }
+`;
+class SingleItem extends Component {
+ render() {
+ return (
+ <Query
+ query={SINGLE_ITEM_QUERY}
+ variables={{
+ id: this.props.id,
+ }}
+ >
+ {({ error, loading, data }) => {
+ if (error) return <Error error={error} />;
+ if (loading) return <p>Loading...</p>;
+ if (!data.item) return <p>No Item Found for {this.props.id}</p>;
+ const item = data.item;
+ return (
+ <SingleItemStyles>
+ <Head>
+ <title>Sick Fits | {item.title}</title>
+ </Head>
+ <img src={item.largeImage} alt={item.title} />
+ <div className="details">
+ <h2>Viewing {item.title}</h2>
+ <p>{item.description}</p>
+ </div>
+ </SingleItemStyles>
+ );
+ }}
+ </Query>
+ );
+ }
+}
export default SingleItem;
export { SINGLE_ITEM_QUERY };
diff --git a/finished-application/frontend/components/TakeMyMoney.js b/finished-application/frontend/components/TakeMyMoney.js
index b9e42ea..ca87832 100644
--- a/finished-application/frontend/components/TakeMyMoney.js
+++ b/finished-application/frontend/components/TakeMyMoney.js
@@ -1,6 +1,6 @@
-import { Component } from 'react';
+import React from 'react';
import StripeCheckout from 'react-stripe-checkout';
-import { Mutation, Query } from 'react-apollo';
+import { Mutation } from 'react-apollo';
import Router from 'next/router';
import NProgress from 'nprogress';
import PropTypes from 'prop-types';
@@ -27,28 +27,27 @@ function totalItems(cart) {
return cart.reduce((tally, cartItem) => tally + cartItem.quantity, 0);
}
-class TakeMyMoney extends Component {
+class TakeMyMoney extends React.Component {
onToken = async (res, createOrder) => {
NProgress.start();
+ // manually call the mutation once we have the stripe token
const order = await createOrder({
variables: {
token: res.id,
},
+ }).catch(err => {
+ alert(err.message);
});
- console.log(order);
- // Route them to that order page
- const { id } = order.data.createOrder;
Router.push({
- pathname: `/order`,
- query: { id },
+ pathname: '/order',
+ query: { id: order.data.createOrder.id },
});
};
render() {
return (
<User>
- {({ data: { me }, error }) => {
- if (!me || !me.cart.length) return null;
- if (error) return <Error error={error} />;
+ {({ data: { me }, loading }) => {
+ if (loading) return null;
return (
<Mutation
mutation={CREATE_ORDER_MUTATION}
@@ -57,13 +56,13 @@ class TakeMyMoney extends Component {
{createOrder => (
<StripeCheckout
amount={calcTotalPrice(me.cart)}
- name="Sick Fits Haul"
- description={`Order of ${totalItems(me.cart)} Items From Sick Fits`}
- image={me.cart[0].item && me.cart[0].item.image}
- token={res => this.onToken(res, createOrder)}
- stripeKey="pk_lclTtThFp8CnO3QtEZSd8HA9mFUps"
+ name="Sick Fits"
+ description={`Order of ${totalItems(me.cart)} items!`}
+ image={me.cart.length && me.cart[0].item && me.cart[0].item.image}
+ stripeKey="pk_test_Vtknn6vSdcZWSG2JWvEiWSqC"
currency="USD"
email={me.email}
+ token={res => this.onToken(res, createOrder)}
>
{this.props.children}
</StripeCheckout>
@@ -76,8 +75,5 @@ class TakeMyMoney extends Component {
}
}
-TakeMyMoney.propTypes = {
- children: PropTypes.any,
-};
-
export default TakeMyMoney;
+export { CREATE_ORDER_MUTATION };
diff --git a/finished-application/frontend/components/UpdateItem.js b/finished-application/frontend/components/UpdateItem.js
index 08ba254..11aef32 100644
--- a/finished-application/frontend/components/UpdateItem.js
+++ b/finished-application/frontend/components/UpdateItem.js
@@ -1,82 +1,79 @@
import React, { Component } from 'react';
-import { Query, Mutation } from 'react-apollo';
-import PropTypes from 'prop-types';
+import { Mutation, Query } from 'react-apollo';
import gql from 'graphql-tag';
-import { SINGLE_ITEM_QUERY } from './SingleItem';
+import Router from 'next/router';
import Form from './styles/Form';
+import formatMoney from '../lib/formatMoney';
import Error from './ErrorMessage';
+const SINGLE_ITEM_QUERY = gql`
+ query SINGLE_ITEM_QUERY($id: ID!) {
+ item(where: { id: $id }) {
+ id
+ title
+ description
+ price
+ }
+ }
+`;
const UPDATE_ITEM_MUTATION = gql`
- mutation updateItem($id: ID!, $title: String, $description: String, $price: Int) {
- updateItem(id: $id, description: $description, title: $title, price: $price) {
+ mutation UPDATE_ITEM_MUTATION($id: ID!, $title: String, $description: String, $price: Int) {
+ updateItem(id: $id, title: $title, description: $description, price: $price) {
id
+ title
+ description
+ price
}
}
`;
class UpdateItem extends Component {
- static propTypes = {
- id: PropTypes.string.isRequired,
- };
- state = {
- item: {},
- };
-
- saveToState = e => {
- let { name, value, type } = e.target;
- if (type === 'number') {
- value = parseInt(value);
- }
- const item = { ...this.state.item };
- item[name] = value;
- this.setState({ item });
+ state = {};
+ handleChange = e => {
+ const { name, type, value } = e.target;
+ const val = type === 'number' ? parseFloat(value) : value;
+ this.setState({ [name]: val });
};
-
updateItem = async (e, updateItemMutation) => {
- console.log('Updating Item');
e.preventDefault();
-
+ console.log('Updating Item!!');
+ console.log(this.state);
const res = await updateItemMutation({
- // pass in those variables from state
variables: {
id: this.props.id,
- ...this.state.item,
+ ...this.state,
},
});
- console.log(res);
+ console.log('Updated!!');
};
render() {
return (
- <Query query={SINGLE_ITEM_QUERY} variables={{ id: this.props.id }}>
- {({ data: { items }, loading }) => {
+ <Query
+ query={SINGLE_ITEM_QUERY}
+ variables={{
+ id: this.props.id,
+ }}
+ >
+ {({ data, loading }) => {
if (loading) return <p>Loading...</p>;
- if (!items || !items.length) return <p>Item Not Found</p>;
- const [item] = items;
+ if (!data.item) return <p>No Item Found for ID {this.props.id}</p>;
return (
- <Mutation mutation={UPDATE_ITEM_MUTATION}>
- {(updateItemMutation, { error }) => (
- <Form onSubmit={e => this.updateItem(e, updateItemMutation)}>
+ <Mutation mutation={UPDATE_ITEM_MUTATION} variables={this.state}>
+ {(updateItem, { loading, error }) => (
+ <Form onSubmit={e => this.updateItem(e, updateItem)}>
<Error error={error} />
- <h2>Edit {item.title}</h2>
<fieldset disabled={loading} aria-busy={loading}>
<label htmlFor="title">
Title
<input
+ type="text"
id="title"
- defaultValue={item.title}
name="title"
- onChange={this.saveToState}
- type="text"
- />
- </label>
-
- <label htmlFor="description">
- Description
- <textarea
- defaultValue={item.description}
- name="description"
- onChange={this.saveToState}
+ placeholder="Title"
+ required
+ defaultValue={data.item.title}
+ onChange={this.handleChange}
/>
</label>
@@ -84,12 +81,27 @@ class UpdateItem extends Component {
Price
<input
type="number"
+ id="price"
name="price"
- onChange={this.saveToState}
- defaultValue={item.price}
+ placeholder="Price"
+ required
+ defaultValue={data.item.price}
+ onChange={this.handleChange}
+ />
+ </label>
+
+ <label htmlFor="description">
+ Description
+ <textarea
+ id="description"
+ name="description"
+ placeholder="Enter A Description"
+ required
+ defaultValue={data.item.description}
+ onChange={this.handleChange}
/>
</label>
- <button type="submit">Save...</button>
+ <button type="submit">Sav{loading ? 'ing' : 'e'} Changes</button>
</fieldset>
</Form>
)}
diff --git a/finished-application/frontend/components/User.js b/finished-application/frontend/components/User.js
index 19c568d..6f8a4fb 100644
--- a/finished-application/frontend/components/User.js
+++ b/finished-application/frontend/components/User.js
@@ -11,20 +11,16 @@ const CURRENT_USER_QUERY = gql`
permissions
orders {
id
- charge
- total
}
cart {
id
quantity
item {
- __typename
id
- title
price
- description
image
- largeImage
+ title
+ description
}
}
}
@@ -33,7 +29,7 @@ const CURRENT_USER_QUERY = gql`
const User = props => (
<Query {...props} query={CURRENT_USER_QUERY}>
- {result => props.children(result)}
+ {payload => props.children(payload)}
</Query>
);
diff --git a/finished-application/frontend/components/styles/DropDown.js b/finished-application/frontend/components/styles/DropDown.js
new file mode 100644
index 0000000..df86aee
--- /dev/null
+++ b/finished-application/frontend/components/styles/DropDown.js
@@ -0,0 +1,47 @@
+import styled, { keyframes } from 'styled-components';
+
+const DropDown = styled.div`
+ position: absolute;
+ width: 100%;
+ z-index: 2;
+ border: 1px solid ${props => props.theme.lightgrey};
+`;
+
+const DropDownItem = styled.div`
+ border-bottom: 1px solid ${props => props.theme.lightgrey};
+ background: ${props => (props.highlighted ? '#f7f7f7' : 'white')};
+ padding: 1rem;
+ transition: all 0.2s;
+ ${props => (props.highlighted ? 'padding-left: 2rem;' : null)};
+ display: flex;
+ align-items: center;
+ border-left: 10px solid ${props => (props.highlighted ? props.theme.lightgrey : 'white')};
+ img {
+ margin-right: 10px;
+ }
+`;
+
+const glow = keyframes`
+ from {
+ box-shadow: 0 0 0px yellow;
+ }
+
+ to {
+ box-shadow: 0 0 10px 1px yellow;
+ }
+`;
+
+const SearchStyles = styled.div`
+ position: relative;
+ input {
+ width: 100%;
+ padding: 10px;
+ border: 0;
+ font-size: 2rem;
+ &.loading {
+ animation: ${glow} 0.5s ease-in-out infinite alternate;
+ }
+ }
+`;
+
+export { DropDown, DropDownItem, SearchStyles };
diff --git a/finished-application/frontend/components/styles/NavStyles.js b/finished-application/frontend/components/styles/NavStyles.js
index 41523df..fe4abda 100644
--- a/finished-application/frontend/components/styles/NavStyles.js
+++ b/finished-application/frontend/components/styles/NavStyles.js
@@ -18,6 +18,8 @@ const NavStyles = styled.ul`
background: none;
border: 0;
cursor: pointer;
+ color: ${props => props.theme.black};
+ font-weight: 800;
@media (max-width: 700px) {
font-size: 10px;
padding: 0 10px;
diff --git a/finished-application/frontend/components/styles/OrderStyles.js b/finished-application/frontend/components/styles/OrderStyles.js
index 4a2d804..f461b70 100644
--- a/finished-application/frontend/components/styles/OrderStyles.js
+++ b/finished-application/frontend/components/styles/OrderStyles.js
@@ -30,7 +30,6 @@ const OrderStyles = styled.div`
padding-bottom: 2rem;
img {
width: 100%;
- height: 100%;
object-fit: cover;
}
}
diff --git a/finished-application/frontend/components/styles/Table.js b/finished-application/frontend/components/styles/Table.js
index e9d0673..b2cd6c4 100644
--- a/finished-application/frontend/components/styles/Table.js
+++ b/finished-application/frontend/components/styles/Table.js
@@ -11,7 +11,7 @@ const Table = styled.table`
th {
border-bottom: 1px solid ${props => props.theme.offWhite};
border-right: 1px solid ${props => props.theme.offWhite};
- padding: 10px 5px;
+ padding: 5px;
position: relative;
&:last-child {
border-right: none;
@@ -20,6 +20,10 @@ const Table = styled.table`
width: 100%;
}
}
+ label {
+ padding: 10px 5px;
+ display: block;
+ }
}
tr {
&:hover {
diff --git a/finished-application/frontend/config.js b/finished-application/frontend/config.js
index 53e05ed..ae41c54 100644
--- a/finished-application/frontend/config.js
+++ b/finished-application/frontend/config.js
@@ -1,3 +1,4 @@
// This is client side config only - don't put anything in here that shouldn't be public!
-export const endpoint = `http://localhost:5555`;
+export const endpoint = `http://localhost:4444`;
+export const prodEndpoint = `https://sickfits-yoga-prod.herokuapp.com/`;
export const perPage = 4;
diff --git a/finished-application/frontend/lib/withData.js b/finished-application/frontend/lib/withData.js
index 0256ba9..c5cce8d 100644
--- a/finished-application/frontend/lib/withData.js
+++ b/finished-application/frontend/lib/withData.js
@@ -1,11 +1,11 @@
import withApollo from 'next-with-apollo';
import ApolloClient from 'apollo-boost';
+import { endpoint, prodEndpoint } from '../config';
import { LOCAL_STATE_QUERY } from '../components/Cart';
-import { endpoint } from '../config';
function createClient({ headers }) {
return new ApolloClient({
- uri: process.env.NODE_ENV === 'development' ? endpoint : endpoint,
+ uri: process.env.NODE_ENV === 'development' ? endpoint : prodEndpoint,
request: operation => {
operation.setContext({
fetchOptions: {
@@ -14,12 +14,19 @@ function createClient({ headers }) {
headers,
});
},
+ // local data
clientState: {
resolvers: {
Mutation: {
toggleCart(_, variables, { cache }) {
- const { cartOpen } = cache.readQuery({ query: LOCAL_STATE_QUERY });
- const data = { data: { cartOpen: !cartOpen } };
+ // read the cartOpen value from the cache
+ const { cartOpen } = cache.readQuery({
+ query: LOCAL_STATE_QUERY,
+ });
+ // Write the cart State to the opposite
+ const data = {
+ data: { cartOpen: !cartOpen },
+ };
cache.writeData(data);
return data;
},
diff --git a/finished-application/frontend/package-lock.json b/finished-application/frontend/package-lock.json
index aba4448..592eccb 100644
--- a/finished-application/frontend/package-lock.json
+++ b/finished-application/frontend/package-lock.json
@@ -6,7 +6,7 @@
"dependencies": {
"@babel/code-frame": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz",
"integrity": "sha512-L8i94FLSyaLQpRfDo/qqSm8Ndb44zMtXParXo0MebJICG1zoCCL4+GkzUOlB4BNTRSXXQdb3feam/qw7bKPipQ==",
"requires": {
"@babel/highlight": "7.0.0-beta.42"
@@ -14,7 +14,7 @@
},
"@babel/core": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.42.tgz",
"integrity": "sha512-jcjZRewF/xqROfbk8EGyWlykaIR3IwrcefjWHu8xh4QnULSv3nfkjPM35v1itDgAT4/Jj5b4mPf4eZSC2HoRQA==",
"requires": {
"@babel/code-frame": "7.0.0-beta.42",
@@ -32,23 +32,11 @@
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/generator": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.42.tgz",
"integrity": "sha512-9x3zS4nG/6GAvJWB8fAK+5g/Di36xdubB43dMNSucNJTwPvmyfCippir/0I8zyG+ID66hLCLi8V9bomlWRYaHA==",
"requires": {
"@babel/types": "7.0.0-beta.42",
@@ -56,221 +44,101 @@
"lodash": "^4.2.0",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.0.0-beta.47",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz",
- "integrity": "sha512-Pjxb/PrxyKWc7jcAXlawvNAQMxxY+tSSNC5wxJstJjpO10mocmGzBOqNYjxdvVhMb3d0BEPQ8mR+D65fFpZ+TA==",
+ "version": "7.0.0-beta.42",
+ "resolved": "http://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.42.tgz",
+ "integrity": "sha512-2lmcB7mHRSXZjDV9fdnWGRco+5fbI0PdUtsL7mNA2GtJs0GPoKdV3sCx0N4cpzG2YRR4dNCiB2riYIrzWjmQ1Q==",
"requires": {
- "@babel/types": "7.0.0-beta.47"
+ "@babel/types": "7.0.0-beta.42"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.42.tgz",
"integrity": "sha512-lI14OS85dMAvsjTNTLrk3qqqvmy4CNxgXGpWkjMuKlYzwnC7LQvdrdH7wf3CBl8C0GSZHbgvADMUtrKiNjxJ5w==",
"requires": {
"@babel/helper-explode-assignable-expression": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-builder-react-jsx": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.42.tgz",
"integrity": "sha512-pgy7el3TV5u4SdWB9w1No5X0fooc8pWcVujbOzey+b9CQU5cf64CGct01bs+k7vGoKwoTYWizZD9MeFk2JLawg==",
"requires": {
"@babel/types": "7.0.0-beta.42",
"esutils": "^2.0.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-call-delegate": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.42.tgz",
"integrity": "sha512-iGZJrRSKIvla9m8VJNv8wlbPReOLmVqFTpefl07v6e5cMPvP2XOgVWR2B4HZ9UwVo7Lx8rPAQ8/UZgjvq+pJ+A==",
"requires": {
"@babel/helper-hoist-variables": "7.0.0-beta.42",
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-define-map": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.42.tgz",
"integrity": "sha512-MKaHNaciAiPc7q4AS2XRqk+I0d2ADryuIxd6r0EykkQ57w2nQxFx/CTWWQEnob9OSAP5dPO1stWIZ9j/VeKtIQ==",
"requires": {
"@babel/helper-function-name": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-explode-assignable-expression": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.42.tgz",
"integrity": "sha512-fT1kVF2PoogggBT9QBgb4IXjbpC3VzFh1sJ6p/k3fZhOXbyqqco7oQ6lzvcIAO6rA7b15/iaIyLj0E+SLCHbwQ==",
"requires": {
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-function-name": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.42.tgz",
"integrity": "sha512-6IZ+kkPypwJrnmNzI3y31qAps2kXoPtCE241SvBva2YzB0n/YORWx2YM0jHPYOJBU9Xx5KkUhOKuWkeXZQgtTA==",
"requires": {
"@babel/helper-get-function-arity": "7.0.0-beta.42",
"@babel/template": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-get-function-arity": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.42.tgz",
"integrity": "sha512-hF5KKcn+V/5PwU7KZ1aVwo535woLC9eV+djaoyNPZeMMJ2s+8bZlEa66Tarei0T68VRL5LXIs1Ao4hSabSkpBg==",
"requires": {
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-hoist-variables": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.42.tgz",
"integrity": "sha512-07NJrcvE2a5oOYiQUzSzih21R6nOpfoIe9saelKxORKXr9cOXcpoLXDi9XIAbRJoww8hqp57JbQxRK09FltZhQ==",
"requires": {
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-module-imports": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.42.tgz",
"integrity": "sha512-0kTX0cjuVKUKDJmHjmAb504kNrwae0Ja32hGii7zSHDKm0tVZvvpT8Cc1yYHo6UsIkUmzEvfGwIrNYemx1jTtQ==",
"requires": {
"@babel/types": "7.0.0-beta.42",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-module-transforms": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.42.tgz",
"integrity": "sha512-XfCGsf6ijExiXw+oKL1Cp7VJttvgq8qalTGRqz4pviVNEjHU89Pfjsi1K/shdy5x4x+PiTSqn4zZ2PKfVp+vgg==",
"requires": {
"@babel/helper-module-imports": "7.0.0-beta.42",
@@ -279,48 +147,24 @@
"@babel/template": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-optimise-call-expression": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.42.tgz",
"integrity": "sha512-4Sssg3iFnLH/1fZQFCPNJ7ISZzrRwq/X8/T5OaURGP3NMVTR4mnEUqrc3v8/SfL3pfa57q3Fe4zIC2h7FuPkww==",
"requires": {
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-plugin-utils": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.42.tgz",
"integrity": "sha512-hZLw8Iz9/YOxI9mgWyPOP1S84OcdQo1WFkZrS1sSf45g16sEb4dVslds2uvZgmx9BiG94PoWyABGf48Py6D6CA=="
},
"@babel/helper-regex": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.42.tgz",
"integrity": "sha512-QdwTsTPjJ63StltU6cEtqmB0Lc+L/OkK9Pz2bL9rylDF3UloyXinBA+SI/FkVyXi5HhDbBRf4T/OeVhWrsK68A==",
"requires": {
"lodash": "^4.2.0"
@@ -328,7 +172,7 @@
},
"@babel/helper-remap-async-to-generator": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.42.tgz",
"integrity": "sha512-At+ipbHRYoN0AaafqPvTPqyVYi+beantKZ2orCYSb/AzP2+JywaWlOPH0wyXLOGzjkJX548Is4cV2wGbEG7++Q==",
"requires": {
"@babel/helper-annotate-as-pure": "7.0.0-beta.42",
@@ -336,151 +180,78 @@
"@babel/template": "7.0.0-beta.42",
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/helper-annotate-as-pure": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.42.tgz",
- "integrity": "sha512-2lmcB7mHRSXZjDV9fdnWGRco+5fbI0PdUtsL7mNA2GtJs0GPoKdV3sCx0N4cpzG2YRR4dNCiB2riYIrzWjmQ1Q==",
- "requires": {
- "@babel/types": "7.0.0-beta.42"
- }
- },
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-replace-supers": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.42.tgz",
"integrity": "sha512-5OwdkTm7TaEBiBMOUV97j8a2goD3+avek9EOl/UdE/CYdtdQ/8RPdUPqtqXApay30aZ/EjIpBItcNlBtt29WBw==",
"requires": {
"@babel/helper-optimise-call-expression": "7.0.0-beta.42",
"@babel/template": "7.0.0-beta.42",
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-simple-access": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.42.tgz",
"integrity": "sha512-SK1nb/sx+Q/0N8USPR+/5G1D1U9tCo82MzJknmK7X4yexDacHmDHtqNP7xqUlSSo3xfMfyHgT7mAH17Cwik/gA==",
"requires": {
"@babel/template": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-split-export-declaration": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.42.tgz",
"integrity": "sha512-2r8pZG6SAJTTaI2OhxCmz5PKlMUPY5adOHrHtb1gM3ibJPDOzPAeOQNzItdxNnM33jjRakEGitXX6iYg7Sz73w==",
"requires": {
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helper-wrap-function": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.42.tgz",
"integrity": "sha512-jpZDbZROEw2HfmlImLXDB7BFoyo6M/Wn8jOOc1+JfCpg2uaZ+n6Q0C3sA6mCN6o7ZgpJkgT7IHQwdB3RMV6KLA==",
"requires": {
"@babel/helper-function-name": "7.0.0-beta.42",
"@babel/template": "7.0.0-beta.42",
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/helpers": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.42.tgz",
"integrity": "sha512-att9SiG9GxOUdjai87LqjSstgNsdo1nXiGu+Eh078zwRiN8bM5Ww8vrbYkAm9PF4HaW6OzOKqyKxv595RT79bA==",
"requires": {
"@babel/template": "7.0.0-beta.42",
"@babel/traverse": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/highlight": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.42.tgz",
"integrity": "sha512-X3Ur/A/lIbbP8W0pmwgqtDXIxhQmxPaiwY9SKP7kF9wvZfjZRwMvbJE92ozUhF3UDK3DCKaV7oGqmI1rP/zqWA==",
"requires": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^3.0.0"
+ },
+ "dependencies": {
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+ }
}
},
"@babel/plugin-proposal-async-generator-functions": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.42.tgz",
"integrity": "sha512-fPPsSCajWzefDSb49JEeZfd/UeMK3xEQSRAz/H3BZ1uaRatwNNZoOJq4/WRH/xDeISmYUdkLRtqs39VPWLKYVg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -490,7 +261,7 @@
},
"@babel/plugin-proposal-class-properties": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.42.tgz",
"integrity": "sha512-VXRmo/t2nAVciXxEgPTAfcUBXj0UXNPIvX2aj3lzHL51N+uh+rtgsIF0nuZwGE4u89WvBDH66yjAu60Ra674kw==",
"requires": {
"@babel/helper-function-name": "7.0.0-beta.42",
@@ -500,7 +271,7 @@
},
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.42.tgz",
"integrity": "sha512-L4z5R8k3GxQKVYE2zGwftQ9K/IIIXMZKnY4C0lDyyMJAVk+H+cFUD0NfD4KTyZACc8DPqjkw6aEtC/AKCKUvEA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -509,7 +280,7 @@
},
"@babel/plugin-proposal-optional-catch-binding": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.42.tgz",
"integrity": "sha512-hD8HTOKzLqMXwKkqX+Qiig8aqsCoZ9k9Y0I3zLjkpYh7HBPoPhUhlN6McxtPHGRjM/qBCNcLCwtWuJetK/cNZg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -518,7 +289,7 @@
},
"@babel/plugin-proposal-unicode-property-regex": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.42.tgz",
"integrity": "sha512-aUEpQFuQydhs20dQSkz7edWkRaNHt8rVfcqHy5ykR4dqflq7+EclnuljuzIS+MJ3V8i5cyLMEXv/W1uWWf7UGg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -528,7 +299,7 @@
},
"@babel/plugin-syntax-async-generators": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.42.tgz",
"integrity": "sha512-k6oVMsmY/mcp+rPRcK4dJL/J1ahtIRucXtNHNvAVRV9WFc7G3r1rrb1GlM4iNHareXBNdRlf7mkxyVaVpyJ3TQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -536,7 +307,7 @@
},
"@babel/plugin-syntax-class-properties": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.42.tgz",
"integrity": "sha512-nG0XCeuni6GgjxOqtxVtnfSoRFeXdqY6cja83cmFpC1klw8f6XShbeDmK7xX1mUYBHkEqLTDurlX+fuua9siCg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -544,7 +315,7 @@
},
"@babel/plugin-syntax-dynamic-import": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.42.tgz",
"integrity": "sha512-N+XpzyZviWu+MJA7Cgi+LtMj1CMLkZyjuy4qbSZauqm6gIrNioMtirLDt4+NrCFx7kZG/T4ic6jLUpWdH5SlXg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -552,7 +323,7 @@
},
"@babel/plugin-syntax-jsx": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.42.tgz",
"integrity": "sha512-NWlawLcYkxMpH2QK4CbYg1ctTuFaKYRVBZGiGkgcO7xD59bNUu2HTG/BXynuaheQiGX96ItoK1igV6vuS9BK/w==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -560,7 +331,7 @@
},
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.42.tgz",
"integrity": "sha512-Zhz6MdSpEviY3UFh/DUlrvf/Tn4wWosHXrnR52PBRtP/8ESWVaFuk57xWcBon3jJh0z5hYyRUr+D0wR7W7ZmnQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -568,7 +339,7 @@
},
"@babel/plugin-syntax-optional-catch-binding": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.42.tgz",
"integrity": "sha512-TXJpGMX/M9r0tkJPgZtoaBCdrhFMeAZtOiwNtVf5dWoA6TOmDwnnnbaUqynbBZm16jE7quWW5VhfFjDlOP1vMA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -576,7 +347,7 @@
},
"@babel/plugin-transform-arrow-functions": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.42.tgz",
"integrity": "sha512-/tpAo2Ur8m32U9pBcGQ6JKplWNEh462zxCnwVKL9yVwG02lttC4QSYBvreRK1wBidDz8JgRZFGGeB9N4l23/Sg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -584,7 +355,7 @@
},
"@babel/plugin-transform-async-to-generator": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.42.tgz",
"integrity": "sha512-TTu8z0xz/mS8H98nCVw3wp86RSzdvUhtM4hX32sItrauJX1X8shVZDKbDtG8ZdA1FMKLgfvmn/hxtPOqjOkkpw==",
"requires": {
"@babel/helper-module-imports": "7.0.0-beta.42",
@@ -594,7 +365,7 @@
},
"@babel/plugin-transform-block-scoped-functions": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.42.tgz",
"integrity": "sha512-Ib3bSf7pYLbqe+46RrJFJae1DrNYvIrGleYjzaN/MFYNaG9ePaOevSBmFHPxuW1SM5l2tTloeu5a7mhs9h0oxg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -602,7 +373,7 @@
},
"@babel/plugin-transform-block-scoping": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.42.tgz",
"integrity": "sha512-qvlAR1L7gZ1gqdj81a2AEfuar3lFsr7FSad4JrN5CJinQlVn/1eJe8oB1DQ7U8ocAzDDjn3tGit9lN7uKBWZsQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -611,7 +382,7 @@
},
"@babel/plugin-transform-classes": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.42.tgz",
"integrity": "sha512-0GCv1wNyfMXKuaulype6+TF02Bxq/zQZ4NUbn2w9aQxzIZviAe1jcA7IRrNN2eVQL9L4oi8N6B26Wf8xFoBNrQ==",
"requires": {
"@babel/helper-annotate-as-pure": "7.0.0-beta.42",
@@ -622,31 +393,11 @@
"@babel/helper-replace-supers": "7.0.0-beta.42",
"@babel/helper-split-export-declaration": "7.0.0-beta.42",
"globals": "^11.1.0"
- },
- "dependencies": {
- "@babel/helper-annotate-as-pure": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.42.tgz",
- "integrity": "sha512-2lmcB7mHRSXZjDV9fdnWGRco+5fbI0PdUtsL7mNA2GtJs0GPoKdV3sCx0N4cpzG2YRR4dNCiB2riYIrzWjmQ1Q==",
- "requires": {
- "@babel/types": "7.0.0-beta.42"
- }
- },
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/plugin-transform-computed-properties": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.42.tgz",
"integrity": "sha512-WYGXfe2uo2FdACubMhwV6Oq1Zx3SNSeBUHRe2X53WKbIKLMZlxRR5GfoLv4V2CeDGHL3mb97wYhmXSb56bIXeg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -654,7 +405,7 @@
},
"@babel/plugin-transform-destructuring": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.42.tgz",
"integrity": "sha512-G3hwLdgeKCZ8EWqwMqeOEoXxRBc5aJthMUD5kN7sAIko+lvwIVQ0do9Op/+DAGVnrvC+g0Ool2Mihcej2NsCPQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -662,7 +413,7 @@
},
"@babel/plugin-transform-dotall-regex": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.42.tgz",
"integrity": "sha512-g/XbJzib6qmbHOJv/2n/bVKLcfJUBRSo9zO73O7lvJEYh8JvHWM/oVU829ztVPpdPT3xgHMiTVhnV/O5r5dYNA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -672,7 +423,7 @@
},
"@babel/plugin-transform-duplicate-keys": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.42.tgz",
"integrity": "sha512-Nze+na6pnoZdrMtQv5Ct/i3031ib+kctDwt8KgcrtnOr52qUlbogPe1jY2WxpwSMtiowdPY93XsRFZeq6ogMTA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -680,7 +431,7 @@
},
"@babel/plugin-transform-exponentiation-operator": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.42.tgz",
"integrity": "sha512-ylnAziSEho282hxQROK5tbNtxm0sSoQaQS74OCSE52eFeDNqSNGapyiNiWMZ71gqs8q5aqYsPgfa/vTccLT7uA==",
"requires": {
"@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.42",
@@ -689,7 +440,7 @@
},
"@babel/plugin-transform-for-of": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.42.tgz",
"integrity": "sha512-pn+fmrr6pfXeEUMyx7JrKAOG/XCiABvXFOmQYqLoCl0POcW8sE75r8w/Lu2wHFayrNgDqR7/RCb7RW4h/U2u1Q==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -697,7 +448,7 @@
},
"@babel/plugin-transform-function-name": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.42.tgz",
"integrity": "sha512-OopJXZQAgBsPUAHr49Z4S4X24XJa9Iu0zPUPCML9weHloyFnkw5SGQIDLC6BxxPOmqfiB49gfIuHjbtJfUsOJw==",
"requires": {
"@babel/helper-function-name": "7.0.0-beta.42",
@@ -706,7 +457,7 @@
},
"@babel/plugin-transform-literals": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.42.tgz",
"integrity": "sha512-mWEayRwUCY3/u8LZpcdR96TiWqofP60jjfVZUJ6agK6ifwEBgamv1Db8syIwUCjaZww5bjyZqX61AmP4fx3dvQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -714,7 +465,7 @@
},
"@babel/plugin-transform-modules-amd": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.42.tgz",
"integrity": "sha512-JCNM+WPKImpNHVLZG6x9F87AyX+K8KpMCkuCqyE7YgxAJWB+5FHVnpkdF6lprDilE/LXGwplmNb9OrWulMss2g==",
"requires": {
"@babel/helper-module-transforms": "7.0.0-beta.42",
@@ -723,7 +474,7 @@
},
"@babel/plugin-transform-modules-commonjs": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.42.tgz",
"integrity": "sha512-tCN0FFdTHaXpuJokvW8iWtbDpjKDNDO2dIyb8rr0GMQxsA62914e8oclcDUPEbC5iF5SCDEF0CmVHXbxnvANfQ==",
"requires": {
"@babel/helper-module-transforms": "7.0.0-beta.42",
@@ -733,7 +484,7 @@
},
"@babel/plugin-transform-modules-systemjs": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.42.tgz",
"integrity": "sha512-IEN3HVHpMPWrnI2EAEHg0248+Axkg2nrdspajefIyeZMlrN0dUt0gDgVsZtza5PK/1a+RZlpli7dDgcA7heTMg==",
"requires": {
"@babel/helper-hoist-variables": "7.0.0-beta.42",
@@ -742,7 +493,7 @@
},
"@babel/plugin-transform-modules-umd": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.42.tgz",
"integrity": "sha512-yOA2qnk4snRxkdgKDp6xN+by3V3z8q14cDf/aB0j36Jv2YqpDWUWMMWLQjabCEE/l7ptePBS4qbFH8dffCm4Tg==",
"requires": {
"@babel/helper-module-transforms": "7.0.0-beta.42",
@@ -751,7 +502,7 @@
},
"@babel/plugin-transform-new-target": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.42.tgz",
"integrity": "sha512-P2zwIIeTOev0Xjo//4p7ugtsWazIsycbs/T6I/ghiV2lREFxo9s93fygbXNXt5ALRPRWDthiAYIDA9n1vrgkVg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -759,7 +510,7 @@
},
"@babel/plugin-transform-object-super": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.42.tgz",
"integrity": "sha512-d+gki0bYQtlleX4LnvpwjIkjmZScKQuHhDsD3N3nHLpwxbANp3YGtIfuf8dbY/PIbUKtd55/ErCvdsyuGlxAlw==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -768,7 +519,7 @@
},
"@babel/plugin-transform-parameters": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.42.tgz",
"integrity": "sha512-z2iXwael/zMHkOvvkJSirg1jIxGA00JOIwdERB+x+VGxLfLb+1IdyiytVw9+w5RTNSVAGYt6R4jhvUdAeQwMiQ==",
"requires": {
"@babel/helper-call-delegate": "7.0.0-beta.42",
@@ -778,7 +529,7 @@
},
"@babel/plugin-transform-react-display-name": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.42.tgz",
"integrity": "sha512-0oyVkjXLkxXSt21mPdfRNwKZ/sIEjcDx5/LqMS+KtMUxsCcB2BFhtzaESd8xLdXb7Zi2otMjt2DsDK+IUeitxA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -786,7 +537,7 @@
},
"@babel/plugin-transform-react-jsx": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.42.tgz",
"integrity": "sha512-XT8M4cZmr/Gaw6Cp2UELhYajB/PT6xNERtv8d+Eu08fULfAbtZJBFVxmm68T9LT+JZkcI35O1gTP17yJz5PJrA==",
"requires": {
"@babel/helper-builder-react-jsx": "7.0.0-beta.42",
@@ -796,7 +547,7 @@
},
"@babel/plugin-transform-react-jsx-self": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0-beta.42.tgz",
"integrity": "sha512-bpG/Z6D8RtckyYPbqMfU/DaV7H/xHaTNAJLzYLHqQhtQT70pwmLVQ8E6ara18yp7k+6OJytrrmJm9F6ClT4pnA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -805,7 +556,7 @@
},
"@babel/plugin-transform-react-jsx-source": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.42.tgz",
"integrity": "sha512-vLKqNyFDx4bESdy7dTWLmAhCTk8zszsxhYGKL/0FaFacksSQye5conP68j8jMEMn9M/JBGgxfFqL6tPbOn2uVw==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -814,7 +565,7 @@
},
"@babel/plugin-transform-regenerator": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.42.tgz",
"integrity": "sha512-E1s/MBk8ztbXqxbeUvFH26x8vAWq/7qX3UdbB8fKoN3EX2Wg9+yXWyuI50jOhXOq7jfmbOrVe0BWoUOjCOqWPQ==",
"requires": {
"regenerator-transform": "^0.12.3"
@@ -822,7 +573,7 @@
},
"@babel/plugin-transform-runtime": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.42.tgz",
"integrity": "sha512-4LcNdjMvKzCwK/eqfbUiXFAZht8OTx0Gv2Ok42o+zhb8DvNUaYUndgW9AU4Q6nbpxzw2vTWNUXSIRvdGsxpgQQ==",
"requires": {
"@babel/helper-module-imports": "7.0.0-beta.42",
@@ -831,7 +582,7 @@
},
"@babel/plugin-transform-shorthand-properties": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.42.tgz",
"integrity": "sha512-GID8z2s6R/XOHgaoxrKBH+zdBOBqFJTDYDS91w30fJGiHxVM4qFVOpYDNIMxmsjqW6bKVHyLeHBezp0OHv+9QQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -839,7 +590,7 @@
},
"@babel/plugin-transform-spread": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.42.tgz",
"integrity": "sha512-ZzWt7RvGcV+9DcOTBwE6ArNqDpUMpzZhCToj3UNtULol9gGBbrGgUK/LdGwGInj+Z2aIdOjbAMFtEuC6626lJg==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -847,7 +598,7 @@
},
"@babel/plugin-transform-sticky-regex": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.42.tgz",
"integrity": "sha512-zQI5NhVfnSNNFiG8JhoXXzTV89aLTfHW22inWefATRmtqe64iHZ4bivBTkDbxt6X/St1yH0aZB+4XtBDZjzcKQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -856,36 +607,16 @@
},
"@babel/plugin-transform-template-literals": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.42.tgz",
"integrity": "sha512-sCQmaa8fd3uPdy/J/qOkvPtxo3RtiH6SyW5bzdnUSOQ3+ND3Bj4OfJNziZxJwZZ8Y40lHrM0dKxZ8YnihlCETQ==",
"requires": {
"@babel/helper-annotate-as-pure": "7.0.0-beta.42",
"@babel/helper-plugin-utils": "7.0.0-beta.42"
- },
- "dependencies": {
- "@babel/helper-annotate-as-pure": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.42.tgz",
- "integrity": "sha512-2lmcB7mHRSXZjDV9fdnWGRco+5fbI0PdUtsL7mNA2GtJs0GPoKdV3sCx0N4cpzG2YRR4dNCiB2riYIrzWjmQ1Q==",
- "requires": {
- "@babel/types": "7.0.0-beta.42"
- }
- },
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/plugin-transform-typeof-symbol": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.42.tgz",
"integrity": "sha512-cuDOzCv7kpMqaLypTEN90ErVmKUV3vjTuO8qzCGlmJMZwCcteTpxCiwISJLnAxcGtj++fMVY0vntbcj4nXf9XQ==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42"
@@ -893,7 +624,7 @@
},
"@babel/plugin-transform-unicode-regex": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.42.tgz",
"integrity": "sha512-iqQ8bhkRPZE2Vl5gR7GF0x4xUVlkncMxr7ve7Rjp/TMzNbO3S2XLr+1SPu+B+U3fIPDDA4I97enw5YL5V7QFOA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -903,7 +634,7 @@
},
"@babel/preset-env": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/preset-env/-/preset-env-7.0.0-beta.42.tgz",
"integrity": "sha512-DawmnYYDbOpMqq0H64iwtZJ7C1xjdwqJXBvAjRKv9WVnKPqZbMMli4JhwO30WnPELzOMGRwtLFAchPcEeyyCpQ==",
"requires": {
"@babel/helper-module-imports": "7.0.0-beta.42",
@@ -949,7 +680,7 @@
},
"@babel/preset-react": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0-beta.42.tgz",
"integrity": "sha512-2o+5MXAzGMnjlZlxsYv08Joh+T4IDd2NIrpeVB+5GgeboU6k0964pObdZxMjB9A2dOweLSCOHwP21JwO6bDUbA==",
"requires": {
"@babel/helper-plugin-utils": "7.0.0-beta.42",
@@ -962,7 +693,7 @@
},
"@babel/runtime": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.42.tgz",
"integrity": "sha512-iOGRzUoONLOtmCvjUsZv3mZzgCT6ljHQY5fr1qG1QIiJQwtM7zbPWGGpa3QWETq+UqwWyJnoi5XZDZRwZDFciQ==",
"requires": {
"core-js": "^2.5.3",
@@ -971,30 +702,18 @@
},
"@babel/template": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.42.tgz",
"integrity": "sha512-EK7YdTe47j4VxlwNvz5bnlk5Jx/wWublnqfgOY2IuSNdxCQgXrLD34PfTnabGxywNSkJkcSo6jwr2JGT+S48dA==",
"requires": {
"@babel/code-frame": "7.0.0-beta.42",
"@babel/types": "7.0.0-beta.42",
"babylon": "7.0.0-beta.42",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/traverse": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.42.tgz",
"integrity": "sha512-DZwMuZBfYVIn/cxpXZzHDgKmarW/MWqplLv1k7QJYhK5r5l6GAac/DkKl75A0CjPYrD3VGco6H6ZQp12QaYKSw==",
"requires": {
"@babel/code-frame": "7.0.0-beta.42",
@@ -1007,27 +726,15 @@
"globals": "^11.1.0",
"invariant": "^2.2.0",
"lodash": "^4.2.0"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
- "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
- "requires": {
- "esutils": "^2.0.2",
- "lodash": "^4.2.0",
- "to-fast-properties": "^2.0.0"
- }
- }
}
},
"@babel/types": {
- "version": "7.0.0-beta.47",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.47.tgz",
- "integrity": "sha512-MOP5pOosg7JETrVGg8OQyzmUmbyoSopT5j2HlblHsto89mPz3cmxzn1IA4UNUmnWKgeticSwfhS+Gdy25IIlBQ==",
+ "version": "7.0.0-beta.42",
+ "resolved": "http://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.42.tgz",
+ "integrity": "sha512-+pmpISmTHQqMMpHHtDLxcvtRhmn53bAxy8goJfHipS/uy/r3PLcuSdPizLW7DhtBWbtgIKZufLObfnIMoyMNsw==",
"requires": {
"esutils": "^2.0.2",
- "lodash": "^4.17.5",
+ "lodash": "^4.2.0",
"to-fast-properties": "^2.0.0"
}
},
@@ -1039,45 +746,58 @@
},
"@types/graphql": {
"version": "0.12.6",
- "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.12.6.tgz",
+ "resolved": "http://registry.npmjs.org/@types/graphql/-/graphql-0.12.6.tgz",
"integrity": "sha512-wXAVyLfkG1UMkKOdMijVWFky39+OD/41KftzqfX1Oejd0Gm6dOIKjCihSVECg6X7PHjftxXmfOKA/d1H79ZfvQ=="
},
"@types/next": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/@types/next/-/next-2.4.11.tgz",
- "integrity": "sha512-+CvydrdSxS8QCFL1SnkilS6z3sNvDrTny/jHNQnH3nrpsKKEwuDf3ygdnA9E58u6nqvwZiAmieGt8fTrTPm3mA==",
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@types/next/-/next-6.1.4.tgz",
+ "integrity": "sha512-F1BjAghnDlDMJ4X96E+Ft63d7EqJgN6IBOvALG26yv0P+gZsRa/M9trsHzfPbEZKXs08QwVTeoQcjI7Cnci5yg==",
"requires": {
"@types/node": "*",
+ "@types/node-fetch": "*",
"@types/react": "*"
}
},
"@types/node": {
- "version": "9.6.18",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.18.tgz",
- "integrity": "sha512-lywCnJQRSsu0kitHQ5nkb7Ay/ScdJPQjhWRtuf+G1DmNKJnPcdVyP0pYvdiDFKjzReC6NLWLgSyimno3kKfIig=="
+ "version": "10.9.4",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.4.tgz",
+ "integrity": "sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw=="
+ },
+ "@types/node-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.1.2.tgz",
+ "integrity": "sha512-XroxUzLpKuL+CVkQqXlffRkEPi4Gh3Oui/mWyS7ztKiyqVxiU+h3imCW5I2NQmde5jK+3q++36/Q96cyRWsweg==",
+ "requires": {
+ "@types/node": "*"
+ }
},
"@types/prop-types": {
- "version": "15.5.3",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.3.tgz",
- "integrity": "sha512-sfjHrNF4zWRv3fJUGyZW46wVxhYJ/GeWIPdKxbnLIhY3bWR0Ncl2kIhZI7rpjY9KtUQAkDP8jWEmaGQGFFvruA=="
+ "version": "15.5.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.5.tgz",
+ "integrity": "sha512-mOrlCEdwX3seT3n0AXNt4KNPAZZxcsABUHwBgFXOt+nvFUXkxCAO6UBJHPrDxWEa2KDMil86355fjo8jbZ+K0Q==",
+ "requires": {
+ "@types/react": "*"
+ }
},
"@types/react": {
- "version": "16.3.14",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.3.14.tgz",
- "integrity": "sha512-wNUGm49fPl7eE2fnYdF0v5vSOrUMdKMQD/4NwtQRnb6mnPwtkhabmuFz37eq90+hhyfz0pWd38jkZHOcaZ6LGw==",
+ "version": "16.4.14",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.14.tgz",
+ "integrity": "sha512-Gh8irag2dbZ2K6vPn+S8+LNrULuG3zlCgJjVUrvuiUK7waw9d9CFk2A/tZFyGhcMDUyO7tznbx1ZasqlAGjHxA==",
"requires": {
+ "@types/prop-types": "*",
"csstype": "^2.2.0"
}
},
"@types/zen-observable": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.3.tgz",
- "integrity": "sha512-aDvGDAHcVfUqNmd8q4//cHAP+HGxsbChbBbuk3+kMVk5TTxfWLpQWvVN3+UPjohLnwMYN7jr6BWNn2cYNqdm7g=="
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz",
+ "integrity": "sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg=="
},
"abab": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
- "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
+ "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==",
"dev": true
},
"abbrev": {
@@ -1086,9 +806,9 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"acorn": {
- "version": "5.5.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
- "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ=="
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
},
"acorn-dynamic-import": {
"version": "2.0.2",
@@ -1115,14 +835,14 @@
}
},
"ajv": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",
- "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0",
- "uri-js": "^4.2.1"
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
"ajv-keywords": {
@@ -1140,12 +860,6 @@
"repeat-string": "^1.5.2"
}
},
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
- },
"ansi-escapes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
@@ -1443,12 +1157,13 @@
}
},
"apollo-boost": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.1.6.tgz",
- "integrity": "sha512-z29fxgaNV7HLCcjgS7MgqPKdMc9is1pf4gaVk2ma9JvMZEwq7d5mAc1sBSq+u6de/oUdElES6f1wc1v1HruU+A==",
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.1.15.tgz",
+ "integrity": "sha512-cKKr//5MERno1+ZdPcppGwLVMoRWyvoiTe1YC/kJqfciHgBGIb89w9EjAPnUfyvXpmpNhAk4WWb52FcMETRrcA==",
"requires": {
- "apollo-cache-inmemory": "^1.2.1",
- "apollo-client": "^2.3.1",
+ "apollo-cache": "^1.1.16",
+ "apollo-cache-inmemory": "^1.2.9",
+ "apollo-client": "^2.4.1",
"apollo-link": "^1.0.6",
"apollo-link-error": "^1.0.3",
"apollo-link-http": "^1.3.1",
@@ -1457,34 +1172,34 @@
}
},
"apollo-cache": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.8.tgz",
- "integrity": "sha512-w2dzVVxosPK+9HQUBJ/P0fQMdAslWr/a1NHPubtN/Guwe93/k56IV0jDcJedMxXWzICuuI/gjZSYNAdb91WNWw==",
+ "version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.16.tgz",
+ "integrity": "sha512-gVWKYyXF0SlpMyZ/i//AthzyPjjmAVYciEjwepLqMzIf0+7bzIwekpHDuzME8jf4XQepXcNNY571+BRyYHysmg==",
"requires": {
- "apollo-utilities": "^1.0.12"
+ "apollo-utilities": "^1.0.20"
}
},
"apollo-cache-inmemory": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.2.1.tgz",
- "integrity": "sha512-WZ5EGmJqellVX+PPmq0QeqeQJiZCjjfmkp3x+MV3DRMwTzT2jeJYQAYGIzJuq8PjG4V0vljVJK/Ad93PHqzgdQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.2.9.tgz",
+ "integrity": "sha512-Z4m4NpT2eboM4qUww/46CsjOyITavxrKPBrsCugDlmwSzonqMLZmAyZEQgnYXCj8L5q5epnOuf0sqyYK/6sGIQ==",
"requires": {
- "apollo-cache": "^1.1.8",
- "apollo-utilities": "^1.0.12",
- "graphql-anywhere": "^4.1.10"
+ "apollo-cache": "^1.1.16",
+ "apollo-utilities": "^1.0.20",
+ "graphql-anywhere": "^4.1.18"
}
},
"apollo-client": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.3.1.tgz",
- "integrity": "sha512-f+692AEAY0XYUPAO4nuSOIAy7jgqNw94bXuvMvKmFYdMwJLRIr5gOPUXgOwCYwwVo+NqWF6cy20dkZ4gkCWZ+Q==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.4.1.tgz",
+ "integrity": "sha512-E6pQD+BwI1zboM9oX83yzH9BmBjJWU5pL36CpGC2+XaaBDc6UvrPtacxQsg/h7Fq5T5IKJoIhuBEWtefJIb9xg==",
"requires": {
"@types/async": "2.0.49",
- "@types/zen-observable": "^0.5.3",
- "apollo-cache": "^1.1.8",
+ "@types/zen-observable": "^0.8.0",
+ "apollo-cache": "1.1.16",
"apollo-link": "^1.0.0",
"apollo-link-dedup": "^1.0.0",
- "apollo-utilities": "^1.0.12",
+ "apollo-utilities": "1.0.20",
"symbol-observable": "^1.0.2",
"zen-observable": "^0.8.0"
}
@@ -1508,9 +1223,9 @@
}
},
"apollo-link-error": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.0.9.tgz",
- "integrity": "sha512-82qgIH0UC039kcvcFDJkY8GuUOgPFrkYe/0zNFkA0AXvuvL4RHxWb8SWRiPwtP8jKaKEOedyjopfyH84aLiu7Q==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.0.tgz",
+ "integrity": "sha512-4Vu/IUn6Kn6+Fthym4iuqypCKcLdwTg3MaCvtLdaLbt9X2hNCq3y8mv6vuWIlAY51X8wKhCgYghQSOs5R/embQ==",
"requires": {
"apollo-link": "^1.2.2"
}
@@ -1542,9 +1257,12 @@
}
},
"apollo-utilities": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.12.tgz",
- "integrity": "sha512-3mSen+NLouRwhmzCSHbMICfLBa6J+QJOc+M8zzLyo10jAYsOK+A2VgR63q4mcQJmAp8LumC5VAyah1zw6enMcg=="
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.20.tgz",
+ "integrity": "sha512-2M4BJCyX/9UXGJFoV4sTnVTZ4Q29aM18Z1avDrwvlCGGwoRTz50sGBAfTiWnUnnNQyPIIJEYElScw46DgIu0Rg==",
+ "requires": {
+ "fast-json-stable-stringify": "^2.0.0"
+ }
},
"append-transform": {
"version": "0.4.0",
@@ -1616,6 +1334,16 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
},
+ "array.prototype.flat": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz",
+ "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.10.0",
+ "function-bind": "^1.1.1"
+ }
+ },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -1627,10 +1355,13 @@
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
"asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
},
"asn1.js": {
"version": "4.10.1",
@@ -1648,6 +1379,21 @@
"integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
"requires": {
"util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
}
},
"assert-plus": {
@@ -1693,9 +1439,9 @@
"dev": true
},
"atob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
- "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio="
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"aws-sign2": {
"version": "0.7.0",
@@ -1704,9 +1450,9 @@
"dev": true
},
"aws4": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
- "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"dev": true
},
"babel-code-frame": {
@@ -1728,7 +1474,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
@@ -1739,6 +1485,12 @@
"supports-color": "^2.0.0"
}
},
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -1787,23 +1539,24 @@
}
},
"babel-jest": {
- "version": "23.0.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.0.0.tgz",
- "integrity": "sha1-Djg6KqazU14ZfbKSlXCiGCvQhOg=",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz",
+ "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==",
"dev": true,
"requires": {
"babel-plugin-istanbul": "^4.1.6",
- "babel-preset-jest": "^23.0.0"
+ "babel-preset-jest": "^23.2.0"
}
},
"babel-loader": {
- "version": "8.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0-beta.2.tgz",
- "integrity": "sha512-P1zch1DvQy3RGmp/1CH78uPg5gTPQQ01S9r6ipCOWVamO0UIC8gnrx7m7LsUsXa470yB6IOZxhtEEwIUclRLNw==",
+ "version": "8.0.0-beta.3",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0-beta.3.tgz",
+ "integrity": "sha512-yvaAx7cBEjh+R2oGL2vIPmveO6daS5TYP2FSPq4b6CUYjU/ilD4HHyfLIa9KUj6OKBcR9fQcl1NvUOTWNaJ6mw==",
"requires": {
"find-cache-dir": "^1.0.0",
"loader-utils": "^1.0.2",
- "mkdirp": "^0.5.1"
+ "mkdirp": "^0.5.1",
+ "util.promisify": "^1.0.0"
}
},
"babel-messages": {
@@ -1817,7 +1570,7 @@
},
"babel-plugin-istanbul": {
"version": "4.1.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz",
+ "resolved": "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz",
"integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==",
"dev": true,
"requires": {
@@ -1828,9 +1581,9 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "23.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.0.0.tgz",
- "integrity": "sha1-5h5oeZ90M5Gh5jBu4nBHeqz5Rsg=",
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz",
+ "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=",
"dev": true
},
"babel-plugin-module-resolver": {
@@ -1852,23 +1605,21 @@
"integrity": "sha1-Lk57RJa5OmVKHIAEInbeTk7rIOM="
},
"babel-plugin-styled-components": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.5.1.tgz",
- "integrity": "sha1-MdvraW0TVNFYXmDWbHkF9eR0r80=",
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.6.4.tgz",
+ "integrity": "sha512-WRbUn/3aDlyE0+pQ4k9oaXoCytZxSuAW1zieNUKFMO+g89giwv1soV3TsK9RgeBIZ1mmtNEPwwUuQwIlowUhxg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.0.0-beta.37",
- "babel-types": "^6.26.0",
- "stylis": "^3.0.0"
+ "lodash": "^4.17.10"
}
},
"babel-plugin-syntax-jsx": {
"version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
"integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
},
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
"integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
"dev": true
},
@@ -1878,12 +1629,12 @@
"integrity": "sha1-Mxz8BQmagII4MR14MZwnRg1IEYk="
},
"babel-preset-jest": {
- "version": "23.0.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.0.0.tgz",
- "integrity": "sha1-Sd4DA/G2h13K1hY+qn64Mw1Ugk0=",
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz",
+ "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^23.0.0",
+ "babel-plugin-jest-hoist": "^23.2.0",
"babel-plugin-syntax-object-rest-spread": "^6.13.0"
}
},
@@ -1943,15 +1694,6 @@
"requires": {
"ms": "2.0.0"
}
- },
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "dev": true,
- "requires": {
- "source-map": "^0.5.6"
- }
}
}
},
@@ -2045,7 +1787,7 @@
},
"babylon": {
"version": "7.0.0-beta.42",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.42.tgz",
+ "resolved": "http://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.42.tgz",
"integrity": "sha512-h6E/OkkvcBw/JimbL0p8dIaxrcuQn3QmIYGC/GtJlRYif5LTKBYPHXYwqluJpfS/kOXoz0go+9mkmOVC0M+zWw=="
},
"balanced-match": {
@@ -2119,9 +1861,9 @@
"integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
},
"bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true,
"optional": true,
"requires": {
@@ -2139,9 +1881,9 @@
"integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU="
},
"bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz",
+ "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg=="
},
"bn.js": {
"version": "4.11.8",
@@ -2151,8 +1893,7 @@
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
- "dev": true
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"brace-expansion": {
"version": "1.1.11",
@@ -2185,9 +1926,9 @@
"dev": true
},
"browser-resolve": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
- "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
+ "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
"dev": true,
"requires": {
"resolve": "1.1.7"
@@ -2225,13 +1966,14 @@
}
},
"browserify-des": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz",
- "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
"requires": {
"cipher-base": "^1.0.1",
"des.js": "^1.0.0",
- "inherits": "^2.0.1"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
"browserify-rsa": {
@@ -2285,7 +2027,7 @@
},
"buffer": {
"version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
"requires": {
"base64-js": "^1.0.2",
@@ -2294,9 +2036,9 @@
}
},
"buffer-from": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
- "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA=="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"buffer-xor": {
"version": "1.0.3",
@@ -2368,9 +2110,9 @@
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
},
"caniuse-lite": {
- "version": "1.0.30000844",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000844.tgz",
- "integrity": "sha512-UpKQE7y6dLHhlv75UyBCRiun34Q+bmxyX3zS+ve9M07YG52tRafOvop9N9d5jC+sikKuG7UMweJKJNts4FVehA=="
+ "version": "1.0.30000885",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz",
+ "integrity": "sha512-cXKbYwpxBLd7qHyej16JazPoUacqoVuDhvR61U7Fr5vSxMUiodzcYa1rQYRYfZ5GexV03vGZHd722vNPLjPJGQ=="
},
"capture-exit": {
"version": "1.2.0",
@@ -2425,7 +2167,6 @@
"version": "1.0.0-rc.2",
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
"integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "dev": true,
"requires": {
"css-select": "~1.2.0",
"dom-serializer": "~0.1.0",
@@ -2436,22 +2177,23 @@
}
},
"chokidar": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz",
- "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
"requires": {
"anymatch": "^2.0.0",
"async-each": "^1.0.0",
"braces": "^2.3.0",
- "fsevents": "^1.1.2",
+ "fsevents": "^1.2.2",
"glob-parent": "^3.1.0",
"inherits": "^2.0.1",
"is-binary-path": "^1.0.0",
"is-glob": "^4.0.0",
+ "lodash.debounce": "^4.0.8",
"normalize-path": "^2.1.1",
"path-is-absolute": "^1.0.0",
"readdirp": "^2.0.0",
- "upath": "^1.0.0"
+ "upath": "^1.0.5"
},
"dependencies": {
"array-unique": {
@@ -2548,9 +2290,9 @@
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
},
"ci-info": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
- "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz",
+ "integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==",
"dev": true
},
"cipher-base": {
@@ -2618,11 +2360,11 @@
}
},
"color-convert": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
- "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
- "color-name": "^1.1.1"
+ "color-name": "1.1.3"
}
},
"color-name": {
@@ -2633,8 +2375,7 @@
"colors": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz",
- "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=",
- "dev": true
+ "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q="
},
"combined-stream": {
"version": "1.0.6",
@@ -2655,17 +2396,16 @@
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
},
- "compare-versions": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.2.1.tgz",
- "integrity": "sha512-2y2nHcopMG/NAyk6vWXlLs86XeM9sik4jmx1tKIgzMi9/RQ2eo758RGpxQO3ErihHmg0RlQITPqgz73y6s7quA==",
- "dev": true
- },
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
+ "compute-scroll-into-view": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.8.tgz",
+ "integrity": "sha512-iAUjocygqXSGQb3zUHvAHwcf3BiMihlnphNSKCAqS6v9wNHlFe7260zNqoFjS/YBKJjbbvrXwY6/Wdg5mJ91Lw=="
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2696,9 +2436,12 @@
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
},
"convert-source-map": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
- "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
},
"copy-concurrently": {
"version": "1.0.5",
@@ -2719,9 +2462,9 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"core-js": {
- "version": "2.5.6",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz",
- "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ=="
+ "version": "2.5.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
},
"core-util-is": {
"version": "1.0.2",
@@ -2799,7 +2542,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
- "dev": true,
"requires": {
"boolbase": "~1.0.0",
"css-what": "2.1",
@@ -2808,9 +2550,9 @@
}
},
"css-to-react-native": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.2.0.tgz",
- "integrity": "sha512-SWG8+tsVRBHpxn1cSDmx7B95DJCiKwUecBbboGpm2znDCnJDMGkcoYR73w1p2IZMab6iNqVms8VC+4TrSqoFeQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.2.1.tgz",
+ "integrity": "sha512-v++LRcf633phJiYZBDqtmGPj3+BVof0isd2jgwYLWZJ5YSuhCkrfYtDsNhM6oJthiEco0f9tDVJ1vUkDJNgGEA==",
"requires": {
"css-color-keywords": "^1.0.0",
"fbjs": "^0.8.5",
@@ -2820,28 +2562,27 @@
"css-what": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
- "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
- "dev": true
+ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0="
},
"cssom": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
- "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
+ "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==",
"dev": true
},
"cssstyle": {
- "version": "0.2.37",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
- "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz",
+ "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==",
"dev": true,
"requires": {
"cssom": "0.3.x"
}
},
"csstype": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.2.tgz",
- "integrity": "sha512-epoHrKPywwUhFTXadQNA5PPx4GChtkM03SkBeFZTaFtJcn6QfXpBkX2IAc4J9Oe18nha5NrTOo2OMOge+qH1mw=="
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.6.tgz",
+ "integrity": "sha512-tKPyhy0FmfYD2KQYXD5GzkvAYLYj96cMLXr648CKGd3wBe0QqoPipImjGiLze9c8leJK8J3n7ap90tpk3E6HGQ=="
},
"cyclist": {
"version": "0.2.2",
@@ -2866,20 +2607,33 @@
}
},
"data-urls": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz",
- "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.1.tgz",
+ "integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==",
"dev": true,
"requires": {
- "abab": "^1.0.4",
- "whatwg-mimetype": "^2.0.0",
- "whatwg-url": "^6.4.0"
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.1.0",
+ "whatwg-url": "^7.0.0"
+ },
+ "dependencies": {
+ "whatwg-url": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
+ "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ }
}
},
"date-fns": {
- "version": "2.0.0-alpha.8",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.0.0-alpha.8.tgz",
- "integrity": "sha1-pivXao844BlLKQMkXpy5Yrm75iQ="
+ "version": "2.0.0-alpha.16",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.0.0-alpha.16.tgz",
+ "integrity": "sha1-0kmmybeZJSZS+54/JUYOr53oasc="
},
"date-now": {
"version": "0.1.4",
@@ -2905,9 +2659,9 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"deep-extend": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
- "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w=="
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
},
"deep-is": {
"version": "0.1.3",
@@ -2936,12 +2690,11 @@
}
},
"define-properties": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
- "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
"requires": {
- "foreach": "^2.0.5",
- "object-keys": "^1.0.8"
+ "object-keys": "^1.0.12"
}
},
"define-property": {
@@ -3069,8 +2822,7 @@
"discontinuous-range": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=",
- "dev": true
+ "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo="
},
"dom-helpers": {
"version": "3.3.1",
@@ -3081,7 +2833,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
"integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
- "dev": true,
"requires": {
"domelementtype": "~1.1.1",
"entities": "~1.1.1"
@@ -3090,16 +2841,10 @@
"domelementtype": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
- "dev": true
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
}
}
},
- "dom-walk": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
- "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
- },
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
@@ -3108,8 +2853,7 @@
"domelementtype": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
- "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
- "dev": true
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
},
"domexception": {
"version": "1.0.1",
@@ -3124,7 +2868,6 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
"integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "dev": true,
"requires": {
"domelementtype": "1"
}
@@ -3133,16 +2876,19 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
"requires": {
"dom-serializer": "0",
"domelementtype": "1"
}
},
"downshift": {
- "version": "1.31.14",
- "resolved": "https://registry.npmjs.org/downshift/-/downshift-1.31.14.tgz",
- "integrity": "sha512-KguEqOCAykRVkBG8kB1YMOf4RWolupoUMW3cv6VLVBQw+yOB1BrROX4MbUoCqDaj9vBZS7DNqz7VBqfM4x3dsg=="
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/downshift/-/downshift-2.2.2.tgz",
+ "integrity": "sha512-vdt1AYiiD490PcPyscuX5Cqgv26jFiKD2fcjXdqoDgvbnKn4/Z48ccUmXIcGagzwEfYRrk3CxTuciIDG6+addA==",
+ "requires": {
+ "compute-scroll-into-view": "^1.0.2",
+ "prop-types": "^15.6.0"
+ }
},
"duplexify": {
"version": "3.6.0",
@@ -3156,13 +2902,14 @@
}
},
"ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
"optional": true,
"requires": {
- "jsbn": "~0.1.0"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
"ee-first": {
@@ -3171,14 +2918,14 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.3.48",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz",
- "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA="
+ "version": "1.3.65",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.65.tgz",
+ "integrity": "sha512-tyGr+wh2c/JYBVMeflKpZ3ricwtBPyVBMtRNxYGObl7TP5bAeupgz4VZnBzQSFleZViXYTws1yZtKKFQYZyiYw=="
},
"elliptic": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
- "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
"requires": {
"bn.js": "^4.4.0",
"brorand": "^1.0.1",
@@ -3234,57 +2981,56 @@
"entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
- "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
- "dev": true
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
"enzyme": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.3.0.tgz",
- "integrity": "sha512-l8csyPyLmtxskTz6pX9W8eDOyH1ckEtDttXk/vlFWCjv00SkjTjtoUrogqp4yEvMyneU9dUJoOLnqFoiHb8IHA==",
- "dev": true,
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.6.0.tgz",
+ "integrity": "sha512-onsINzVLGqKIapTVfWkkw6bYvm1o4CyJ9s8POExtQhAkVa4qFDW6DGCQGRy/5bfZYk+gmUbMNyayXiWDzTkHFQ==",
"requires": {
+ "array.prototype.flat": "^1.2.1",
"cheerio": "^1.0.0-rc.2",
- "function.prototype.name": "^1.0.3",
- "has": "^1.0.1",
+ "function.prototype.name": "^1.1.0",
+ "has": "^1.0.3",
"is-boolean-object": "^1.0.0",
- "is-callable": "^1.1.3",
+ "is-callable": "^1.1.4",
"is-number-object": "^1.0.3",
"is-string": "^1.0.4",
"is-subset": "^0.1.1",
- "lodash": "^4.17.4",
- "object-inspect": "^1.5.0",
+ "lodash.escape": "^4.0.1",
+ "lodash.isequal": "^4.5.0",
+ "object-inspect": "^1.6.0",
"object-is": "^1.0.1",
"object.assign": "^4.1.0",
"object.entries": "^1.0.4",
"object.values": "^1.0.4",
"raf": "^3.4.0",
- "rst-selector-parser": "^2.2.3"
+ "rst-selector-parser": "^2.2.3",
+ "string.prototype.trim": "^1.1.2"
}
},
"enzyme-adapter-react-16": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz",
- "integrity": "sha512-kC8pAtU2Jk3OJ0EG8Y2813dg9Ol0TXi7UNxHzHiWs30Jo/hj7alc//G1YpKUsPP1oKl9X+Lkx+WlGJpPYA+nvw==",
- "dev": true,
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz",
+ "integrity": "sha512-R2LcVvMB2UwPH763d5jDtVedAIcEj+uZjOnq0nd1sOUs6z8TDbyHDvt8VwfrS4wMt7CawoyPmH0XzC8MtEqqDw==",
"requires": {
- "enzyme-adapter-utils": "^1.3.0",
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
+ "enzyme-adapter-utils": "^1.8.0",
+ "function.prototype.name": "^1.1.0",
+ "object.assign": "^4.1.0",
"object.values": "^1.0.4",
- "prop-types": "^15.6.0",
- "react-reconciler": "^0.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.4.2",
"react-test-renderer": "^16.0.0-0"
}
},
"enzyme-adapter-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz",
- "integrity": "sha512-vVXSt6uDv230DIv+ebCG66T1Pm36Kv+m74L1TrF4kaE7e1V7Q/LcxO0QRkajk5cA6R3uu9wJf5h13wOTezTbjA==",
- "dev": true,
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz",
+ "integrity": "sha512-K9U2RGr1pvWPGEAIRQRVH4UdlqzpfLsKonuHyAK6lxu46yfGsMDVlO3+YvQwQpVjVw8eviEVIOmlFAnMbIhv/w==",
"requires": {
- "lodash": "^4.17.4",
- "object.assign": "^4.0.4",
- "prop-types": "^15.6.0"
+ "function.prototype.name": "^1.1.0",
+ "object.assign": "^4.1.0",
+ "prop-types": "^15.6.2"
}
},
"enzyme-to-json": {
@@ -3305,26 +3051,25 @@
}
},
"error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"requires": {
"is-arrayish": "^0.2.1"
}
},
"error-stack-parser": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.1.tgz",
- "integrity": "sha1-oyArj7AxFKqbQKDjZp5IsrZaAQo=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz",
+ "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==",
"requires": {
- "stackframe": "^1.0.3"
+ "stackframe": "^1.0.4"
}
},
"es-abstract": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz",
- "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==",
- "dev": true,
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
+ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
"requires": {
"es-to-primitive": "^1.1.1",
"function-bind": "^1.1.1",
@@ -3337,7 +3082,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
"integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
- "dev": true,
"requires": {
"is-callable": "^1.1.1",
"is-date-object": "^1.0.1",
@@ -3345,9 +3089,9 @@
}
},
"es5-ext": {
- "version": "0.10.42",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz",
- "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==",
+ "version": "0.10.46",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -3420,9 +3164,9 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
- "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz",
+ "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==",
"dev": true,
"requires": {
"esprima": "^3.1.3",
@@ -3459,9 +3203,9 @@
}
},
"esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"esrecurse": {
@@ -3516,12 +3260,12 @@
}
},
"exec-sh": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
- "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz",
+ "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==",
"dev": true,
"requires": {
- "merge": "^1.1.3"
+ "merge": "^1.2.0"
}
},
"execa": {
@@ -3561,23 +3305,23 @@
}
},
"expect": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz",
- "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz",
+ "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.0",
- "jest-diff": "^22.4.3",
- "jest-get-type": "^22.4.3",
- "jest-matcher-utils": "^22.4.3",
- "jest-message-util": "^22.4.3",
- "jest-regex-util": "^22.4.3"
+ "jest-diff": "^23.6.0",
+ "jest-get-type": "^22.1.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0"
}
},
"extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
"extend-shallow": {
@@ -3626,7 +3370,8 @@
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
},
"fb-watchman": {
"version": "2.0.0",
@@ -3638,9 +3383,9 @@
}
},
"fbjs": {
- "version": "0.8.16",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
- "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"requires": {
"core-js": "^1.0.0",
"isomorphic-fetch": "^2.1.1",
@@ -3648,7 +3393,7 @@
"object-assign": "^4.1.0",
"promise": "^7.1.1",
"setimmediate": "^1.0.5",
- "ua-parser-js": "^0.7.9"
+ "ua-parser-js": "^0.7.18"
},
"dependencies": {
"core-js": {
@@ -3740,11 +3485,6 @@
"for-in": "^1.0.1"
}
},
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
"foreachasync": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz",
@@ -3797,7 +3537,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
@@ -4310,7 +4050,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz",
"integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
@@ -4318,9 +4057,9 @@
}
},
"get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
},
"get-stream": {
"version": "3.0.0",
@@ -4371,19 +4110,10 @@
"is-glob": "^2.0.0"
}
},
- "global": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
- "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
- "requires": {
- "min-document": "^2.19.0",
- "process": "~0.5.1"
- }
- },
"globals": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz",
- "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ=="
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg=="
},
"globby": {
"version": "6.1.0",
@@ -4410,19 +4140,19 @@
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"graphql": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz",
- "integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.0.2.tgz",
+ "integrity": "sha512-gUC4YYsaiSJT1h40krG3J+USGlwhzNTXSb4IOZljn9ag5Tj+RkoXrWp+Kh7WyE3t1NCfab5kzCuxBIvOMERMXw==",
"requires": {
- "iterall": "^1.2.1"
+ "iterall": "^1.2.2"
}
},
"graphql-anywhere": {
- "version": "4.1.10",
- "resolved": "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.1.10.tgz",
- "integrity": "sha512-ab1O4mOkjlk+17ye5a7DxUuWafKP8aoH+xmc6SsPNZlrQ7spbArqyLIf2JdbwpzsVLXOyRvQpD6tcc0GtnxBfw==",
+ "version": "4.1.18",
+ "resolved": "https://registry.npmjs.org/graphql-anywhere/-/graphql-anywhere-4.1.18.tgz",
+ "integrity": "sha512-n0jsAEpGpQxsF0RDaxSjtEQdIP3tx2C3q++QuHYFyUl+4Npl5t64zFjWwO3ZhotxmTgs8zaSbZPVFpydn6k0dQ==",
"requires": {
- "apollo-utilities": "^1.0.12"
+ "apollo-utilities": "^1.0.20"
}
},
"graphql-tag": {
@@ -4431,29 +4161,16 @@
"integrity": "sha512-qnNmof9pAqj/LUzs3lStP0Gw1qhdVCUS7Ab7+SUB6KD5aX1uqxWQRwMnOGTkhKuLvLNIs1TvNz+iS9kUGl1MhA=="
},
"graphql-tools": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-3.0.2.tgz",
- "integrity": "sha512-bhDGrvmSgcJBFX3EZEYagmKPk/EJ9vZIcF1WtSFveWfvSsh7crMFSQ9ldftuIXC9UeRwfutpGf3A1q4UpVLaRg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-3.1.1.tgz",
+ "integrity": "sha512-yHvPkweUB0+Q/GWH5wIG60bpt8CTwBklCSzQdEHmRUgAdEQKxw+9B7zB3dG7wB3Ym7M7lfrS4Ej+jtDZfA2UXg==",
"dev": true,
"requires": {
- "apollo-link": "1.2.1",
+ "apollo-link": "^1.2.2",
"apollo-utilities": "^1.0.1",
"deprecated-decorator": "^0.1.6",
"iterall": "^1.1.3",
"uuid": "^3.1.0"
- },
- "dependencies": {
- "apollo-link": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.1.tgz",
- "integrity": "sha512-6Ghf+j3cQLCIvjXd2dJrLw+16HZbWbwmB1qlTc41BviB2hv+rK1nJr17Y9dWK0UD4p3i9Hfddx3tthpMKrueHg==",
- "dev": true,
- "requires": {
- "@types/node": "^9.4.6",
- "apollo-utilities": "^1.0.0",
- "zen-observable-ts": "^0.8.6"
- }
- }
}
},
"growly": {
@@ -4463,64 +4180,39 @@
"dev": true
},
"handlebars": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
- "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
+ "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
"dev": true,
"requires": {
- "async": "^1.4.0",
+ "async": "^2.5.0",
"optimist": "^0.6.1",
- "source-map": "^0.4.4",
- "uglify-js": "^2.6"
+ "source-map": "^0.6.1",
+ "uglify-js": "^3.1.4"
},
"dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true,
+ "optional": true
},
"source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true,
- "requires": {
- "amdefine": ">=0.0.4"
- }
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
},
"uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "version": "3.4.9",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
+ "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
"dev": true,
"optional": true,
"requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
- "optional": true
- }
- }
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "dev": true,
- "optional": true,
- "requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
- "window-size": "0.1.0"
+ "commander": "~2.17.1",
+ "source-map": "~0.6.1"
}
}
}
@@ -4532,12 +4224,12 @@
"dev": true
},
"har-validator": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
- "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
"dev": true,
"requires": {
- "ajv": "^5.1.0",
+ "ajv": "^5.3.0",
"har-schema": "^2.0.0"
},
"dependencies": {
@@ -4558,15 +4250,21 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
"dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
}
}
},
"has": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
- "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
- "function-bind": "^1.0.2"
+ "function-bind": "^1.1.1"
}
},
"has-ansi": {
@@ -4651,12 +4349,12 @@
}
},
"hash.js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
- "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
"requires": {
"inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.0"
+ "minimalistic-assert": "^1.0.1"
}
},
"hmac-drbg": {
@@ -4670,9 +4368,9 @@
}
},
"hoist-non-react-statics": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz",
- "integrity": "sha512-6Bl6XsDT1ntE0lHbIhr4Kp2PGcleGZ66qu5Jqk8lc0Xc/IeG6gVLmwUGs/K0Us+L8VWoKgj0uWdPMataOsm31w=="
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
+ "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
},
"home-or-tmp": {
"version": "2.0.0",
@@ -4685,9 +4383,9 @@
}
},
"hosted-git-info": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz",
- "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw=="
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
},
"html-encoding-sniffer": {
"version": "1.0.2",
@@ -4712,7 +4410,6 @@
"version": "3.9.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
"integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
- "dev": true,
"requires": {
"domelementtype": "^1.3.0",
"domhandler": "^2.3.0",
@@ -4755,17 +4452,17 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
},
"iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ieee754": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz",
- "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg=="
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
},
"iferr": {
"version": "0.1.5",
@@ -4853,8 +4550,7 @@
"is-boolean-object": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz",
- "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=",
- "dev": true
+ "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M="
},
"is-buffer": {
"version": "1.1.6",
@@ -4870,18 +4566,17 @@
}
},
"is-callable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
- "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
- "dev": true
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
},
"is-ci": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
- "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
"dev": true,
"requires": {
- "ci-info": "^1.0.0"
+ "ci-info": "^1.5.0"
}
},
"is-data-descriptor": {
@@ -4895,8 +4590,7 @@
"is-date-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
- "dev": true
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
},
"is-descriptor": {
"version": "0.1.6",
@@ -4980,23 +4674,7 @@
"is-number-object": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz",
- "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=",
- "dev": true
- },
- "is-odd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
- "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
- "requires": {
- "is-number": "^4.0.0"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
- }
- }
+ "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k="
},
"is-path-cwd": {
"version": "1.0.0",
@@ -5048,7 +4726,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
- "dev": true,
"requires": {
"has": "^1.0.1"
}
@@ -5061,20 +4738,17 @@
"is-string": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz",
- "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=",
- "dev": true
+ "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ="
},
"is-subset": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
- "dev": true
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY="
},
"is-symbol": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
- "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
- "dev": true
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI="
},
"is-typedarray": {
"version": "1.0.0",
@@ -5121,12 +4795,24 @@
}
},
"isomorphic-unfetch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-2.0.0.tgz",
- "integrity": "sha1-9QFApMFj11grXzfxWRloxPgJpkU=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-2.1.1.tgz",
+ "integrity": "sha512-nd8AULy4i2rA8dv0nOBT9xieIegd3xi7NDxTQ9+iNXDTyaG6VbUYW3F+TdMRqxqXhDFWM2k7fttKx9W2Wd8JpQ==",
"requires": {
- "node-fetch": "^1.7.1",
- "unfetch": "^3.0.0"
+ "node-fetch": "^2.1.2",
+ "unfetch": "^3.1.0"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz",
+ "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA=="
+ },
+ "unfetch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.1.tgz",
+ "integrity": "sha512-syDl3htvM56w0HC0PTVA5jEEknOCJ3dWgWGDuaEtQUno8ORDCfZQbm12RzfWO3AC3YhWDoP61dlgmo8Z05Y97g=="
+ }
}
},
"isstream": {
@@ -5136,59 +4822,43 @@
"dev": true
},
"istanbul-api": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz",
- "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==",
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz",
+ "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==",
"dev": true,
"requires": {
"async": "^2.1.4",
- "compare-versions": "^3.1.0",
"fileset": "^2.0.2",
- "istanbul-lib-coverage": "^1.2.0",
- "istanbul-lib-hook": "^1.2.0",
- "istanbul-lib-instrument": "^1.10.1",
- "istanbul-lib-report": "^1.1.4",
- "istanbul-lib-source-maps": "^1.2.4",
- "istanbul-reports": "^1.3.0",
+ "istanbul-lib-coverage": "^1.2.1",
+ "istanbul-lib-hook": "^1.2.2",
+ "istanbul-lib-instrument": "^1.10.2",
+ "istanbul-lib-report": "^1.1.5",
+ "istanbul-lib-source-maps": "^1.2.6",
+ "istanbul-reports": "^1.5.1",
"js-yaml": "^3.7.0",
"mkdirp": "^0.5.1",
"once": "^1.4.0"
- },
- "dependencies": {
- "istanbul-lib-source-maps": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz",
- "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==",
- "dev": true,
- "requires": {
- "debug": "^3.1.0",
- "istanbul-lib-coverage": "^1.2.0",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.6.1",
- "source-map": "^0.5.3"
- }
- }
}
},
"istanbul-lib-coverage": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz",
- "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+ "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
"dev": true
},
"istanbul-lib-hook": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz",
- "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz",
+ "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==",
"dev": true,
"requires": {
"append-transform": "^0.4.0"
}
},
"istanbul-lib-instrument": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz",
- "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
+ "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
"dev": true,
"requires": {
"babel-generator": "^6.18.0",
@@ -5196,7 +4866,7 @@
"babel-traverse": "^6.18.0",
"babel-types": "^6.18.0",
"babylon": "^6.18.0",
- "istanbul-lib-coverage": "^1.2.0",
+ "istanbul-lib-coverage": "^1.2.1",
"semver": "^5.3.0"
},
"dependencies": {
@@ -5209,12 +4879,12 @@
}
},
"istanbul-lib-report": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz",
- "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz",
+ "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==",
"dev": true,
"requires": {
- "istanbul-lib-coverage": "^1.2.0",
+ "istanbul-lib-coverage": "^1.2.1",
"mkdirp": "^0.5.1",
"path-parse": "^1.0.5",
"supports-color": "^3.1.2"
@@ -5238,22 +4908,22 @@
}
},
"istanbul-lib-source-maps": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz",
- "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz",
+ "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==",
"dev": true,
"requires": {
"debug": "^3.1.0",
- "istanbul-lib-coverage": "^1.1.2",
+ "istanbul-lib-coverage": "^1.2.1",
"mkdirp": "^0.5.1",
"rimraf": "^2.6.1",
"source-map": "^0.5.3"
}
},
"istanbul-reports": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz",
- "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz",
+ "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==",
"dev": true,
"requires": {
"handlebars": "^4.0.3"
@@ -5265,13 +4935,13 @@
"integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA=="
},
"jest": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest/-/jest-22.4.4.tgz",
- "integrity": "sha512-eBhhW8OS/UuX3HxgzNBSVEVhSuRDh39Z1kdYkQVWna+scpgsrD7vSeBI7tmEvsguPDMnfJodW28YBnhv/BzSew==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz",
+ "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==",
"dev": true,
"requires": {
"import-local": "^1.0.0",
- "jest-cli": "^22.4.4"
+ "jest-cli": "^23.6.0"
},
"dependencies": {
"ansi-regex": {
@@ -5298,9 +4968,9 @@
}
},
"jest-cli": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.4.tgz",
- "integrity": "sha512-I9dsgkeyjVEEZj9wrGrqlH+8OlNob9Iptyl+6L5+ToOLJmHm4JwOPatin1b2Bzp5R5YRQJ+oiedx7o1H7wJzhA==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz",
+ "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -5310,33 +4980,35 @@
"graceful-fs": "^4.1.11",
"import-local": "^1.0.0",
"is-ci": "^1.0.10",
- "istanbul-api": "^1.1.14",
- "istanbul-lib-coverage": "^1.1.1",
- "istanbul-lib-instrument": "^1.8.0",
- "istanbul-lib-source-maps": "^1.2.1",
- "jest-changed-files": "^22.2.0",
- "jest-config": "^22.4.4",
- "jest-environment-jsdom": "^22.4.1",
+ "istanbul-api": "^1.3.1",
+ "istanbul-lib-coverage": "^1.2.0",
+ "istanbul-lib-instrument": "^1.10.1",
+ "istanbul-lib-source-maps": "^1.2.4",
+ "jest-changed-files": "^23.4.2",
+ "jest-config": "^23.6.0",
+ "jest-environment-jsdom": "^23.4.0",
"jest-get-type": "^22.1.0",
- "jest-haste-map": "^22.4.2",
- "jest-message-util": "^22.4.0",
- "jest-regex-util": "^22.1.0",
- "jest-resolve-dependencies": "^22.1.0",
- "jest-runner": "^22.4.4",
- "jest-runtime": "^22.4.4",
- "jest-snapshot": "^22.4.0",
- "jest-util": "^22.4.1",
- "jest-validate": "^22.4.4",
- "jest-worker": "^22.2.2",
+ "jest-haste-map": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve-dependencies": "^23.6.0",
+ "jest-runner": "^23.6.0",
+ "jest-runtime": "^23.6.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
+ "jest-watcher": "^23.4.0",
+ "jest-worker": "^23.2.0",
"micromatch": "^2.3.11",
"node-notifier": "^5.2.1",
+ "prompts": "^0.1.9",
"realpath-native": "^1.0.0",
"rimraf": "^2.5.4",
"slash": "^1.0.0",
"string-length": "^2.0.0",
"strip-ansi": "^4.0.0",
"which": "^1.2.12",
- "yargs": "^10.0.3"
+ "yargs": "^11.0.0"
}
},
"string-length": {
@@ -5365,9 +5037,9 @@
"dev": true
},
"yargs": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
- "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
+ "version": "11.1.0",
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
+ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
"dev": true,
"requires": {
"cliui": "^4.0.0",
@@ -5381,13 +5053,13 @@
"string-width": "^2.0.0",
"which-module": "^2.0.0",
"y18n": "^3.2.1",
- "yargs-parser": "^8.1.0"
+ "yargs-parser": "^9.0.2"
}
},
"yargs-parser": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
- "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
"dev": true,
"requires": {
"camelcase": "^4.1.0"
@@ -5396,73 +5068,130 @@
}
},
"jest-changed-files": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz",
- "integrity": "sha512-83Dh0w1aSkUNFhy5d2dvqWxi/y6weDwVVLU6vmK0cV9VpRxPzhTeGimbsbRDSnEoszhF937M4sDLLeS7Cu/Tmw==",
+ "version": "23.4.2",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz",
+ "integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==",
"dev": true,
"requires": {
"throat": "^4.0.0"
}
},
"jest-config": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.4.tgz",
- "integrity": "sha512-9CKfo1GC4zrXSoMLcNeDvQBfgtqGTB1uP8iDIZ97oB26RCUb886KkKWhVcpyxVDOUxbhN+uzcBCeFe7w+Iem4A==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz",
+ "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==",
"dev": true,
"requires": {
+ "babel-core": "^6.0.0",
+ "babel-jest": "^23.6.0",
"chalk": "^2.0.1",
"glob": "^7.1.1",
- "jest-environment-jsdom": "^22.4.1",
- "jest-environment-node": "^22.4.1",
+ "jest-environment-jsdom": "^23.4.0",
+ "jest-environment-node": "^23.4.0",
"jest-get-type": "^22.1.0",
- "jest-jasmine2": "^22.4.4",
- "jest-regex-util": "^22.1.0",
- "jest-resolve": "^22.4.2",
- "jest-util": "^22.4.1",
- "jest-validate": "^22.4.4",
- "pretty-format": "^22.4.0"
+ "jest-jasmine2": "^23.6.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
+ "micromatch": "^2.3.11",
+ "pretty-format": "^23.6.0"
+ },
+ "dependencies": {
+ "babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"jest-diff": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz",
- "integrity": "sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz",
+ "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
"diff": "^3.2.0",
- "jest-get-type": "^22.4.3",
- "pretty-format": "^22.4.3"
+ "jest-get-type": "^22.1.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-docblock": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz",
- "integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==",
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz",
+ "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=",
"dev": true,
"requires": {
"detect-newline": "^2.1.0"
}
},
+ "jest-each": {
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz",
+ "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "pretty-format": "^23.6.0"
+ }
+ },
"jest-environment-jsdom": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz",
- "integrity": "sha512-FviwfR+VyT3Datf13+ULjIMO5CSeajlayhhYQwpzgunswoaLIPutdbrnfUHEMyJCwvqQFaVtTmn9+Y8WCt6n1w==",
+ "version": "23.4.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz",
+ "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=",
"dev": true,
"requires": {
- "jest-mock": "^22.4.3",
- "jest-util": "^22.4.3",
+ "jest-mock": "^23.2.0",
+ "jest-util": "^23.4.0",
"jsdom": "^11.5.1"
}
},
"jest-environment-node": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz",
- "integrity": "sha512-reZl8XF6t/lMEuPWwo9OLfttyC26A5AMgDyEQ6DBgZuyfyeNUzYT8BFo6uxCCP/Av/b7eb9fTi3sIHFPBzmlRA==",
+ "version": "23.4.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz",
+ "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=",
"dev": true,
"requires": {
- "jest-mock": "^22.4.3",
- "jest-util": "^22.4.3"
+ "jest-mock": "^23.2.0",
+ "jest-util": "^23.4.0"
}
},
"jest-get-type": {
@@ -5472,63 +5201,65 @@
"dev": true
},
"jest-haste-map": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz",
- "integrity": "sha512-4Q9fjzuPVwnaqGKDpIsCSoTSnG3cteyk2oNVjBX12HHOaF1oxql+uUiqZb5Ndu7g/vTZfdNwwy4WwYogLh29DQ==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz",
+ "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==",
"dev": true,
"requires": {
"fb-watchman": "^2.0.0",
"graceful-fs": "^4.1.11",
- "jest-docblock": "^22.4.3",
- "jest-serializer": "^22.4.3",
- "jest-worker": "^22.4.3",
+ "invariant": "^2.2.4",
+ "jest-docblock": "^23.2.0",
+ "jest-serializer": "^23.0.1",
+ "jest-worker": "^23.2.0",
"micromatch": "^2.3.11",
"sane": "^2.0.0"
}
},
"jest-jasmine2": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.4.tgz",
- "integrity": "sha512-nK3vdUl50MuH7vj/8at7EQVjPGWCi3d5+6aCi7Gxy/XMWdOdbH1qtO/LjKbqD8+8dUAEH+BVVh7HkjpCWC1CSw==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz",
+ "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==",
"dev": true,
"requires": {
+ "babel-traverse": "^6.0.0",
"chalk": "^2.0.1",
"co": "^4.6.0",
- "expect": "^22.4.0",
- "graceful-fs": "^4.1.11",
+ "expect": "^23.6.0",
"is-generator-fn": "^1.0.0",
- "jest-diff": "^22.4.0",
- "jest-matcher-utils": "^22.4.0",
- "jest-message-util": "^22.4.0",
- "jest-snapshot": "^22.4.0",
- "jest-util": "^22.4.1",
- "source-map-support": "^0.5.0"
+ "jest-diff": "^23.6.0",
+ "jest-each": "^23.6.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-leak-detector": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz",
- "integrity": "sha512-NZpR/Ls7+ndO57LuXROdgCGz2RmUdC541tTImL9bdUtU3WadgFGm0yV+Ok4Fuia/1rLAn5KaJ+i76L6e3zGJYQ==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz",
+ "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==",
"dev": true,
"requires": {
- "pretty-format": "^22.4.3"
+ "pretty-format": "^23.6.0"
}
},
"jest-matcher-utils": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz",
- "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz",
+ "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
- "jest-get-type": "^22.4.3",
- "pretty-format": "^22.4.3"
+ "jest-get-type": "^22.1.0",
+ "pretty-format": "^23.6.0"
}
},
"jest-message-util": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz",
- "integrity": "sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA==",
+ "version": "23.4.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz",
+ "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0-beta.35",
@@ -5539,81 +5270,104 @@
}
},
"jest-mock": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz",
- "integrity": "sha512-+4R6mH5M1G4NK16CKg9N1DtCaFmuxhcIqF4lQK/Q1CIotqMs/XBemfpDPeVZBFow6iyUNu6EBT9ugdNOTT5o5Q==",
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz",
+ "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=",
"dev": true
},
"jest-regex-util": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz",
- "integrity": "sha512-LFg1gWr3QinIjb8j833bq7jtQopiwdAs67OGfkPrvy7uNUbVMfTXXcOKXJaeY5GgjobELkKvKENqq1xrUectWg==",
+ "version": "23.3.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz",
+ "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=",
"dev": true
},
"jest-resolve": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz",
- "integrity": "sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz",
+ "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==",
"dev": true,
"requires": {
- "browser-resolve": "^1.11.2",
- "chalk": "^2.0.1"
+ "browser-resolve": "^1.11.3",
+ "chalk": "^2.0.1",
+ "realpath-native": "^1.0.0"
}
},
"jest-resolve-dependencies": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz",
- "integrity": "sha512-06czCMVToSN8F2U4EvgSB1Bv/56gc7MpCftZ9z9fBgUQM7dzHGCMBsyfVA6dZTx8v0FDcnALf7hupeQxaBCvpA==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz",
+ "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==",
"dev": true,
"requires": {
- "jest-regex-util": "^22.4.3"
+ "jest-regex-util": "^23.3.0",
+ "jest-snapshot": "^23.6.0"
}
},
"jest-runner": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.4.tgz",
- "integrity": "sha512-5S/OpB51igQW9xnkM5Tgd/7ZjiAuIoiJAVtvVTBcEBiXBIFzWM3BAMPBM19FX68gRV0KWyFuGKj0EY3M3aceeQ==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz",
+ "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==",
"dev": true,
"requires": {
"exit": "^0.1.2",
- "jest-config": "^22.4.4",
- "jest-docblock": "^22.4.0",
- "jest-haste-map": "^22.4.2",
- "jest-jasmine2": "^22.4.4",
- "jest-leak-detector": "^22.4.0",
- "jest-message-util": "^22.4.0",
- "jest-runtime": "^22.4.4",
- "jest-util": "^22.4.1",
- "jest-worker": "^22.2.2",
+ "graceful-fs": "^4.1.11",
+ "jest-config": "^23.6.0",
+ "jest-docblock": "^23.2.0",
+ "jest-haste-map": "^23.6.0",
+ "jest-jasmine2": "^23.6.0",
+ "jest-leak-detector": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-runtime": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-worker": "^23.2.0",
+ "source-map-support": "^0.5.6",
"throat": "^4.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+ "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ }
}
},
"jest-runtime": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.4.tgz",
- "integrity": "sha512-WRTj9m///npte1YjuphCYX7GRY/c2YvJImU9t7qOwFcqHr4YMzmX6evP/3Sehz5DKW2Vi8ONYPCFWe36JVXxfw==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz",
+ "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==",
"dev": true,
"requires": {
"babel-core": "^6.0.0",
- "babel-jest": "^22.4.4",
- "babel-plugin-istanbul": "^4.1.5",
+ "babel-plugin-istanbul": "^4.1.6",
"chalk": "^2.0.1",
"convert-source-map": "^1.4.0",
"exit": "^0.1.2",
+ "fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.1.11",
- "jest-config": "^22.4.4",
- "jest-haste-map": "^22.4.2",
- "jest-regex-util": "^22.1.0",
- "jest-resolve": "^22.4.2",
- "jest-util": "^22.4.1",
- "jest-validate": "^22.4.4",
- "json-stable-stringify": "^1.0.1",
+ "jest-config": "^23.6.0",
+ "jest-haste-map": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-regex-util": "^23.3.0",
+ "jest-resolve": "^23.6.0",
+ "jest-snapshot": "^23.6.0",
+ "jest-util": "^23.4.0",
+ "jest-validate": "^23.6.0",
"micromatch": "^2.3.11",
"realpath-native": "^1.0.0",
"slash": "^1.0.0",
"strip-bom": "3.0.0",
"write-file-atomic": "^2.1.0",
- "yargs": "^10.0.3"
+ "yargs": "^11.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -5649,32 +5403,6 @@
"source-map": "^0.5.7"
}
},
- "babel-jest": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.4.tgz",
- "integrity": "sha512-A9NB6/lZhYyypR9ATryOSDcqBaqNdzq4U+CN+/wcMsLcmKkPxQEoTKLajGfd3IkxNyVBT8NewUK2nWyGbSzHEQ==",
- "dev": true,
- "requires": {
- "babel-plugin-istanbul": "^4.1.5",
- "babel-preset-jest": "^22.4.4"
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.4.tgz",
- "integrity": "sha512-DUvGfYaAIlkdnygVIEl0O4Av69NtuQWcrjMOv6DODPuhuGLDnbsARz3AwiiI/EkIMMlxQDUcrZ9yoyJvTNjcVQ==",
- "dev": true
- },
- "babel-preset-jest": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.4.tgz",
- "integrity": "sha512-+dxMtOFwnSYWfum0NaEc0O03oSdwBsjx4tMSChRDPGwu/4wSY6Q6ANW3wkjKpJzzguaovRs/DODcT4hbSN8yiA==",
- "dev": true,
- "requires": {
- "babel-plugin-jest-hoist": "^22.4.4",
- "babel-plugin-syntax-object-rest-spread": "^6.13.0"
- }
- },
"babylon": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
@@ -5723,9 +5451,9 @@
"dev": true
},
"yargs": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
- "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
+ "version": "11.1.0",
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
+ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
"dev": true,
"requires": {
"cliui": "^4.0.0",
@@ -5739,13 +5467,13 @@
"string-width": "^2.0.0",
"which-module": "^2.0.0",
"y18n": "^3.2.1",
- "yargs-parser": "^8.1.0"
+ "yargs-parser": "^9.0.2"
}
},
"yargs-parser": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
- "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
"dev": true,
"requires": {
"camelcase": "^4.1.0"
@@ -5754,23 +5482,27 @@
}
},
"jest-serializer": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz",
- "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==",
+ "version": "23.0.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz",
+ "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=",
"dev": true
},
"jest-snapshot": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz",
- "integrity": "sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz",
+ "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==",
"dev": true,
"requires": {
+ "babel-types": "^6.0.0",
"chalk": "^2.0.1",
- "jest-diff": "^22.4.3",
- "jest-matcher-utils": "^22.4.3",
+ "jest-diff": "^23.6.0",
+ "jest-matcher-utils": "^23.6.0",
+ "jest-message-util": "^23.4.0",
+ "jest-resolve": "^23.6.0",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
- "pretty-format": "^22.4.3"
+ "pretty-format": "^23.6.0",
+ "semver": "^5.5.0"
}
},
"jest-transform-graphql": {
@@ -5780,17 +5512,18 @@
"dev": true
},
"jest-util": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz",
- "integrity": "sha512-rfDfG8wyC5pDPNdcnAlZgwKnzHvZDu8Td2NJI/jAGKEGxJPYiE4F0ss/gSAkG4778Y23Hvbz+0GMrDJTeo7RjQ==",
+ "version": "23.4.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz",
+ "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=",
"dev": true,
"requires": {
"callsites": "^2.0.0",
"chalk": "^2.0.1",
"graceful-fs": "^4.1.11",
"is-ci": "^1.0.10",
- "jest-message-util": "^22.4.3",
+ "jest-message-util": "^23.4.0",
"mkdirp": "^0.5.1",
+ "slash": "^1.0.0",
"source-map": "^0.6.0"
},
"dependencies": {
@@ -5803,36 +5536,73 @@
}
},
"jest-validate": {
- "version": "22.4.4",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.4.tgz",
- "integrity": "sha512-dmlf4CIZRGvkaVg3fa0uetepcua44DHtktHm6rcoNVtYlpwe6fEJRkMFsaUVcFHLzbuBJ2cPw9Gl9TKfnzMVwg==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz",
+ "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
- "jest-config": "^22.4.4",
"jest-get-type": "^22.1.0",
"leven": "^2.1.0",
- "pretty-format": "^22.4.0"
+ "pretty-format": "^23.6.0"
+ }
+ },
+ "jest-watcher": {
+ "version": "23.4.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz",
+ "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.1",
+ "string-length": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "string-length": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
+ "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=",
+ "dev": true,
+ "requires": {
+ "astral-regex": "^1.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
}
},
"jest-worker": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz",
- "integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==",
+ "version": "23.2.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz",
+ "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=",
"dev": true,
"requires": {
"merge-stream": "^1.0.1"
}
},
"js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
- "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -5847,36 +5617,36 @@
"optional": true
},
"jsdom": {
- "version": "11.10.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz",
- "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==",
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
+ "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
"dev": true,
"requires": {
- "abab": "^1.0.4",
- "acorn": "^5.3.0",
+ "abab": "^2.0.0",
+ "acorn": "^5.5.3",
"acorn-globals": "^4.1.0",
"array-equal": "^1.0.0",
"cssom": ">= 0.3.2 < 0.4.0",
- "cssstyle": ">= 0.2.37 < 0.3.0",
+ "cssstyle": "^1.0.0",
"data-urls": "^1.0.0",
- "domexception": "^1.0.0",
- "escodegen": "^1.9.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.9.1",
"html-encoding-sniffer": "^1.0.2",
- "left-pad": "^1.2.0",
- "nwmatcher": "^1.4.3",
+ "left-pad": "^1.3.0",
+ "nwsapi": "^2.0.7",
"parse5": "4.0.0",
"pn": "^1.1.0",
- "request": "^2.83.0",
+ "request": "^2.87.0",
"request-promise-native": "^1.0.5",
"sax": "^1.2.4",
"symbol-tree": "^3.2.2",
- "tough-cookie": "^2.3.3",
+ "tough-cookie": "^2.3.4",
"w3c-hr-time": "^1.0.1",
"webidl-conversions": "^4.0.2",
"whatwg-encoding": "^1.0.3",
"whatwg-mimetype": "^2.1.0",
- "whatwg-url": "^6.4.0",
- "ws": "^4.0.0",
+ "whatwg-url": "^6.4.1",
+ "ws": "^5.2.0",
"xml-name-validator": "^3.0.0"
},
"dependencies": {
@@ -5905,18 +5675,9 @@
"dev": true
},
"json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "~0.0.0"
- }
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stringify-safe": {
"version": "5.0.1",
@@ -5929,12 +5690,6 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
},
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -5960,6 +5715,12 @@
"is-buffer": "^1.1.5"
}
},
+ "kleur": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz",
+ "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==",
+ "dev": true
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -6047,11 +5808,20 @@
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
},
+ "lodash.escape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz",
+ "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg="
+ },
"lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
- "dev": true
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
"lodash.sortby": {
"version": "4.7.0",
@@ -6065,11 +5835,11 @@
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
},
"loose-envify": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
- "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
- "js-tokens": "^3.0.0"
+ "js-tokens": "^3.0.0 || ^4.0.0"
}
},
"lru-cache": {
@@ -6209,18 +5979,18 @@
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
},
"mime-db": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
- "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
+ "version": "1.36.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
+ "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
"dev": true
},
"mime-types": {
- "version": "2.1.18",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
- "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
"dev": true,
"requires": {
- "mime-db": "~1.33.0"
+ "mime-db": "~1.36.0"
}
},
"mimic-fn": {
@@ -6228,14 +5998,6 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
},
- "min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
- "requires": {
- "dom-walk": "^0.1.0"
- }
- },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -6256,7 +6018,7 @@
},
"minimist": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"mississippi": {
@@ -6297,7 +6059,7 @@
},
"mkdirp": {
"version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
@@ -6305,7 +6067,7 @@
"dependencies": {
"minimist": {
"version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}
}
@@ -6320,9 +6082,14 @@
}
},
"moment": {
- "version": "2.22.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz",
- "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ=="
+ "version": "2.22.2",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
+ "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
+ },
+ "moo": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz",
+ "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw=="
},
"move-concurrently": {
"version": "1.0.1",
@@ -6343,22 +6110,21 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"nan": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
- "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
+ "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==",
"optional": true
},
"nanomatch": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
- "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
"fragment-cache": "^0.2.1",
- "is-odd": "^2.0.0",
"is-windows": "^1.0.2",
"kind-of": "^6.0.2",
"object.pick": "^1.3.0",
@@ -6391,11 +6157,11 @@
"dev": true
},
"nearley": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.13.0.tgz",
- "integrity": "sha512-ioYYogSaZhFlCpRizQgY3UT3G1qFXmHGY/5ozoFE3dMfiCRAeJfh+IPE3/eh9gCZvqLhPCWb4bLt7Bqzo+1mLQ==",
- "dev": true,
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.1.tgz",
+ "integrity": "sha512-8IUY/rUrKz2mIynUGh8k+tul1awMKEjeHHC5G3FHvvyAW6oq4mQfNp2c0BMea+sYZJvYcrrM6GmZVIle/GRXGw==",
"requires": {
+ "moo": "^0.4.3",
"nomnom": "~1.6.2",
"railroad-diagrams": "^1.0.0",
"randexp": "0.4.6",
@@ -6403,14 +6169,14 @@
}
},
"neo-async": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
- "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA=="
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz",
+ "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw=="
},
"next": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/next/-/next-6.0.3.tgz",
- "integrity": "sha1-t1n94uxIZPkhFs7k/NgFqvKFE2w=",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/next/-/next-6.1.2.tgz",
+ "integrity": "sha512-/l0YNpHlph0l2VthNSzeADKZQJrF2Bq7a3OB0Cl91yeLYn+1y3oV9hQX/H6pj5lORai9fHGjooTwpqCOFfcnxg==",
"requires": {
"@babel/core": "7.0.0-beta.42",
"@babel/plugin-proposal-class-properties": "7.0.0-beta.42",
@@ -6424,7 +6190,7 @@
"@babel/template": "7.0.0-beta.42",
"ansi-html": "0.0.7",
"babel-core": "7.0.0-bridge.0",
- "babel-loader": "8.0.0-beta.2",
+ "babel-loader": "8.0.0-beta.3",
"babel-plugin-react-require": "3.0.0",
"babel-plugin-transform-react-remove-prop-types": "0.4.13",
"case-sensitive-paths-webpack-plugin": "2.1.1",
@@ -6436,7 +6202,7 @@
"fresh": "0.5.2",
"friendly-errors-webpack-plugin": "1.6.1",
"glob": "7.1.2",
- "hoist-non-react-statics": "2.5.0",
+ "hoist-non-react-statics": "2.5.5",
"htmlescape": "1.1.1",
"http-errors": "1.6.2",
"http-status": "1.0.1",
@@ -6446,7 +6212,7 @@
"path-to-regexp": "2.1.0",
"prop-types": "15.6.0",
"prop-types-exact": "1.1.1",
- "react-hot-loader": "4.1.3",
+ "react-lifecycles-compat": "3.0.4",
"recursive-copy": "2.0.6",
"resolve": "1.5.0",
"send": "0.16.1",
@@ -6456,7 +6222,7 @@
"touch": "3.1.0",
"uglifyjs-webpack-plugin": "1.1.6",
"unfetch": "3.0.0",
- "update-check": "1.4.0",
+ "update-check": "1.5.2",
"url": "0.11.0",
"uuid": "3.1.0",
"walk": "2.3.9",
@@ -6476,11 +6242,6 @@
"loose-envify": "^1.3.1",
"object-assign": "^4.1.1"
}
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
}
}
},
@@ -6490,21 +6251,36 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"next-with-apollo": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/next-with-apollo/-/next-with-apollo-3.0.2.tgz",
- "integrity": "sha512-MC3fyk+BdkBAYyQJiLSn/oqj5qKZvBQ7VchpUiNu69RK9FMjSBGSMvWwRuJc5AKfptOWyZmFZ/XcKsi60ExgdQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/next-with-apollo/-/next-with-apollo-3.1.3.tgz",
+ "integrity": "sha512-F2HiJo/z9wixXITyro0KOE1nzQe6GYc11xq+FoD1c5YOXtbxezUhOOquey7pCVnGvNxfufJOpqj3on75i7lfIQ==",
"requires": {
- "@types/graphql": "0.12.6",
- "@types/next": "^2.4.10",
+ "@types/graphql": "0.12.7",
+ "@types/next": "^6.0.4",
"@types/prop-types": "^15.5.2",
"@types/react": "^16.3.14",
- "apollo-client": "^2.3.1",
+ "apollo-client": "^2.4.1",
"graphql": "0.13.2",
"isomorphic-unfetch": "^2.0.0",
"next": "^6.0.0",
- "prop-types": "^15.6.1",
- "react-apollo": "^2.1.4",
+ "prop-types": "^15.6.2",
+ "react-apollo": "^2.1.9",
"react-dom": "^16.3.2"
+ },
+ "dependencies": {
+ "@types/graphql": {
+ "version": "0.12.7",
+ "resolved": "http://registry.npmjs.org/@types/graphql/-/graphql-0.12.7.tgz",
+ "integrity": "sha512-xuf/9ShwOOlxoV+J5ts4vAoPbL3nmcFU3z/Ad6jrsiB99hB/Wrs2fl3qJga5XJ1euAasMN/FsNPdHMV6+OV5vw=="
+ },
+ "graphql": {
+ "version": "0.13.2",
+ "resolved": "http://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz",
+ "integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==",
+ "requires": {
+ "iterall": "^1.2.1"
+ }
+ }
}
},
"node-fetch": {
@@ -6552,11 +6328,6 @@
"vm-browserify": "0.0.4"
},
"dependencies": {
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
- },
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -6580,7 +6351,6 @@
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz",
"integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=",
- "dev": true,
"requires": {
"colors": "0.5.x",
"underscore": "~1.4.4"
@@ -6630,7 +6400,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
"integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
- "dev": true,
"requires": {
"boolbase": "~1.0.0"
}
@@ -6640,16 +6409,16 @@
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
- "nwmatcher": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
- "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+ "nwsapi": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz",
+ "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==",
"dev": true
},
"oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
"object-assign": {
@@ -6680,19 +6449,17 @@
"object-inspect": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
},
"object-is": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=",
- "dev": true
+ "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY="
},
"object-keys": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
- "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
+ "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag=="
},
"object-visit": {
"version": "1.0.1",
@@ -6724,7 +6491,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz",
"integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.6.1",
@@ -6736,7 +6502,6 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.5.1"
@@ -6770,7 +6535,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz",
"integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.6.1",
@@ -6806,7 +6570,7 @@
"dependencies": {
"minimist": {
"version": "0.0.10",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"dev": true
}
@@ -6867,9 +6631,9 @@
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
},
"p-limit": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
- "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"requires": {
"p-try": "^1.0.0"
}
@@ -6942,7 +6706,6 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
"integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "dev": true,
"requires": {
"@types/node": "*"
}
@@ -6983,9 +6746,9 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
},
"path-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
- "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
"path-to-regexp": {
"version": "2.1.0",
@@ -7022,8 +6785,7 @@
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "dev": true
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pify": {
"version": "3.0.0",
@@ -7088,9 +6850,9 @@
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
},
"pretty-format": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz",
- "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==",
+ "version": "23.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz",
+ "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0",
@@ -7111,9 +6873,9 @@
"integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
},
"process": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
- "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
},
"process-nextick-args": {
"version": "2.0.0",
@@ -7133,12 +6895,21 @@
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
},
+ "prompts": {
+ "version": "0.1.14",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz",
+ "integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==",
+ "dev": true,
+ "requires": {
+ "kleur": "^2.0.1",
+ "sisteransi": "^0.1.1"
+ }
+ },
"prop-types": {
- "version": "15.6.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz",
- "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==",
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
+ "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
"requires": {
- "fbjs": "^0.8.16",
"loose-envify": "^1.3.1",
"object-assign": "^4.1.1"
}
@@ -7162,6 +6933,12 @@
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
+ "psl": {
+ "version": "1.1.29",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
+ "dev": true
+ },
"public-encrypt": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
@@ -7194,9 +6971,9 @@
}
},
"punycode": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
- "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
"version": "6.5.2",
@@ -7218,7 +6995,6 @@
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
"integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
- "dev": true,
"requires": {
"performance-now": "^2.1.0"
}
@@ -7226,23 +7002,21 @@
"railroad-diagrams": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=",
- "dev": true
+ "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234="
},
"randexp": {
"version": "0.4.6",
"resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
"integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
"requires": {
"discontinuous-range": "1.0.0",
"ret": "~0.1.10"
}
},
"randomatic": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
- "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
+ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
"requires": {
"is-number": "^4.0.0",
"kind-of": "^6.0.0",
@@ -7284,25 +7058,25 @@
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"rc": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz",
- "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"requires": {
- "deep-extend": "^0.5.1",
+ "deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
}
},
"react": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react/-/react-16.3.2.tgz",
- "integrity": "sha512-o5GPdkhciQ3cEph6qgvYB7LTOHw/GB0qRI6ZFNugj49qJCFfgHwVNjZ5u+b7nif4vOeMIOuYj3CeYe2IBD74lg==",
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.5.0.tgz",
+ "integrity": "sha512-nw/yB/L51kA9PsAy17T1JrzzGRk+BlFCJwFF7p+pwVxgqwPjYNeZEkkH7LXn9dmflolrYMXLWMTkQ77suKPTNQ==",
"requires": {
- "fbjs": "^0.8.16",
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
+ "prop-types": "^15.6.2",
+ "schedule": "^0.3.0"
}
},
"react-adopt": {
@@ -7316,22 +7090,15 @@
}
},
"react-apollo": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.1.4.tgz",
- "integrity": "sha512-KVDoRdGxUJYOAuWbYmsl4mvJXBvlJFDDDd43V0ey2gxWrNloGK/JVjnET6/PApj142FCcWz42Nvc4oW27f9acA==",
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.1.11.tgz",
+ "integrity": "sha512-WRoSOuZiQYgieXTgep4v3YwtVlxRnPHdcLEJBLX5+zq2atLmonvEkuFLJNjhAAOW/mYM8XhbLrbaC5NPrFrn0w==",
"requires": {
"fbjs": "^0.8.16",
"hoist-non-react-statics": "^2.5.0",
"invariant": "^2.2.2",
- "lodash": "4.17.5",
+ "lodash": "^4.17.10",
"prop-types": "^15.6.0"
- },
- "dependencies": {
- "lodash": {
- "version": "4.17.5",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
- "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
- }
}
},
"react-display-name": {
@@ -7340,76 +7107,51 @@
"integrity": "sha512-zvU6iouW+SWwHTyThwxGICjJYCMZFk/6r/+jmOdC7ntQoPlS/Pqb81MkxaMf2bHTSq9TN3K3zX2/ayMW/jCtyA=="
},
"react-dom": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.3.2.tgz",
- "integrity": "sha512-MMPko3zYncNrz/7gG17wJWUREZDvskZHXOwbttzl0F0L3wDmToyuETuo/r8Y5yvDejwYcRyWI1lvVBjLJWFwKA==",
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.5.0.tgz",
+ "integrity": "sha512-qgsQdjFH54pQ1AGLCBKsqjPxib4Pnp+cOsNxGPlkHn5YnsSt43sBvHSif6FheY7NMMS6HPeSJOxXf6ECanjacA==",
"requires": {
- "fbjs": "^0.8.16",
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
- "react-hot-loader": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.1.3.tgz",
- "integrity": "sha512-CF3Y/qUfL1PkM6TPrELNsSiHGKJFRnpyLdzsk+HV4IIuQAY2g1aZXQmK4L/O8WOaldoOujxAYfRfpzrWTvmvtg==",
- "requires": {
- "fast-levenshtein": "^2.0.6",
- "global": "^4.3.0",
- "hoist-non-react-statics": "^2.5.0",
- "prop-types": "^15.6.1",
- "react-lifecycles-compat": "^3.0.2",
- "shallowequal": "^1.0.2"
+ "prop-types": "^15.6.2",
+ "schedule": "^0.3.0"
}
},
"react-is": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.3.2.tgz",
- "integrity": "sha512-ybEM7YOr4yBgFd6w8dJqwxegqZGJNBZl6U27HnGKuTZmDvVrD5quWOK/wAnMywiZzW+Qsk+l4X2c70+thp/A8Q=="
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.5.0.tgz",
+ "integrity": "sha512-kpkCGLsChXTEQJVmowQqHpCjHKJFwB4SIChYaaaiAkq8OtE2aBg5pQe8/xnFlGmz9KmMx1H4oQRUyxP7qC9v5A=="
},
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
- "react-reconciler": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.7.0.tgz",
- "integrity": "sha512-50JwZ3yNyMS8fchN+jjWEJOH3Oze7UmhxeoJLn2j6f3NjpfCRbcmih83XTWmzqtar/ivd5f7tvQhvvhism2fgg==",
- "dev": true,
- "requires": {
- "fbjs": "^0.8.16",
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.0"
- }
- },
"react-stripe-checkout": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/react-stripe-checkout/-/react-stripe-checkout-2.6.3.tgz",
"integrity": "sha1-MXOocLBOWjwyGgbSTNU8YDARHEU="
},
"react-test-renderer": {
- "version": "16.3.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.3.2.tgz",
- "integrity": "sha512-lL8WHIpCTMdSe+CRkt0rfMxBkJFyhVrpdQ54BaJRIrXf9aVmbeHbRA8GFRpTvohPN5tPzMabmrzW2PUfWCfWwQ==",
- "dev": true,
+ "version": "16.5.0",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.5.0.tgz",
+ "integrity": "sha512-cuN9BoZ1p6T3oxrjxN7pQDSmgWzAxWBi8gtCHcViMYcw/1xqOIyatt2YFhiCWg7115TPQqkTKEu+F44YjFE4ig==",
"requires": {
- "fbjs": "^0.8.16",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.0",
- "react-is": "^16.3.2"
+ "prop-types": "^15.6.2",
+ "react-is": "^16.5.0",
+ "schedule": "^0.3.0"
}
},
"react-transition-group": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.3.1.tgz",
- "integrity": "sha512-hu4/LAOFSKjWt1+1hgnOv3ldxmt6lvZGTWz4KUkFrqzXrNDIVSu6txIcPszw7PNduR8en9YTN55JLRyd/L1ZiQ==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.4.0.tgz",
+ "integrity": "sha512-Xv5d55NkJUxUzLCImGSanK8Cl/30sgpOEMGc5m86t8+kZwrPxPCPcFqyx83kkr+5Lz5gs6djuvE5By+gce+VjA==",
"requires": {
"dom-helpers": "^3.3.1",
"loose-envify": "^1.3.1",
- "prop-types": "^15.6.1"
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
}
},
"read-pkg": {
@@ -7433,7 +7175,7 @@
},
"readable-stream": {
"version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
@@ -7457,9 +7199,9 @@
}
},
"realpath-native": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz",
- "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.2.tgz",
+ "integrity": "sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==",
"dev": true,
"requires": {
"util.promisify": "^1.0.0"
@@ -7522,11 +7264,11 @@
"integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg=="
},
"regenerate-unicode-properties": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-6.0.0.tgz",
- "integrity": "sha512-BvXxRS7RfVWxtm7vrq+0I0j7sqZ1zeSC+yzf5HS0qLnKcZPX541gFEGB39LvGuKHrkyKXrzXug+oC7xkM1Zovw==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
+ "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
"requires": {
- "regenerate": "^1.3.3"
+ "regenerate": "^1.4.0"
}
},
"regenerator-runtime": {
@@ -7535,9 +7277,9 @@
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"regenerator-transform": {
- "version": "0.12.3",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.3.tgz",
- "integrity": "sha512-y2uxO/6u+tVmtEDIKo+tLCtI0GcbQr0OreosKgCd7HP4VypGjtTrw79DezuwT+W5QX0YWuvpeBOgumrepwM1kA==",
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.4.tgz",
+ "integrity": "sha512-p2I0fY+TbSLD2/VFTFb/ypEHxs3e3AjU0DzttdPqk2bSmDhfSh5E54b86Yc6XhUa5KykK1tgbvZ4Nr82oCJWkQ==",
"requires": {
"private": "^0.1.6"
}
@@ -7560,16 +7302,16 @@
}
},
"regexpu-core": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.1.5.tgz",
- "integrity": "sha512-3xo5pFze1F8oR4F9x3aFbdtdxAxQ9WBX6gXfLgeBt7KpDI0+oDF7WVntnhsPKqobU/GAYc2pmx+y3z0JI1+z3w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
+ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
"requires": {
"regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^6.0.0",
+ "regenerate-unicode-properties": "^7.0.0",
"regjsgen": "^0.4.0",
"regjsparser": "^0.3.0",
- "unicode-match-property-ecmascript": "^1.0.3",
- "unicode-match-property-value-ecmascript": "^1.0.1"
+ "unicode-match-property-ecmascript": "^1.0.4",
+ "unicode-match-property-value-ecmascript": "^1.0.2"
}
},
"registry-auth-token": {
@@ -7615,9 +7357,9 @@
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"repeat-element": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
},
"repeat-string": {
"version": "1.6.1",
@@ -7634,31 +7376,39 @@
}
},
"request": {
- "version": "2.87.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
- "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true,
"requires": {
"aws-sign2": "~0.7.0",
- "aws4": "^1.6.0",
+ "aws4": "^1.8.0",
"caseless": "~0.12.0",
- "combined-stream": "~1.0.5",
- "extend": "~3.0.1",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
"forever-agent": "~0.6.1",
- "form-data": "~2.3.1",
- "har-validator": "~5.0.3",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.17",
- "oauth-sign": "~0.8.2",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
- "qs": "~6.5.1",
- "safe-buffer": "^5.1.1",
- "tough-cookie": "~2.3.3",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
"tunnel-agent": "^0.6.0",
- "uuid": "^3.1.0"
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ }
}
},
"request-promise-core": {
@@ -7759,7 +7509,6 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
"integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=",
- "dev": true,
"requires": {
"lodash.flattendeep": "^4.4.0",
"nearley": "^2.7.10"
@@ -8105,19 +7854,27 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
},
+ "schedule": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.3.0.tgz",
+ "integrity": "sha512-20+1KVo517sR7Nt+bYBN8a+bEJDKLPEx7Ohtts1kX05E4/HY53YUNuhfkVNItmWAnBYHcpG9vsd2/CJxG+aPCQ==",
+ "requires": {
+ "object-assign": "^4.1.1"
+ }
+ },
"schema-utils": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
- "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
"requires": {
"ajv": "^6.1.0",
"ajv-keywords": "^3.1.0"
}
},
"semver": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
- "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
},
"send": {
"version": "0.16.1",
@@ -8209,11 +7966,6 @@
"safe-buffer": "^5.0.1"
}
},
- "shallowequal": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.0.2.tgz",
- "integrity": "sha512-zlVXeVUKvo+HEv1e2KQF/csyeMKx2oHvatQ9l6XjCUj3agvC8XGf6R9HvIPDSmp8FNPvx7b5kaEJTRi7CqxtEw=="
- },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -8238,6 +7990,12 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
+ "sisteransi": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz",
+ "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==",
+ "dev": true
+ },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -8371,21 +8129,12 @@
}
},
"source-map-support": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
- "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
+ "source-map": "^0.5.6"
}
},
"source-map-url": {
@@ -8417,9 +8166,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
- "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
+ "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=="
},
"split-string": {
"version": "3.1.0",
@@ -8436,9 +8185,9 @@
"dev": true
},
"sshpk": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
- "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"dev": true,
"requires": {
"asn1": "~0.2.3",
@@ -8448,6 +8197,7 @@
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
}
},
@@ -8510,18 +8260,18 @@
}
},
"stream-each": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
- "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
"requires": {
"end-of-stream": "^1.1.0",
"stream-shift": "^1.0.0"
}
},
"stream-http": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz",
- "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==",
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
"requires": {
"builtin-status-codes": "^3.0.0",
"inherits": "^2.0.1",
@@ -8577,6 +8327,16 @@
}
}
},
+ "string.prototype.trim": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
+ "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.0",
+ "function-bind": "^1.0.2"
+ }
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -8609,15 +8369,14 @@
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
},
"styled-components": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.2.6.tgz",
- "integrity": "sha1-mebnWnRr3t0pWhfgPdFJMFWhzDs=",
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.4.6.tgz",
+ "integrity": "sha512-HiEVVY93oH/PuekPuIE7ownn2wmO708rS8MM1yS20i0TCyFgPs3mbop8fJqKLRtC2/npVn2fO5Je6azaL6T2tg==",
"requires": {
"buffer": "^5.0.3",
"css-to-react-native": "^2.0.3",
"fbjs": "^0.8.16",
"hoist-non-react-statics": "^2.5.0",
- "is-plain-object": "^2.0.1",
"prop-types": "^15.5.4",
"react-is": "^16.3.1",
"stylis": "^3.5.0",
@@ -8626,9 +8385,9 @@
},
"dependencies": {
"buffer": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz",
- "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
+ "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
"requires": {
"base64-js": "^1.0.2",
"ieee754": "^1.1.4"
@@ -8639,6 +8398,11 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
},
+ "stylis": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.3.tgz",
+ "integrity": "sha512-TxU0aAscJghF9I3V9q601xcK3Uw1JbXvpsBGj/HULqexKOKlOEzzlIpLFRbKkCK990ccuxfXUqmPbIIo7Fq/cQ=="
+ },
"stylis-rule-sheet": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz",
@@ -8656,7 +8420,7 @@
},
"styled-jsx": {
"version": "2.2.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-2.2.6.tgz",
+ "resolved": "http://registry.npmjs.org/styled-jsx/-/styled-jsx-2.2.6.tgz",
"integrity": "sha512-lx678TbNf56I7W4JezJqbLdSiTOpuKvixaZTCjHapFbuJQV3b3dByza6u8+cPRtG/PAmBHeA61croO77rp5auw==",
"requires": {
"babel-plugin-syntax-jsx": "6.18.0",
@@ -8668,22 +8432,22 @@
"stylis-rule-sheet": "0.0.8"
},
"dependencies": {
+ "convert-source-map": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "stylis": {
- "version": "3.4.10",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.4.10.tgz",
- "integrity": "sha512-J7CXAfeyhjdgvdQMz2yy0gTDccq0nVmatx6IlX1je1kCqdNgk3npGOzX6qprEd2oHVv7IF5HXO08i6XFQs/JRA=="
}
}
},
"stylis": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.0.tgz",
- "integrity": "sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw=="
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.4.10.tgz",
+ "integrity": "sha512-J7CXAfeyhjdgvdQMz2yy0gTDccq0nVmatx6IlX1je1kCqdNgk3npGOzX6qprEd2oHVv7IF5HXO08i6XFQs/JRA=="
},
"stylis-rule-sheet": {
"version": "0.0.8",
@@ -8691,9 +8455,9 @@
"integrity": "sha512-UgR/mJxew0tbNFXzkm60G26bkyYAnzf8OqB9pX2okFYxwEUpuxQ6E5lKhHH23Fs4F5aU6axCtNZRaB8ZdVrWvQ=="
},
"supports-color": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
- "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
@@ -8715,219 +8479,18 @@
"integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI="
},
"test-exclude": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz",
- "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz",
+ "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==",
"dev": true,
"requires": {
"arrify": "^1.0.1",
- "micromatch": "^3.1.8",
+ "micromatch": "^2.3.11",
"object-assign": "^4.1.0",
"read-pkg-up": "^1.0.1",
"require-main-filename": "^1.0.1"
},
"dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
@@ -8938,67 +8501,6 @@
"pinkie-promise": "^2.0.0"
}
},
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- },
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -9012,27 +8514,6 @@
"strip-bom": "^2.0.0"
}
},
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- },
"path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
@@ -9107,9 +8588,9 @@
}
},
"time-stamp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
- "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.1.0.tgz",
+ "integrity": "sha512-lJbq6KsFhZJtN3fPUVje1tq/hHsJOKUUcUj/MGCiQR6qWBDcyi5kxL9J7/RnaEChCn0+L/DUN2WvemDrkk4i3Q=="
},
"timers-browserify": {
"version": "2.0.10",
@@ -9182,11 +8663,12 @@
}
},
"tough-cookie": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
- "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"dev": true,
"requires": {
+ "psl": "^1.1.24",
"punycode": "^1.4.1"
},
"dependencies": {
@@ -9299,8 +8781,7 @@
"underscore": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
- "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
- "dev": true
+ "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ="
},
"unfetch": {
"version": "3.0.0",
@@ -9308,28 +8789,28 @@
"integrity": "sha1-jR4FE6Ts0OX/LUGmund3Gq6LZII="
},
"unicode-canonical-property-names-ecmascript": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.3.tgz",
- "integrity": "sha512-iG/2t0F2LAU8aZYPkX5gi7ebukHnr3sWFESpb+zPQeeaQwOkfoO6ZW17YX7MdRPNG9pCy+tjzGill+Ah0Em0HA=="
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="
},
"unicode-match-property-ecmascript": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz",
- "integrity": "sha512-nFcaBFcr08UQNF15ZgI5ISh3yUnQm7SJRRxwYrL5VYX46pS+6Q7TCTv4zbK+j6/l7rQt0mMiTL2zpmeygny6rA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
"requires": {
- "unicode-canonical-property-names-ecmascript": "^1.0.2",
- "unicode-property-aliases-ecmascript": "^1.0.3"
+ "unicode-canonical-property-names-ecmascript": "^1.0.4",
+ "unicode-property-aliases-ecmascript": "^1.0.4"
}
},
"unicode-match-property-value-ecmascript": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz",
- "integrity": "sha512-lM8B0FDZQh9yYGgiabRQcyWicB27VLOolSBRIxsO7FeQPtg+79Oe7sC8Mzr8BObDs+G9CeYmC/shHo6OggNEog=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
+ "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ=="
},
"unicode-property-aliases-ecmascript": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz",
- "integrity": "sha512-TdDmDOTxEf2ad1g3ZBpM6cqKIb2nJpVlz1Q++casDryKz18tpeMBhSng9hjC1CTQCkOV9Rw2knlSB6iRo7ad1w=="
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg=="
},
"union-value": {
"version": "1.0.0",
@@ -9426,18 +8907,18 @@
"integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw=="
},
"update-check": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.4.0.tgz",
- "integrity": "sha512-KSPgYhsCqS78LnMmJIcsh1BIOaOvSRPDo8x7Qcz0LF5ZsaioDyiVon5o0wqZgzkrU4jgrm5yuu9Ec/B84N6TZg==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz",
+ "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==",
"requires": {
"registry-auth-token": "3.3.2",
"registry-url": "3.1.0"
}
},
"uri-js": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz",
- "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"requires": {
"punycode": "^2.1.0"
}
@@ -9464,33 +8945,16 @@
}
},
"use": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
- "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
- "requires": {
- "kind-of": "^6.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
- }
- }
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
"util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"requires": {
- "inherits": "2.0.1"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
- }
+ "inherits": "2.0.3"
}
},
"util-deprecate": {
@@ -9502,22 +8966,20 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
"integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"object.getownpropertydescriptors": "^2.0.3"
}
},
"uuid": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
- "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
- "dev": true
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
},
"validate-npm-package-license": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
- "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -9654,6 +9116,11 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
},
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
"supports-color": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
@@ -9674,7 +9141,7 @@
"dependencies": {
"yargs": {
"version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"requires": {
"camelcase": "^1.0.2",
@@ -9737,26 +9204,29 @@
}
},
"whatwg-encoding": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
- "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz",
+ "integrity": "sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==",
"dev": true,
"requires": {
- "iconv-lite": "0.4.19"
+ "iconv-lite": "0.4.23"
},
"dependencies": {
"iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "dev": true
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
}
}
},
"whatwg-fetch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
- "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
+ "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
},
"whatwg-mimetype": {
"version": "2.1.0",
@@ -9765,9 +9235,9 @@
"dev": true
},
"whatwg-url": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz",
- "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
+ "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
"dev": true,
"requires": {
"lodash.sortby": "^4.7.0",
@@ -9776,9 +9246,9 @@
}
},
"which": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"requires": {
"isexe": "^2.0.0"
}
@@ -9808,7 +9278,7 @@
},
"wrap-ansi": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
"string-width": "^1.0.1",
@@ -9863,7 +9333,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "^2.2.1",
@@ -9889,13 +9359,12 @@
}
},
"ws": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
- "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
"dev": true,
"requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0"
+ "async-limiter": "~1.0.0"
}
},
"xml-name-validator": {
@@ -9989,9 +9458,9 @@
}
},
"zen-observable": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.8.tgz",
- "integrity": "sha512-HnhhyNnwTFzS48nihkCZIJGsWGFcYUz+XPDlPK5W84Ifji8SksC6m7sQWOf8zdCGhzQ4tDYuMYGu5B0N1dXTtg=="
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.9.tgz",
+ "integrity": "sha512-Y9kPzjGvIZ5jchSlqlCpBW3I82zBBL4z+ulXDRVA1NwsKzjt5kwAi+gOYIy0htNkfuehGZZtP5mRXHRV6TjDWw=="
},
"zen-observable-ts": {
"version": "0.8.9",
diff --git a/finished-application/frontend/package.json b/finished-application/frontend/package.json
index 2fe111a..4578192 100644
--- a/finished-application/frontend/package.json
+++ b/finished-application/frontend/package.json
@@ -4,48 +4,48 @@
"description": "Sick Fits! An example React, GraphQL, Next and Apollo",
"main": "index.js",
"scripts": {
- "dev": "next -p 8888",
+ "dev": "next -p 7777",
"build": "next build",
"start": "next start",
- "test": "NODE_ENV=test jest --watch"
+ "test": "NODE_ENV=test jest --watch",
+ "heroku-postbuild": "next build"
},
"author": "",
"license": "ISC",
"dependencies": {
- "apollo-boost": "^0.1.6",
- "apollo-client": "^2.3.1",
+ "apollo-boost": "^0.1.15",
+ "apollo-client": "^2.4.1",
"babel-core": "^7.0.0-bridge.0",
- "babel-plugin-styled-components": "^1.5.1",
+ "babel-plugin-styled-components": "^1.6.4",
"date-fns": "^2.0.0-alpha.7",
- "downshift": "^1.31.14",
- "graphql": "^0.13.2",
+ "downshift": "^2.2.2",
+ "enzyme": "^3.6.0",
+ "enzyme-adapter-react-16": "^1.5.0",
+ "graphql": "^14.0.2",
"graphql-tag": "^2.9.2",
"lodash.debounce": "^4.0.8",
- "next": "^6.0.3",
- "next-with-apollo": "^3.0.2",
+ "next": "^6.1.2",
+ "next-with-apollo": "^3.1.3",
"nprogress": "^0.2.0",
- "prop-types": "^15.6.1",
- "react": "^16.3.2",
+ "prop-types": "^15.6.2",
+ "react": "^16.5.0",
"react-adopt": "^0.6.0",
- "react-apollo": "^2.1.4",
- "react-dom": "^16.3.2",
+ "react-apollo": "^2.1.11",
+ "react-dom": "^16.5.0",
"react-stripe-checkout": "^2.6.3",
- "react-transition-group": "^2.3.1",
- "styled-components": "^3.2.6",
+ "react-transition-group": "^2.4.0",
+ "styled-components": "^3.4.6",
"waait": "^1.0.2"
},
"devDependencies": {
- "babel-jest": "^23.0.0",
+ "babel-jest": "^23.6.0",
"babel-plugin-module-resolver": "^3.1.1",
"casual": "^1.5.19",
- "enzyme": "^3.3.0",
- "enzyme-adapter-react-16": "^1.1.1",
"enzyme-to-json": "^3.3.4",
- "graphql-tools": "^3.0.2",
- "jest": "^22.4.4",
+ "graphql-tools": "^3.1.1",
+ "jest": "^23.6.0",
"jest-transform-graphql": "^2.1.0"
},
- "//": "This is out babel config, I prefer this over a .babelrc file",
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/jest.setup.js",
"testPathIgnorePatterns": [
@@ -57,6 +57,7 @@
".*": "babel-jest"
}
},
+ "//": "This is out babel config, I prefer this over a .babelrc file",
"babel": {
"env": {
"development": {
@@ -97,6 +98,15 @@
}
}
]
+ ],
+ "plugins": [
+ [
+ "styled-components",
+ {
+ "ssr": true,
+ "displayName": true
+ }
+ ]
]
}
}
diff --git a/finished-application/frontend/pages/.gitkeep b/finished-application/frontend/pages/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/finished-application/frontend/pages/.gitkeep
diff --git a/finished-application/frontend/pages/_app.js b/finished-application/frontend/pages/_app.js
index 4e9af74..fc03876 100644
--- a/finished-application/frontend/pages/_app.js
+++ b/finished-application/frontend/pages/_app.js
@@ -1,11 +1,7 @@
import App, { Container } from 'next/app';
+import Page from '../components/Page';
import { ApolloProvider } from 'react-apollo';
import withData from '../lib/withData';
-import Page from '../components/Page';
-
-// Next.js wraps each Page in an <App></App> component. This is handy for when you want to persist anything from page to page, or just access a component that is 1 level higher than each page.
-
-// here we use App from next/app and wrap it with withData so we can get Apollo and SSR
class MyApp extends App {
static async getInitialProps({ Component, ctx }) {
@@ -13,13 +9,12 @@ class MyApp extends App {
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx);
}
-
+ // this exposes the query to the user
pageProps.query = ctx.query;
-
return { pageProps };
}
render() {
- const { Component, pageProps, apollo } = this.props;
+ const { Component, apollo, pageProps } = this.props;
return (
<Container>
diff --git a/finished-application/frontend/pages/_document.js b/finished-application/frontend/pages/_document.js
index a5a28cc..0ac8935 100644
--- a/finished-application/frontend/pages/_document.js
+++ b/finished-application/frontend/pages/_document.js
@@ -1,7 +1,7 @@
import Document, { Head, Main, NextScript } from 'next/document';
import { ServerStyleSheet } from 'styled-components';
-class MyDocument extends Document {
+export default class MyDocument extends Document {
static getInitialProps({ renderPage }) {
const sheet = new ServerStyleSheet();
const page = renderPage(App => props => sheet.collectStyles(<App {...props} />));
@@ -21,5 +21,3 @@ class MyDocument extends Document {
);
}
}
-
-export default MyDocument;
diff --git a/finished-application/frontend/pages/add.js b/finished-application/frontend/pages/add.js
deleted file mode 100644
index 57a327d..0000000
--- a/finished-application/frontend/pages/add.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import CreateItem from '../components/CreateItem';
-import PleaseSignIn from '../components/PleaseSignIn';
-
-const Sell = () => (
- <PleaseSignIn>
- <CreateItem />
- </PleaseSignIn>
-);
-
-export default Sell;
diff --git a/finished-application/frontend/pages/diagram.js b/finished-application/frontend/pages/diagram.js
deleted file mode 100644
index a505089..0000000
--- a/finished-application/frontend/pages/diagram.js
+++ /dev/null
@@ -1,202 +0,0 @@
-import styled from 'styled-components';
-
-const DiagramStyles = styled.div`
- display: grid;
- grid-template-columns: repeat(8, 1fr);
- grid-column-gap: 20px;
- h1 {
- grid-column: 1 / -1;
- grid-row: 1;
- }
- ul {
- margin: 0;
- padding: 0;
- list-style: none;
- li {
- border-bottom: 1px solid rgba(0, 0, 0, 0.2);
- padding: 5px 0;
- }
- }
- h2 {
- text-align: center;
- margin: 0;
- background: black;
- color: white;
- width: calc(40px + 100%);
- transform: translateX(-20px);
- }
- span.for {
- font-size: 12px;
- text-align: center;
- margin-top: 1rem;
- margin-bottom: 1rem;
- display: block;
- }
- .slat {
- background: #f7f7f7;
- padding: 20px;
- min-height: 500px;
- grid-column: span 2;
- grid-row: 4;
- line-height: 1.7;
- }
-
- .location {
- grid-column: span 4;
- background: red;
- padding: 5px;
- grid-row: 2;
- text-align: center;
- color: white;
- text-transform: uppercase;
- }
-
- .arrow {
- font-size: 30px;
- line-height: 1;
- transform: translateX(-10px) translateX(-50%);
- text-align: center;
- grid-row: 3;
- margin-bottom: -100%;
- background: white;
- height: 40px;
- }
- .arrow1 {
- grid-column: 3;
- }
- .arrow2 {
- grid-column: 5;
- }
- .arrow3 {
- grid-column: 7;
- }
- img {
- width: 100%;
- height: 125px;
- object-fit: contain;
- }
- .slat2 img {
- filter: invert(100%);
- }
- .slat4 img {
- mix-blend-mode: multiply;
- }
-`;
-
-const Diagram = () => (
- <DiagramStyles>
- <h1>The Pieces of our Application</h1>
- <span className="location frontend">Frontend</span>
- <span className=" location backend">Backend</span>
- <div className="slat slat1">
- <img
- src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/640px-React-icon.svg.png"
- alt="React.js"
- />
- <h2>React.js</h2>
- <span className="for">For Building The Interface along with:</span>
- <ul>
- <li>
- <strong>Next.js</strong> for server side rendering, routing and tooling
- </li>
- <li>
- <strong>Styled Components</strong> for styling
- </li>
- <li>
- <strong>React-Apollo</strong> for interfacing with Apollo Client
- </li>
- </ul>
- </div>
- <div className="slat slat2">
- <img
- src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iOThweCIgaGVpZ2h0PSI0MnB4IiB2aWV3Qm94PSIwIDAgMTIwIDQyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHN0eWxlPgogICAgICAgIHRleHQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1NvdXJjZSBTYW5zIFBybycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxnIGlkPSJob21lcGFnZS0rLW5hdiIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImhvbWUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zNTAuMDAwMDAwLCAtMTUzOS4wMDAwMDApIiBmaWxsPSIjRkZGRkZGIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM1MC4wMDAwMDAsIDE1MzguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0ibG9nby1hcG9sbG8tc3BhY2UtY29weS0yOCIgZmlsbC1ydWxlPSJub256ZXJvIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iTGF5ZXJfMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJsb2dvX2Fwb2xsb19zcGFjZS1saW5rIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0OS42MTkxNTUsIDE1LjcxNjE3NSkgc2NhbGUoLTEsIDEpIHJvdGF0ZSgtMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC00OS42MTkxNTUsIC0xNS43MTYxNzUpIHRyYW5zbGF0ZSgwLjExOTE1NSwgMC43MTYxNzUpIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJsb2dvX2Fwb2xsb19zcGFjZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0wLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4zMzE4MjUsIDAuOTY1MzA5KSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSIxNS44Mzg5MTQgMjAuNTYxMDg2IDEyLjkwNTQ2IDIwLjU2MTA4NiA4LjY3MDA0NTI1IDkuNTY4OTg5NDQgMTEuMzIzNDM4OSA5LjU2ODk4OTQ0IDEyLjAxNTU2NTYgMTEuNDMwOTUwMiAxNi4wMTc0OTYyIDExLjQzMDk1MDIgMTUuMjkzMDMxNyAxMy40OTEyODIxIDEyLjY1ODIyMDIgMTMuNDkxMjgyMSAxNC4zNzIyNDc0IDE4LjIyMDkzNTEgMTcuNDIxMTc2NSA5LjU2ODk4OTQ0IDIwLjA3NDMyODggOS41Njg5ODk0NCI+PC9wb2x5Z29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBpZD0iU2hhcGUiIHBvaW50cz0iNjAuNDAwMjQxMyA5LjU2ODk4OTQ0IDYwLjQwMDI0MTMgMjAuNTYxMDg2IDYyLjc1NjkyMzEgMjAuNTYxMDg2IDYyLjc1NjkyMzEgMTEuNjI4OTU5MyA2Ny40MDQxNjI5IDExLjYyODk1OTMgNjcuNDA0MTYyOSA5LjU2ODk4OTQ0Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJTaGFwZSIgcG9pbnRzPSI3My45ODI3NDUxIDkuNTY4OTg5NDQgNzMuOTgyNzQ1MSAyMC41NjEwODYgNzYuMzM5NDI2OCAyMC41NjEwODYgNzYuMzM5NDI2OCAxMS42Mjg5NTkzIDgwLjk4NjkwOCAxMS42Mjg5NTkzIDgwLjk4NjkwOCA5LjU2ODk4OTQ0Ij48L3BvbHlnb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ny4zNDg1MzcsMTguNTkxMTMxMiBDNDkuMjk3NDk2MiwxOC41OTExMzEyIDUwLjg4MzEzNzMsMTcuMDA1NzMxNSA1MC44ODMxMzczLDE1LjA1NjY1MTYgQzUwLjg4MzEzNzMsMTMuMTA3ODEzIDQ5LjI5NzQ5NjIsMTEuNTIyMTcxOSA0Ny4zNDg1MzcsMTEuNTIyMTcxOSBDNDUuMzk5NTc3NywxMS41MjIxNzE5IDQzLjgxNDE3OCwxMy4xMDc4MTMgNDMuODE0MTc4LDE1LjA1NjY1MTYgQzQzLjgxNDE3OCwxNy4wMDU4NTIyIDQ1LjM5OTU3NzcsMTguNTkxMTMxMiA0Ny4zNDg1MzcsMTguNTkxMTMxMiBaIE00Ny4zNDg1MzcsMjAuNzQyMjAyMSBDNDQuMjA4NTA2OCwyMC43NDIyMDIxIDQxLjY2Mjk4NjQsMTguMTk2NjgxNyA0MS42NjI5ODY0LDE1LjA1NjY1MTYgQzQxLjY2Mjk4NjQsMTEuOTE2NjIxNCA0NC4yMDg1MDY4LDkuMzcwOTgwMzkgNDcuMzQ4NTM3LDkuMzcwOTgwMzkgQzUwLjQ4ODU2NzEsOS4zNzA5ODAzOSA1My4wMzQwODc1LDExLjkxNjYyMTQgNTMuMDM0MDg3NSwxNS4wNTY2NTE2IEM1My4wMzQwODc1LDE4LjE5NjY4MTcgNTAuNDg4Njg3OCwyMC43NDIyMDIxIDQ3LjM0ODUzNywyMC43NDIyMDIxIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTEuODIwNjkzOCwxOC41OTExMzEyIEM5My43Njk4OTQ0LDE4LjU5MTEzMTIgOTUuMzU1NTM1NCwxNy4wMDU3MzE1IDk1LjM1NTUzNTQsMTUuMDU2NjUxNiBDOTUuMzU1NTM1NCwxMy4xMDc4MTMgOTMuNzY5ODk0NCwxMS41MjIxNzE5IDkxLjgyMDY5MzgsMTEuNTIyMTcxOSBDODkuODcxNzM0NSwxMS41MjIxNzE5IDg4LjI4NjMzNDgsMTMuMTA3ODEzIDg4LjI4NjMzNDgsMTUuMDU2NjUxNiBDODguMjg2MzM0OCwxNy4wMDU4NTIyIDg5Ljg3MTczNDUsMTguNTkxMTMxMiA5MS44MjA2OTM4LDE4LjU5MTEzMTIgWiBNOTEuODIwNjkzOCwyMC43NDIyMDIxIEM4OC42ODA5MDUsMjAuNzQyMjAyMSA4Ni4xMzUxNDMzLDE4LjE5NjY4MTcgODYuMTM1MTQzMywxNS4wNTY2NTE2IEM4Ni4xMzUxNDMzLDExLjkxNjYyMTQgODguNjgwOTA1LDkuMzcwOTgwMzkgOTEuODIwNjkzOCw5LjM3MDk4MDM5IEM5NC45NjA3MjQsOS4zNzA5ODAzOSA5Ny41MDY0ODU3LDExLjkxNjYyMTQgOTcuNTA2NDg1NywxNS4wNTY2NTE2IEM5Ny41MDY0ODU3LDE4LjE5NjY4MTcgOTQuOTYwNzI0LDIwLjc0MjIwMjEgOTEuODIwNjkzOCwyMC43NDIyMDIxIFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzIuMDU2MTA4NiwyMC41NjEwODYgTDI5LjI3MDk1MDIsMjAuNTYxMDg2IEwyOC44NzE0MzI5LDIwLjU2MTA4NiBMMjYuOTMwNjc4NywyMC41NjEwODYgTDI2LjkzMDY3ODcsOS41Njg4Njg3OCBMMjkuMjcwOTUwMiw5LjU2ODg2ODc4IEwyOS4yNzA5NTAyLDEzLjM1MTY3NDIgTDMyLjA1NjEwODYsMTMuMzUxNjc0MiBDMzQuMDA5NzczOCwxMy4zNTE2NzQyIDM1LjU5MzQ4NDIsMTUuMDAyOTU2MyAzNS41OTM0ODQyLDE2Ljk1NjM4MDEgQzM1LjU5MzQ4NDIsMTguOTEwMTY1OSAzNC4wMDk3NzM4LDIwLjU2MTA4NiAzMi4wNTYxMDg2LDIwLjU2MTA4NiBaIE0zMi4wNTYxMDg2LDE1LjUwMjk4NjQgTDI5LjI3MDk1MDIsMTUuNTAyOTg2NCBMMjkuMjcwOTUwMiwxOC40MDk4OTQ0IEwzMi4wNTYxMDg2LDE4LjQwOTg5NDQgQzMyLjgyMDYzMzUsMTguNDA5ODk0NCAzMy40NDIyOTI2LDE3LjcyMDc4NDMgMzMuNDQyMjkyNiwxNi45NTYzODAxIEMzMy40NDIyOTI2LDE2LjE5MTk3NTkgMzIuODIwNjMzNSwxNS41MDI5ODY0IDMyLjA1NjEwODYsMTUuNTAyOTg2NCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI0LjkxMDA0NTIsNi4yMzI4ODA4NCBDMjQuNzA2MzY1LDYuMjMyODgwODQgMjQuNTI2NTc2Miw2LjEzMjAwNjAzIDI0LjQxNjc3MjIsNS45NzczMTUyMyBDMjQuNDE2NzcyMiw1Ljk3NzMxNTIzIDIzLjg4ODg2ODgsNS4zNzUwODI5NiAyMy42MDQyMjMyLDUuMDkwMDc1NDEgQzIyLjQwMDEyMDcsMy44ODU5NzI4NSAyMC45OTgxMjk3LDIuOTQwODE0NDggMTkuNDM3MzQ1NCwyLjI4MDU0Mjk5IEMxNy44MjIwMjExLDEuNTk3MjI0NzQgMTYuMTA1NzAxNCwxLjI1MDc5OTQgMTQuMzM1NTY1NiwxLjI1MDc5OTQgQzEyLjU2NTE4ODUsMS4yNTA3OTk0IDEwLjg0ODg2ODgsMS41OTcyMjQ3NCA5LjIzMzc4NTgyLDIuMjgwNTQyOTkgQzcuNjcyODgwODQsMi45NDA4MTQ0OCA2LjI3MDg4OTg5LDMuODg1OTcyODUgNS4wNjY5MDc5OSw1LjA5MDA3NTQxIEMzLjg2MjY4NDc3LDYuMjk0NDE5MzEgMi45MTc0MDU3Myw3LjY5NjI4OTU5IDIuMjU3MjU0OSw5LjI1NzA3MzkxIEMxLjU3NDE3Nzk4LDEwLjg3MjM5ODIgMS4yMjc2MzE5OCwxMi41ODg5NTkzIDEuMjI3NjMxOTgsMTQuMzU4OTc0NCBDMS4yMjc2MzE5OCwxNi4xMjg5ODk0IDEuNTc0MTc3OTgsMTcuODQ1NTUwNSAyLjI1NzI1NDksMTkuNDYwODc0OCBDMi45MTc0MDU3MywyMS4wMjE2NTkxIDMuODYyNjg0NzcsMjIuNDIzNTI5NCA1LjA2NjkwNzk5LDIzLjYyNzYzMiBDNi4yNzEwMTA1NiwyNC44MzE4NTUyIDcuNjczMDAxNTEsMjUuNzc3MDEzNiA5LjIzMzc4NTgyLDI2LjQzNzI4NTEgQzEwLjg0ODg2ODgsMjcuMTIwNjAzMyAxMi41NjUxODg1LDI3LjQ2NzAyODcgMTQuMzM1NTY1NiwyNy40NjcwMjg3IEMxNi4xMDU3MDE0LDI3LjQ2NzAyODcgMTcuODIyMTQxOCwyNy4xMjA2MDMzIDE5LjQzNzM0NTQsMjYuNDM3Mjg1MSBDMjAuNTc0MjM4MywyNS45NTY0NDA0IDIxLjYyNjMwNDcsMjUuMzIzNTU5NiAyMi41Nzk1NDc1LDI0LjU1MDIyNjIgQzIyLjUyODYyNzUsMjQuNDAwMjQxMyAyMi41MDAxNTA4LDI0LjIzOTM5NjcgMjIuNTAwMTUwOCwyNC4wNzIwMzYyIEMyMi41MDAxNTA4LDIzLjI1NTI2NCAyMy4xNjIzNTI5LDIyLjU5MzA2MTggMjMuOTc5MDA0NSwyMi41OTMwNjE4IEMyNC43OTU4OTc0LDIyLjU5MzA2MTggMjUuNDU4MDk5NSwyMy4yNTUyNjQgMjUuNDU4MDk5NSwyNC4wNzIwMzYyIEMyNS40NTgwOTk1LDI0Ljg4ODkyOTEgMjQuNzk1ODk3NCwyNS41NTEwMTA2IDIzLjk3OTAwNDUsMjUuNTUxMDEwNiBDMjMuNzc2Mjg5NiwyNS41NTEwMTA2IDIzLjU4Mjg2NTgsMjUuNTEwMTA1NiAyMy40MDY4MTc1LDI1LjQzNjAxODEgQzIwLjkzNzE5NDYsMjcuNDYwOTk1NSAxNy43Nzg0NjE1LDI4LjY3NjgwMjQgMTQuMzM1NTY1NiwyOC42NzY4MDI0IEM2LjQyNzg3MzMsMjguNjc2ODAyNCAwLjAxNzQ5NjIyOTMsMjIuMjY2NTQ2IDAuMDE3NDk2MjI5MywxNC4zNTg4NTM3IEMwLjAxNzQ5NjIyOTMsNi40NTExNjEzOSA2LjQyNzg3MzMsMC4wNDA3ODQzMTM3IDE0LjMzNTU2NTYsMC4wNDA3ODQzMTM3IEMxOC43NTg4NTM3LDAuMDQwNzg0MzEzNyAyMi43MTIwMzYyLDIuMDQ4MTQ0OCAyNS4zMzgxNTk5LDUuMjAwMTIwNjYgQzI1LjQ0NzQ4MTEsNS4zMDk1NjI1OSAyNS41MTU0MTQ4LDUuNDYwNzU0MTUgMjUuNTE1NDE0OCw1LjYyNzYzMTk4IEMyNS41MTUyOTQxLDUuOTYyMjMyMjggMjUuMjQ0NTI0OSw2LjIzMjg4MDg0IDI0LjkxMDA0NTIsNi4yMzI4ODA4NCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8dGV4dCBpZD0iQ0xJRU5ULUNvcHktOSIgb3BhY2l0eT0iMC41IiBmb250LXNpemU9IjE3IiBmb250LXdlaWdodD0ibm9ybWFsIiBsZXR0ZXItc3BhY2luZz0iMC44NzkzMTAzNjkiPgogICAgICAgICAgICAgICAgICAgIDx0c3BhbiB4PSI0Mi4yMTQxMzc4IiB5PSI0MiI+Q0xJRU5UPC90c3Bhbj4KICAgICAgICAgICAgICAgIDwvdGV4dD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+"
- alt="React.js"
- />
- <h2>Apollo Client</h2>
- <span className="for">For Data Management</span>
- <small />
- <ul>
- <li>
- Performing GraphQL <strong>Mutations</strong>
- </li>
- <li>
- Fetching GraphQL <strong>Queries</strong>
- </li>
- <li>
- <strong>Caching</strong> GraphQL Data
- </li>
- <li>
- Managing <strong>Local State</strong>
- </li>
- <li>
- <strong>Error</strong> and <strong>Loading</strong> UI States
- </li>
- <li>
- <small>Apollo Client replaces the need for redux + data fetching/caching libraries</small>
- </li>
- </ul>
- </div>
- <div className="slat slat3">
- <img
- src="https://camo.githubusercontent.com/389368863d9b9df25acd07644bad7642459c3533/68747470733a2f2f696d6775722e636f6d2f5376366a3042362e706e67"
- alt="React.js"
- />
- <h2>GraphQL Yoga</h2>
-
- <span className="for">An Express GraphQL Server For:</span>
- <ul>
- <li>
- Implementing <strong>Query</strong> and <strong>Mutation</strong>{' '}
- <strong>Resolvers</strong>
- </li>
- <li>
- Custom <strong>Server Side Logic</strong>
- </li>
- <li>
- <strong>Charging</strong> Credit Cards
- </li>
- <li>
- <strong>Sending</strong> Email
- </li>
- <li>
- Performing <strong>JWT Authentication</strong>
- </li>
- <li>
- Checking <strong>Permissions</strong>
- </li>
- </ul>
- </div>
- <div className="slat slat4">
- <img
- src="https://camo.githubusercontent.com/87336b0d10b0d1f27518e14c4a36f995babd6a2f/68747470733a2f2f696d6775722e636f6d2f485575313072482e706e67"
- alt="React.js"
- />
- <h2>Prisma</h2>
-
- <span className="for">A GraphQL Database Interface</span>
- <ul>
- <li>
- Provides a set of GraphQL <strong>CRUD APIs</strong> for MySQL or Postgres{' '}
- <strong>Database</strong>
- </li>
- <li>
- <strong>Schema</strong> Definition
- </li>
- <li>
- Data <strong>Relationships</strong>
- </li>
- <li>
- <strong>Queried</strong> Directly from our Yoga Server
- </li>
- <li>
- <strong>Self-hosted</strong> or <strong>as-a-service</strong>
- </li>
- </ul>
- </div>
- <span className="arrow arrow1">↔</span>
- <span className="arrow arrow2">↔</span>
- <span className="arrow arrow3">↔</span>
- </DiagramStyles>
-);
-
-export default Diagram;
diff --git a/finished-application/frontend/pages/index.js b/finished-application/frontend/pages/index.js
index d316108..edb45ab 100644
--- a/finished-application/frontend/pages/index.js
+++ b/finished-application/frontend/pages/index.js
@@ -1,7 +1,9 @@
import Items from '../components/Items';
const Home = props => (
- <Items page={parseInt(props.query.page) || 1} />
-)
+ <div>
+ <Items page={parseFloat(props.query.page) || 1} />
+ </div>
+);
export default Home;
diff --git a/finished-application/frontend/pages/item.js b/finished-application/frontend/pages/item.js
index ae1e086..e58b220 100644
--- a/finished-application/frontend/pages/item.js
+++ b/finished-application/frontend/pages/item.js
@@ -1,7 +1,9 @@
import SingleItem from '../components/SingleItem';
-const ItemPage = ({ query }) => (
- <SingleItem id={query.id} />
+const Item = props => (
+ <div>
+ <SingleItem id={props.query.id} />
+ </div>
);
-export default ItemPage;
+export default Item;
diff --git a/finished-application/frontend/pages/items.js b/finished-application/frontend/pages/items.js
index 3426f4b..c95ff45 100644
--- a/finished-application/frontend/pages/items.js
+++ b/finished-application/frontend/pages/items.js
@@ -1,3 +1,3 @@
-import Index from './index';
+import Items from './index';
-export default Index;
+export default Items;
diff --git a/finished-application/frontend/pages/me.js b/finished-application/frontend/pages/me.js
deleted file mode 100644
index b0c2c25..0000000
--- a/finished-application/frontend/pages/me.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import EditUser from '../components/EditUser';
-import PleaseSignIn from '../components/PleaseSignIn';
-
-const MyAccount = () => (
- <>
- <h2>My Account</h2>
- <PleaseSignIn>
- <EditUser />
- </PleaseSignIn>
- </>
-);
-
-export default MyAccount;
diff --git a/finished-application/frontend/pages/order.js b/finished-application/frontend/pages/order.js
index 5298202..0fea0c6 100644
--- a/finished-application/frontend/pages/order.js
+++ b/finished-application/frontend/pages/order.js
@@ -1,7 +1,12 @@
+import PleaseSignIn from '../components/PleaseSignIn';
import Order from '../components/Order';
const OrderPage = props => (
- <Order id={props.query.id} />
+ <div>
+ <PleaseSignIn>
+ <Order id={props.query.id} />
+ </PleaseSignIn>
+ </div>
);
export default OrderPage;
diff --git a/finished-application/frontend/pages/orders.js b/finished-application/frontend/pages/orders.js
index 4c7c76d..c65d80d 100644
--- a/finished-application/frontend/pages/orders.js
+++ b/finished-application/frontend/pages/orders.js
@@ -1,10 +1,12 @@
-import OrderList from '../components/OrderList';
import PleaseSignIn from '../components/PleaseSignIn';
+import OrderList from '../components/OrderList';
-const Orders = () => (
- <PleaseSignIn>
- <OrderList />
- </PleaseSignIn>
+const OrderPage = props => (
+ <div>
+ <PleaseSignIn>
+ <OrderList />
+ </PleaseSignIn>
+ </div>
);
-export default Orders;
+export default OrderPage;
diff --git a/finished-application/frontend/pages/permissions.js b/finished-application/frontend/pages/permissions.js
index ad6b446..de58c51 100644
--- a/finished-application/frontend/pages/permissions.js
+++ b/finished-application/frontend/pages/permissions.js
@@ -1,10 +1,12 @@
-import Permissions from '../components/Permissions';
import PleaseSignIn from '../components/PleaseSignIn';
+import Permissions from '../components/Permissions';
-const ItemPage = () => (
- <PleaseSignIn allowedPermissions={['ADMIN', 'PERMISSIONUPDATE']}>
- <Permissions />
- </PleaseSignIn>
+const PermissionsPage = props => (
+ <div>
+ <PleaseSignIn>
+ <Permissions />
+ </PleaseSignIn>
+ </div>
);
-export default ItemPage;
+export default PermissionsPage;
diff --git a/finished-application/frontend/pages/reset.js b/finished-application/frontend/pages/reset.js
index bc6e377..118ba72 100644
--- a/finished-application/frontend/pages/reset.js
+++ b/finished-application/frontend/pages/reset.js
@@ -1,10 +1,10 @@
import Reset from '../components/Reset';
-const ResetPage = props => (
- <>
- <h2>So you wanna reset your password?</h2>
+const Sell = props => (
+ <div>
+ <p>Reset Your Password {props.query.resetToken}</p>
<Reset resetToken={props.query.resetToken} />
- </>
+ </div>
);
-export default ResetPage;
+export default Sell;
diff --git a/finished-application/frontend/pages/sell.js b/finished-application/frontend/pages/sell.js
index 155f3b7..b60ae80 100644
--- a/finished-application/frontend/pages/sell.js
+++ b/finished-application/frontend/pages/sell.js
@@ -1,10 +1,12 @@
import CreateItem from '../components/CreateItem';
import PleaseSignIn from '../components/PleaseSignIn';
-const Add = () => (
- <PleaseSignIn>
- <CreateItem />
- </PleaseSignIn>
+const Sell = props => (
+ <div>
+ <PleaseSignIn>
+ <CreateItem />
+ </PleaseSignIn>
+ </div>
);
-export default Add;
+export default Sell;
diff --git a/finished-application/frontend/pages/signup.js b/finished-application/frontend/pages/signup.js
index cd522f8..342cfea 100644
--- a/finished-application/frontend/pages/signup.js
+++ b/finished-application/frontend/pages/signup.js
@@ -1,7 +1,7 @@
-import styled from 'styled-components';
import Signup from '../components/Signup';
import Signin from '../components/Signin';
-import ResetRequest from '../components/ResetRequest';
+import RequestReset from '../components/RequestReset';
+import styled from 'styled-components';
const Columns = styled.div`
display: grid;
@@ -9,12 +9,12 @@ const Columns = styled.div`
grid-gap: 20px;
`;
-const SignUpPage = () => (
+const SignupPage = props => (
<Columns>
<Signup />
<Signin />
- <ResetRequest />
+ <RequestReset />
</Columns>
);
-export default SignUpPage;
+export default SignupPage;
diff --git a/finished-application/frontend/pages/update.js b/finished-application/frontend/pages/update.js
index 7a8630d..ba9d525 100644
--- a/finished-application/frontend/pages/update.js
+++ b/finished-application/frontend/pages/update.js
@@ -1,15 +1,9 @@
-import { Component } from 'react';
import UpdateItem from '../components/UpdateItem';
-import PleaseSignIn from '../components/PleaseSignIn';
-class Home extends Component {
- render() {
- return (
- <PleaseSignIn>
- <UpdateItem id={this.props.query.id} />
- </PleaseSignIn>
- );
- }
-}
+const Sell = ({ query }) => (
+ <div>
+ <UpdateItem id={query.id} />
+ </div>
+);
-export default Home;
+export default Sell;