diff --git a/graphql/RootSchema.js b/graphql/RootSchema.js index fb4008f..756aab6 100644 --- a/graphql/RootSchema.js +++ b/graphql/RootSchema.js @@ -1,4 +1,5 @@ const { makeExecutableSchema } = require('graphql-tools') +const GraphQLJSON = require('graphql-type-json') const Book = require('../models/BookModel') const Page = require('../models/PageModel') const Stat = require('../models/StatModel') @@ -6,7 +7,7 @@ const User = require('../models/UserModel') const Effect = require('../models/EffectModel') const Transition = require('../models/TransitionModel') const ObjectModel = require('../models/ObjectModel') -const { getProjection } = require('./Helpers') +const Game = require('../models/GameModel.js') const SHA512 = require('crypto-js/sha512') const bookType = ` @@ -59,7 +60,14 @@ const transitionType = ` conditionOperator: String ` +const gameType = ` + currentPageId : ID + playerId : ID +` + const typeDefs = ` + scalar MAP + type Book { id: ID ${bookType} @@ -135,15 +143,31 @@ const typeDefs = ` ${transitionType} } + type Game { + id: ID + ${gameType} + book: Book + stats: MAP + objects: [ID] + } + + input GameInput { + id: ID! + ${gameType} + book: BookInput + stats: MAP + objects: [ID] + } + type Query { books(author: ID, draft: Boolean): [Book] book(id: ID!): Book author(id: ID!): User page(bookId: ID!, pageId: ID!): Page + tryGame(bookId: ID!, playerId: ID!) : Game } type Mutation { - createBook(author: ID!): User updateBook(book: BookInput!): Book deleteBook(id: ID!): User @@ -179,6 +203,8 @@ const typeDefs = ` updatePageTransitionCondition(bookId: ID!, pageId: ID!, transitionId: ID!, condition: EffectInput!): Effect deletePageTransitionCondition(bookId: ID!, pageId: ID!, transitionId: ID!, conditionId: ID!): Transition + createGame(bookId: ID!, playerId: ID!) : Game + updatePassword(userId: ID!, oldPassword: String!, newPassword: String!, confirmation: String!): User } ` @@ -205,11 +231,8 @@ const findBookById = (bookId) => { return Book.findById(bookId).then(book => easier(book, () => book.save())) } -const findUserById = userId => { - return User.findById(userId).then(user => easier(user, () => user.save())) -} - const resolvers = { + MAP: GraphQLJSON, Query: { book: (obj, args = {}, context, info) => { const { id } = args @@ -226,6 +249,29 @@ const resolvers = { }, author: (obj, { id }, context, info) => User.findById(id), page: (obj, { bookId, pageId }, context, info) => Book.findById(bookId).then(book => book.pages.id(pageId)), + + tryGame: (_, { bookId, playerId }) => Book.findById(bookId).then(book => { + const stats = book.stats.reduce((acc, stat) => { + return { + ...acc, + [stat._id]: stat.initValue, + } + }, {}) + + const objects = book.objects.reduce((acc, object) => { + // console.log(object.atStart) + if (object.atStart) return [...acc, object._id] + return acc + }, []) + + return new Game({ + currentPageId: book.startingPageId || book.pages[0].id, + playerId, + book, + stats, + objects, + }) + }), }, Book: { author: (book) => { @@ -284,6 +330,14 @@ const resolvers = { .save() }), deletePage: (_, { bookId, pageId }) => findBookById(bookId).then(book => { + + book.ressource.pages.forEach(page => { + page.transitions.forEach(transition => { + if (transition.toPage && transition.toPage === pageId) { + transition.toPage = undefined + } + }) + }) return book.deleteOne('pages', pageId) .save() }), @@ -375,6 +429,19 @@ const resolvers = { .deleteOne('effects', effectId) .save() }), + + createGame: (_, { bookId, playerId }) => { + // TODO: implement this (same as tryGame Query, but saving in Database) + // const game = new Game({ + // playerId, + // currentPageId, + // bookId: book._id, + // book, + // bookStatus:'up-to-date', + // stats, + // }).then(game => game) + }, + updatePassword: async (_, { userId, oldPassword, newPassword, confirmation }) => { const paramsNotEmpty = oldPassword === '' || newPassword === '' || confirmation === '' const passwordMatch = newPassword !== confirmation @@ -389,7 +456,7 @@ const resolvers = { { password: SHA512(newPassword).toString() }, ).then(user => { if (!user) { - throw new Error('Error3') + throw new Error('Error') return null } delete user.password diff --git a/models/GameModel.js b/models/GameModel.js index 2c6a875..c617ecf 100644 --- a/models/GameModel.js +++ b/models/GameModel.js @@ -10,6 +10,7 @@ const GameSchema = new Schema({ book: Book, bookStatus: String, stats: Schema.Types.Mixed, + objects: Schema.Types.Mixed, tree: [{ Type: Schema.Types.Mixed, default: [] }], }) diff --git a/models/PageSchema.js b/models/PageSchema.js index 1a17b5c..19a2bbe 100644 --- a/models/PageSchema.js +++ b/models/PageSchema.js @@ -8,6 +8,6 @@ module.exports = new Schema({ text: String, description: String, backgroundMusic: String, - transitions: [Transition], + transitions: {type:[Transition], default: []}, effects: [Effect], }, { minimize: false }) diff --git a/package-lock.json b/package-lock.json index d44eb97..64a128c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -574,25 +574,31 @@ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -604,53 +610,77 @@ "dev": true, "requires": { "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-helper-builder-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz", - "integrity": "sha1-CteRfjPI11HmRtrKTnfMGTd9LLw=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "esutils": "2.0.2" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -662,55 +692,79 @@ "dev": true, "requires": { "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-helper-define-map": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -721,25 +775,31 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -751,25 +811,31 @@ "dev": true, "requires": { "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -839,24 +905,30 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -867,53 +939,77 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-helper-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -925,26 +1021,32 @@ "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -957,26 +1059,32 @@ "requires": { "babel-helper-optimise-call-expression": "6.24.1", "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1050,23 +1158,29 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1166,23 +1280,29 @@ "requires": { "babel-helper-remap-async-to-generator": "6.24.1", "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1195,23 +1315,29 @@ "requires": { "babel-helper-remap-async-to-generator": "6.24.1", "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1223,24 +1349,30 @@ "dev": true, "requires": { "babel-plugin-syntax-class-constructor-call": "6.18.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1264,25 +1396,31 @@ "requires": { "babel-helper-explode-class": "6.24.1", "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1294,26 +1432,32 @@ "dev": true, "requires": { "babel-plugin-syntax-do-expressions": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", "dev": true - } - } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", @@ -1321,23 +1465,29 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1348,54 +1498,134 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", "lodash": "4.17.4" }, "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "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" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1406,31 +1636,37 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.24.1", + "babel-helper-define-map": "6.26.0", "babel-helper-function-name": "6.24.1", "babel-helper-optimise-call-expression": "6.24.1", "babel-helper-replace-supers": "6.24.1", "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1441,24 +1677,30 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1469,23 +1711,29 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1496,24 +1744,30 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1524,23 +1778,29 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1552,24 +1812,30 @@ "dev": true, "requires": { "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1580,53 +1846,238 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, - "babel-plugin-transform-es2015-modules-commonjs": { + "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-runtime": "6.26.0", + "babel-template": "6.25.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-types": "6.25.0" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" }, "dependencies": { + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" } }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "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" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.25.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.25.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1638,23 +2089,29 @@ "dev": true, "requires": { "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1667,26 +2124,32 @@ "requires": { "babel-helper-call-delegate": "6.24.1", "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0", "babel-traverse": "6.25.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1697,24 +2160,30 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1725,23 +2194,29 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1752,25 +2227,31 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.24.1", - "babel-runtime": "6.23.0", + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1781,23 +2262,29 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1808,23 +2295,29 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1835,25 +2328,31 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.24.1", - "babel-runtime": "6.23.0", + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", "regexpu-core": "2.0.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1866,23 +2365,29 @@ "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1894,23 +2399,29 @@ "dev": true, "requires": { "babel-plugin-syntax-export-extensions": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1922,23 +2433,29 @@ "dev": true, "requires": { "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1950,23 +2467,29 @@ "dev": true, "requires": { "babel-plugin-syntax-function-bind": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -1996,23 +2519,29 @@ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "dev": true, "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -2023,25 +2552,31 @@ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "requires": { - "babel-helper-builder-react-jsx": "6.24.1", + "babel-helper-builder-react-jsx": "6.26.0", "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -2053,23 +2588,29 @@ "dev": true, "requires": { "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -2081,34 +2622,40 @@ "dev": true, "requires": { "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-plugin-transform-regenerator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.9.11" + "regenerator-transform": "0.10.1" } }, "babel-plugin-transform-runtime": { @@ -2126,38 +2673,44 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "babel-preset-es2015": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.9.0.tgz", - "integrity": "sha1-leRxasRIHfswmZy1wRGBThraD0E=", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "6.22.0", "babel-plugin-transform-es2015-arrow-functions": "6.22.0", "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.24.1", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", "babel-plugin-transform-es2015-classes": "6.24.1", "babel-plugin-transform-es2015-computed-properties": "6.24.1", "babel-plugin-transform-es2015-destructuring": "6.23.0", @@ -2165,7 +2718,10 @@ "babel-plugin-transform-es2015-for-of": "6.23.0", "babel-plugin-transform-es2015-function-name": "6.24.1", "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", "babel-plugin-transform-es2015-object-super": "6.24.1", "babel-plugin-transform-es2015-parameters": "6.24.1", "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", @@ -2174,37 +2730,45 @@ "babel-plugin-transform-es2015-template-literals": "6.22.0", "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.24.1" + "babel-plugin-transform-regenerator": "6.26.0" } }, "babel-preset-es2016": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/babel-preset-es2016/-/babel-preset-es2016-6.11.3.tgz", - "integrity": "sha1-9CIgv1+kxvxXsj6+4TcwfnSVBaI=", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz", + "integrity": "sha1-+QC/k+LrwNJ235uKtZck6/2Vn4s=", "dev": true, "requires": { "babel-plugin-transform-exponentiation-operator": "6.24.1" } }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, "babel-preset-react": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.11.1.tgz", - "integrity": "sha1-mKwr08G3bzBirgglgOreFUoZtZA=", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "dev": true, "requires": { - "babel-plugin-syntax-flow": "6.18.0", "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-flow-strip-types": "6.22.0", "babel-plugin-transform-react-display-name": "6.25.0", "babel-plugin-transform-react-jsx": "6.24.1", "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0" + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" } }, "babel-preset-stage-0": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz", - "integrity": "sha1-i4R5sgd0grjz3I+PXwyceXiM3iI=", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", + "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", "dev": true, "requires": { "babel-plugin-transform-do-expressions": "6.22.0", @@ -2243,24 +2807,30 @@ "requires": { "babel-helper-function-name": "6.24.1", "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-template": "6.25.0" } }, "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -2275,7 +2845,7 @@ "babel-plugin-transform-async-generator-functions": "6.24.1", "babel-plugin-transform-async-to-generator": "6.24.1", "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.23.0" + "babel-plugin-transform-object-rest-spread": "6.26.0" }, "dependencies": { "babel-plugin-syntax-trailing-function-commas": { @@ -2285,29 +2855,35 @@ "dev": true }, "babel-plugin-transform-object-rest-spread": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", - "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.23.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -2575,28 +3151,119 @@ "dev": true }, "body-parser": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", - "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "dev": true, "requires": { - "bytes": "2.1.0", - "content-type": "1.0.2", - "debug": "2.2.0", - "depd": "1.0.1", - "http-errors": "1.3.1", - "iconv-lite": "0.4.11", + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", "on-finished": "2.3.0", - "qs": "4.0.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "1.6.16" }, "dependencies": { + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": "1.5.0" + } + }, "iconv-lite": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", - "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", + "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" + } + }, + "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==", + "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==", + "dev": true, + "requires": { + "mime-db": "1.33.0" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } } } }, @@ -2714,9 +3381,9 @@ "dev": true }, "bytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", - "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "caller-path": { @@ -6173,6 +6840,12 @@ "uuid": "3.1.0" } }, + "graphql-type-json": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.1.tgz", + "integrity": "sha1-0sF34vGxfYf4EHLNBTEcB1S6pCA=", + "dev": true + }, "gzip-size": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", @@ -7236,6 +7909,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, + "lodash-es": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", + "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" + }, "lodash._baseassign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", @@ -8149,6 +8827,11 @@ "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-4.2.0.tgz", "integrity": "sha1-IdZsxVcVTUN5/R4HnsfeWKN5sJk=" }, + "normalizr": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.2.4.tgz", + "integrity": "sha1-Fqr8VAypncEGDOqhkzVWMi6sRCk=" + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -9224,18 +9907,34 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", "integrity": "sha1-SJZUxpJha4qlWwck+oCbt9tJxb8=", - "dev": true, "requires": { "asap": "2.0.6" } }, "prop-types": { - "version": "15.5.10", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", - "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", + "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", "requires": { - "fbjs": "0.8.12", - "loose-envify": "1.3.1" + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + }, + "dependencies": { + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.13" + } + } } }, "proxy-addr": { @@ -9407,15 +10106,30 @@ } }, "react": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", - "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.4.0.tgz", + "integrity": "sha512-K0UrkLXSAekf5nJu89obKUM7o2vc6MMN9LYoKnCa+c+8MJRAT120xzPLENcWSRc7GYKIg0LlgJRDorrufdglQQ==", "requires": { - "create-react-class": "15.6.0", - "fbjs": "0.8.12", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1", - "prop-types": "15.5.10" + "prop-types": "15.6.1" + }, + "dependencies": { + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.13" + } + } } }, "react-addons-css-transition-group": { @@ -9434,7 +10148,7 @@ "chain-function": "1.0.0", "dom-helpers": "3.3.1", "loose-envify": "1.3.1", - "prop-types": "15.5.10", + "prop-types": "15.6.1", "warning": "3.0.0" } } @@ -9449,7 +10163,7 @@ "hoist-non-react-statics": "1.2.0", "invariant": "2.2.2", "lodash": "4.17.4", - "prop-types": "15.5.10" + "prop-types": "15.6.1" } }, "react-deep-force-update": { @@ -9458,14 +10172,30 @@ "integrity": "sha1-T39sEsPn3kLzRZkqPFGCNvoeytM=" }, "react-dom": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", - "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.4.0.tgz", + "integrity": "sha512-bbLd+HYpBEnYoNyxDe9XpSG2t9wypMohwQPvKw8Hov3nF7SJiJIgK56b46zHpBUpHb06a1iEuw7G3rbrsnNL6w==", "requires": { - "fbjs": "0.8.12", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1", - "prop-types": "15.5.10" + "prop-types": "15.6.1" + }, + "dependencies": { + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.1.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.13" + } + } } }, "react-hot-loader": { @@ -9499,6 +10229,31 @@ "lodash": "4.17.4" } }, + "react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "requires": { + "hoist-non-react-statics": "2.5.4", + "invariant": "2.2.2", + "lodash": "4.17.10", + "lodash-es": "4.17.10", + "loose-envify": "1.3.1", + "prop-types": "15.6.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.4.tgz", + "integrity": "sha512-yklXtcYj0Pt5Dz9No8xUh7d+/7fy5XRIm+r7U/BXgwJ/VsD75EfXA8t4p9tIL0jykzo5A/sGzt1xV6oqd/gP0w==" + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + } + } + }, "react-router": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.0.5.tgz", @@ -9509,7 +10264,7 @@ "hoist-non-react-statics": "1.2.0", "invariant": "2.2.2", "loose-envify": "1.3.1", - "prop-types": "15.5.10", + "prop-types": "15.6.1", "warning": "3.0.0" } }, @@ -9520,7 +10275,7 @@ "requires": { "dom-helpers": "3.3.1", "loose-envify": "1.3.1", - "prop-types": "15.5.10" + "prop-types": "15.6.1" } }, "read-all-stream": { @@ -9619,7 +10374,7 @@ "requires": { "error-stack-parser": "1.3.6", "object-assign": "4.1.1", - "prop-types": "15.5.10", + "prop-types": "15.6.1", "sourcemapped-stacktrace": "1.1.6" } }, @@ -9669,6 +10424,15 @@ } } }, + "redux": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", + "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", + "requires": { + "loose-envify": "1.3.1", + "symbol-observable": "1.2.0" + } + }, "regenerate": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", @@ -9681,30 +10445,36 @@ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" }, "regenerator-transform": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.23.0", + "babel-runtime": "6.26.0", "babel-types": "6.25.0", "private": "0.1.7" }, "dependencies": { "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } @@ -9987,6 +10757,12 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", diff --git a/package.json b/package.json index 1575657..888b6cc 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "fs-extra": "0.30.0", "graphql": "^0.12.3", "graphql-tools": "^2.18.0", + "graphql-type-json": "^0.2.1", "gzip-size": "3.0.0", "html-webpack-plugin": "2.22.0", "jade": "~1.11.0", @@ -91,13 +92,16 @@ "material-design-icons": "^3.0.1", "normalize": "^0.3.1", "normalize.css": "^4.2.0", + "normalizr": "^3.2.4", "prop-types": "^15.6.0", "react": "^16.2.0", "react-addons-css-transition-group": "^15.6.2", "react-apollo": "^2.0.4", "react-dom": "^16.2.0", "react-hot-loader": "^3.0.0-beta.6", + "react-redux": "^5.0.7", "react-router": "^3.0.0", - "react-transition-group": "^2.0.2" + "react-transition-group": "^2.0.2", + "redux": "^4.0.0" } } diff --git a/public/app/index.html b/public/app/index.html index 6d32804..b57341c 100644 --- a/public/app/index.html +++ b/public/app/index.html @@ -1 +1 @@ -Fates Editions
\ No newline at end of file +Fates Editions
\ No newline at end of file diff --git a/ui/src/components/Books/Books.js b/ui/src/components/Books/Books.js index 7a10e36..e922f93 100644 --- a/ui/src/components/Books/Books.js +++ b/ui/src/components/Books/Books.js @@ -1,6 +1,6 @@ import React from 'react' // import styles from './style.scss' -import { Layout, Content, Toolbar, Tabs } from '../Layout' +import { Layout, Content, AppToolbar, Tabs } from '../Layout' import { RouteService } from '../../services' const tabNews = { label: 'Nouveautés', link: RouteService.routes.booksnews() } @@ -10,7 +10,7 @@ const tabs = [tabNews, tabLibrary] const Books = ({ location, children }) => { return ( - + {children} @@ -19,5 +19,4 @@ const Books = ({ location, children }) => { ) } - export default Books diff --git a/ui/src/components/Game/Game.js b/ui/src/components/Game/Game.js index bbfab40..e9d40bf 100644 --- a/ui/src/components/Game/Game.js +++ b/ui/src/components/Game/Game.js @@ -12,6 +12,7 @@ class Game extends React.Component { } } + // TODO: Refactor to shouldComponent Update componentWillUpdate(nextProps) { const { currentPageId } = this.state if (nextProps.game && currentPageId === null) { @@ -38,9 +39,6 @@ class Game extends React.Component { return !!currentPageId && (
-
- x -
page.id === currentPageId)} hoverTransition={this.hoverTransition} diff --git a/ui/src/components/Game/GamePage/GamePage.js b/ui/src/components/Game/GamePage/GamePage.js index 7f23568..91bb7bf 100644 --- a/ui/src/components/Game/GamePage/GamePage.js +++ b/ui/src/components/Game/GamePage/GamePage.js @@ -1,11 +1,11 @@ import React from 'react' -import { convertFromRaw, Editor, EditorState } from 'draft-js' +import { convertFromRaw, Editor, EditorState, ContentState } from 'draft-js' import Image from 'components/common/TextEditor/Image' import GameTransition from './GameTransition' import styles from './styles.scss' const GamePage = ({ page = {}, hoverTransition, outTransition, changePage }) => { - const pageContent = convertFromRaw(JSON.parse(page.text)) + const pageContent = page.text ? convertFromRaw(JSON.parse(page.text)) : ContentState.createFromText('') const blockRenderer = (block) => { if (block.getType() === 'atomic') return { component: Image, editable: false } @@ -13,7 +13,7 @@ const GamePage = ({ page = {}, hoverTransition, outTransition, changePage }) => } return ( -
+
/>
{ - page.transitions.map(transition => ) - } + }
) diff --git a/ui/src/components/Game/GamePage/GameTransition/GameTransition.js b/ui/src/components/Game/GamePage/GameTransition/GameTransition.js index 91f91f6..c3ba683 100644 --- a/ui/src/components/Game/GamePage/GameTransition/GameTransition.js +++ b/ui/src/components/Game/GamePage/GameTransition/GameTransition.js @@ -1,18 +1,25 @@ import React from 'react' +import classnames from 'classnames' import Button from 'components/common/Button' import styles from './styles.scss' const GameTransition = ({ transition, hoverTransition, outTransition, changePage }) => { + const onClick = () => transition.toPage && changePage(transition.toPage) + const className = classnames(styles.transitionButton, { + [styles.disabled]: transition.toPage === null, + }) + return ( ) } diff --git a/ui/src/components/Game/GamePage/GameTransition/styles.scss b/ui/src/components/Game/GamePage/GameTransition/styles.scss index adb68de..b127c5e 100644 --- a/ui/src/components/Game/GamePage/GameTransition/styles.scss +++ b/ui/src/components/Game/GamePage/GameTransition/styles.scss @@ -1,7 +1,13 @@ +@import '~styles/colors'; + .transitionButton { - display: flex; - background-color: transparent; + text-align: left; + background-color: $dark-background-color-1; padding: 10px 30px; - margin-top: 20px; + margin: 10px 0; width: 100%; } + +.disabled { + background-color: $dark-background-color-3; +} \ No newline at end of file diff --git a/ui/src/components/Game/GamePage/styles.scss b/ui/src/components/Game/GamePage/styles.scss index e94bd6b..42a54db 100644 --- a/ui/src/components/Game/GamePage/styles.scss +++ b/ui/src/components/Game/GamePage/styles.scss @@ -1,3 +1,8 @@ +.component { + width: 100%; +} + .gameTransitions { width: 100%; + margin: 20px 0; } diff --git a/ui/src/components/Game/index.js b/ui/src/components/Game/index.js index 5497afa..bdb3487 100644 --- a/ui/src/components/Game/index.js +++ b/ui/src/components/Game/index.js @@ -1 +1 @@ -export default from './GameContainer' +export default from './Game' diff --git a/ui/src/components/Game/styles.scss b/ui/src/components/Game/styles.scss index c814a6a..ff3b20c 100644 --- a/ui/src/components/Game/styles.scss +++ b/ui/src/components/Game/styles.scss @@ -1,71 +1,73 @@ @import '~styles/colors'; +@import '~styles/sizes'; -@keyframes slidein { - 0% { left: 50vw; width: 0 } - 100% { left: 0; width: 100vw } -} +// @keyframes slidein { +// 0% { left: 50vw; width: 0 } +// 100% { left: 0; width: 100vw } +// } -@keyframes fadein { - 0% { opacity: 0; } - 100% { opacity: 1; } -} +// @keyframes fadein { +// 0% { opacity: 0; } +// 100% { opacity: 1; } +// } -$openbook: .75s; -$fadein: .5s; +// $openbook: .75s; +// $fadein: .5s; .wrapper { position: fixed; display: flex; - background-image: url('http://www.rpgbooster.com/wp-content/uploads/2014/02/Map-South-East-Domarion.jpg'); - background-position: center; + // background-image: url('https://static.wixstatic.com/media/ed3f4a_be98fafaf91c456fb59d21214c7c5c0d.jpg/v1/fill/w_977,h_794,al_c,q_85,usm_0.66_1.00_0.01/ed3f4a_be98fafaf91c456fb59d21214c7c5c0d.jpg'); + // background-position: center; + // background-size: cover; height: 100vh; z-index: 1050; - left: 0; top: 0; - width: 100vw; - animation: slidein $openbook; + width: $content-size; + // animation: slidein $openbook; - .rightSide { - display: flex; - flex: 50%; - height: 100vh; - } + // .rightSide { + // display: flex; + // flex: 50%; + // height: 100vh; + // } - .leftSide { - display: flex; - flex: 50%; - height: 100vh; - } + // .leftSide { + // display: flex; + // flex: 50%; + // height: 100vh; + // } .content { - color: transparentize($white, .1); + box-sizing: border-box; + color: $dark-font-color; width: 100%; padding: 50px; - background-color: transparentize($black, .15); + background-color: $dark-background-color-2; display: flex; text-align: justify; justify-content: center; font-size: 1.5em; overflow-y: scroll; - .close { - opacity: 0; - position: absolute; - right: 40px; - cursor: pointer; - animation: fadein $fadein; - animation-fill-mode: forwards; - animation-delay: $openbook; - top: 10px; - } + // .close { + // opacity: 0; + // position: absolute; + // right: 40px; + // cursor: pointer; + // animation: fadein $fadein; + // animation-fill-mode: forwards; + // animation-delay: $openbook; + // top: 10px; + // } - .mainText { - opacity: 0; - max-width: 70%; - animation: fadein $fadein; - animation-fill-mode: forwards; - animation-delay: $openbook; - text-align: justify; - } + // .mainText { + // opacity: 0; + // max-width: 70%; + // animation: fadein $fadein; + // animation-fill-mode: forwards; + // animation-delay: $openbook; + // text-align: justify; + // } } } diff --git a/ui/src/components/GameView/GameView.js b/ui/src/components/GameView/GameView.js new file mode 100644 index 0000000..39577e3 --- /dev/null +++ b/ui/src/components/GameView/GameView.js @@ -0,0 +1,16 @@ +import React from 'react' +import { Layout, Content, GameToolbar } from 'components/Layout' +import Game from 'components/Game' + +const GameView = (props) => { + return ( + + + + + + + ) +} + +export default GameView diff --git a/ui/src/components/Game/GameContainer.js b/ui/src/components/GameView/GameViewContainer.js similarity index 89% rename from ui/src/components/Game/GameContainer.js rename to ui/src/components/GameView/GameViewContainer.js index 1299615..703c9b8 100644 --- a/ui/src/components/Game/GameContainer.js +++ b/ui/src/components/GameView/GameViewContainer.js @@ -1,6 +1,6 @@ import React from 'react' -import Game from './Game' -import bookJSON from '../book' +import bookJSON from 'components/book' +import GameView from './GameView' const createGame = (book) => { return { @@ -30,7 +30,7 @@ const createGame = (book) => { } export default ({ params }) => ( - { - return ( -
- - - -
- ) -} - -export default Link diff --git a/ui/src/components/Layout/Toolbar/Link/index.js b/ui/src/components/Layout/Toolbar/Link/index.js deleted file mode 100644 index 30862fd..0000000 --- a/ui/src/components/Layout/Toolbar/Link/index.js +++ /dev/null @@ -1 +0,0 @@ -export default from './Link' diff --git a/ui/src/components/Layout/Toolbar/Toolbar.js b/ui/src/components/Layout/Toolbar/Toolbar.js deleted file mode 100644 index 0e3a3a0..0000000 --- a/ui/src/components/Layout/Toolbar/Toolbar.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react' -import styles from './style.scss' -import logo from '../../common/logo.svg' -import Link from './Link' -import { RouteService } from '../../../services' - -const Toolbar = () => { - return ( -
-
- logo - - -
-
- -
-
- ) -} - -export default Toolbar diff --git a/ui/src/components/Layout/Toolbar/index.js b/ui/src/components/Layout/Toolbar/index.js deleted file mode 100644 index de17a65..0000000 --- a/ui/src/components/Layout/Toolbar/index.js +++ /dev/null @@ -1 +0,0 @@ -export default from './Toolbar' diff --git a/ui/src/components/Layout/Toolbars/AppToolbar/AppToolbar.js b/ui/src/components/Layout/Toolbars/AppToolbar/AppToolbar.js new file mode 100644 index 0000000..4396410 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/AppToolbar/AppToolbar.js @@ -0,0 +1,22 @@ +import React from 'react' +import ToolbarLink from 'components/common/ToolbarLink' +import styles from './style.scss' +import logo from '../../../common/logo.svg' +import { RouteService } from '../../../../services' + +const AppToolbar = () => { + return ( +
+
+ logo + + +
+
+ +
+
+ ) +} + +export default AppToolbar diff --git a/ui/src/components/Layout/Toolbars/AppToolbar/index.js b/ui/src/components/Layout/Toolbars/AppToolbar/index.js new file mode 100644 index 0000000..d987106 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/AppToolbar/index.js @@ -0,0 +1 @@ +export default from './AppToolbar' diff --git a/ui/src/components/Layout/Toolbar/style.scss b/ui/src/components/Layout/Toolbars/AppToolbar/style.scss similarity index 100% rename from ui/src/components/Layout/Toolbar/style.scss rename to ui/src/components/Layout/Toolbars/AppToolbar/style.scss diff --git a/ui/src/components/Layout/Toolbars/GameToolbar/GameToolbar.js b/ui/src/components/Layout/Toolbars/GameToolbar/GameToolbar.js new file mode 100644 index 0000000..55d8166 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/GameToolbar/GameToolbar.js @@ -0,0 +1,34 @@ +import React from 'react' +import { browserHistory } from 'react-router' +import { ToolbarButton } from 'components/common/ToolbarLink' +import styles from './style.scss' +import logoWhite from '../../../common/logo_white.svg' +// import { RouteService } from '../../../../services' + +const GameToolbar = (props) => { + return ( +
+
+ logo + + +
+
+
+ +
+
+
+ ) +} + +export default GameToolbar diff --git a/ui/src/components/Layout/Toolbars/GameToolbar/index.js b/ui/src/components/Layout/Toolbars/GameToolbar/index.js new file mode 100644 index 0000000..c6548e5 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/GameToolbar/index.js @@ -0,0 +1 @@ +export default from './GameToolbar' diff --git a/ui/src/components/Layout/Toolbars/GameToolbar/style.scss b/ui/src/components/Layout/Toolbars/GameToolbar/style.scss new file mode 100644 index 0000000..8377b5f --- /dev/null +++ b/ui/src/components/Layout/Toolbars/GameToolbar/style.scss @@ -0,0 +1,33 @@ +@import '~styles/sizes'; +@import '~styles/colors'; + +.component { + display: flex; + flex-direction: column; + justify-content: space-between; + width: $toolbar-size; + background-color: $dark-background-color-1; +} + +.top { + display: flex; + flex-direction: column; + align-items: center; +} + +.bottom { + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 20px; +} + +.logo { + margin: 20px 0; + height: 70px; +} + +.darkButton { + background-color: $dark-background-color-2; + color: $dark-primary-color; +} \ No newline at end of file diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/DisplayObjects.js b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/DisplayObjects.js new file mode 100644 index 0000000..ca81fb5 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/DisplayObjects.js @@ -0,0 +1,18 @@ +import React from 'react' +import styles from './style.scss' + +const DisplayObjects = ({ game }) => { + return ( +
+
Objets
+ { + game.objects.map((objectId) => { + const name = game.book.objects.find(current => current.id === objectId).name + return
{name}
+ }) + } +
+ ) +} + +export default DisplayObjects diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/index.js b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/index.js new file mode 100644 index 0000000..63a37d9 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/index.js @@ -0,0 +1 @@ +export default from './DisplayObjects' diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/style.scss b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/style.scss new file mode 100644 index 0000000..34b3445 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayObjects/style.scss @@ -0,0 +1,18 @@ +@import '~styles/colors'; + +.component { + display: flex; + flex-direction: column; + align-items: center; + color: $dark-primary-color; + font-size: 1.1em; +} + +.item { + text-align: center; + padding-bottom: 10px; +} + +.title { + font-weight: bold; +} \ No newline at end of file diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/DisplayStats.js b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/DisplayStats.js new file mode 100644 index 0000000..8efef61 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/DisplayStats.js @@ -0,0 +1,22 @@ +import React from 'react' +import styles from './style.scss' + +const DisplayStats = ({ game }) => { + return ( +
+ { + Object.entries(game.stats).map(([key, value]) => { + const name = game.book.stats.find(current => current.id === key).name + return ( +
+
{name}
+
{value}
+
+ ) + }) + } +
+ ) +} + +export default DisplayStats diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/index.js b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/index.js new file mode 100644 index 0000000..309766d --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/index.js @@ -0,0 +1 @@ +export default from './DisplayStats' diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/style.scss b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/style.scss new file mode 100644 index 0000000..04ee9d2 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/DisplayStats/style.scss @@ -0,0 +1,17 @@ +@import '~styles/colors'; + +.component { + display: flex; + flex-direction: column; + align-items: center; + color: $dark-primary-color; + font-size: 1.1em; + &>div { + text-align: center; + padding-bottom: 10px; + } +} + +.name { + font-weight: bold; +} \ No newline at end of file diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/TrialToolbar.js b/ui/src/components/Layout/Toolbars/TrialToolbar/TrialToolbar.js new file mode 100644 index 0000000..2116f29 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/TrialToolbar.js @@ -0,0 +1,31 @@ +import React from 'react' +import { browserHistory } from 'react-router' +import { ToolbarButton } from 'components/common/ToolbarLink' +import DisplayStats from './DisplayStats' +import DisplayObjects from './DisplayObjects' +import styles from './style.scss' +import logoWhite from '../../../common/logo_white.svg' +// import { RouteService } from '../../../../services' + +const TrialToolbar = ({ game }) => { + return ( +
+
+ logo + + +
+
+ {/* TODO: Externalize this button */} +
+ +
+
+
+ ) +} + +export default TrialToolbar diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/index.js b/ui/src/components/Layout/Toolbars/TrialToolbar/index.js new file mode 100644 index 0000000..d3434ed --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/index.js @@ -0,0 +1 @@ +export default from './TrialToolbar' diff --git a/ui/src/components/Layout/Toolbars/TrialToolbar/style.scss b/ui/src/components/Layout/Toolbars/TrialToolbar/style.scss new file mode 100644 index 0000000..8377b5f --- /dev/null +++ b/ui/src/components/Layout/Toolbars/TrialToolbar/style.scss @@ -0,0 +1,33 @@ +@import '~styles/sizes'; +@import '~styles/colors'; + +.component { + display: flex; + flex-direction: column; + justify-content: space-between; + width: $toolbar-size; + background-color: $dark-background-color-1; +} + +.top { + display: flex; + flex-direction: column; + align-items: center; +} + +.bottom { + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 20px; +} + +.logo { + margin: 20px 0; + height: 70px; +} + +.darkButton { + background-color: $dark-background-color-2; + color: $dark-primary-color; +} \ No newline at end of file diff --git a/ui/src/components/Layout/Toolbars/index.js b/ui/src/components/Layout/Toolbars/index.js new file mode 100644 index 0000000..fc0e515 --- /dev/null +++ b/ui/src/components/Layout/Toolbars/index.js @@ -0,0 +1,3 @@ +export AppToolbar from './AppToolbar' +export GameToolbar from './GameToolbar' +export TrialToolbar from './TrialToolbar' diff --git a/ui/src/components/Layout/index.js b/ui/src/components/Layout/index.js index da1bfad..0e62d3f 100644 --- a/ui/src/components/Layout/index.js +++ b/ui/src/components/Layout/index.js @@ -1,6 +1,6 @@ export default from './Layout' export Layout from './Layout' export Content from './Content' -export Toolbar from './Toolbar' +export { AppToolbar, GameToolbar, TrialToolbar } from './Toolbars' export Tabs from './Tabs' export { TabContent } from './Tabs' diff --git a/ui/src/components/MyBooks/MyBooks.js b/ui/src/components/MyBooks/MyBooks.js index 7fdb103..b8265ac 100644 --- a/ui/src/components/MyBooks/MyBooks.js +++ b/ui/src/components/MyBooks/MyBooks.js @@ -1,5 +1,5 @@ import React from 'react' -import { Layout, Content, Toolbar, Tabs, TabContent } from '../Layout' +import { Layout, Content, AppToolbar, Tabs, TabContent } from '../Layout' import { RouteService } from '../../services' const tabDrafts = { label: 'Mes brouillons', link: RouteService.routes.writedrafts() } @@ -11,7 +11,7 @@ const tabs = [tabDrafts, tabBooks, tabPublish] const MyBooks = ({ location, children, loading }) => { return ( - + diff --git a/ui/src/components/Old/common/Book/BookInformation/BookInformation.js b/ui/src/components/Old/common/Book/BookInformation/BookInformation.js index 4aff848..ad055fc 100644 --- a/ui/src/components/Old/common/Book/BookInformation/BookInformation.js +++ b/ui/src/components/Old/common/Book/BookInformation/BookInformation.js @@ -4,7 +4,7 @@ import { Button, Input, GroupInput, TextAreaInput } from '../../../common' import BookCover from './BookCover' import GenreList from './GenreList' import PageList from './PageList' -import Game from '../../../../Game' +import Game from '../../../../GameView' import styles from './styles.scss' class BookInformation extends React.Component { diff --git a/ui/src/components/Profile/Password/PasswordContainer.js b/ui/src/components/Profile/Password/PasswordContainer.js index a35183e..7f3075b 100644 --- a/ui/src/components/Profile/Password/PasswordContainer.js +++ b/ui/src/components/Profile/Password/PasswordContainer.js @@ -23,39 +23,20 @@ const mutation = gql` } ` -const PasswordContainer = () => { - return ( - - { - (updatePassword, state) => { - const _updatePassword = passwordsData => updatePassword({ - variables: { - userId: AuthService.getConnectedUserId(), - ...passwordsData, - }, - }) - return - } +const PasswordContainer = () => ( + + { + (updatePassword, state) => { + const _updatePassword = passwordsData => updatePassword({ + variables: { + userId: AuthService.getConnectedUserId(), + ...passwordsData, + }, + }) + return } - - ) -} + } + +) export default PasswordContainer -// const mutationOptions = { -// name: 'updatePassword', -// } - -// const PasswordContainer = (props) => { -// let error -// const { updatePassword } = props -// const _updatePassword = passwordsData => updatePassword({ -// variables: { -// userId: AuthService.getConnectedUserId(), -// ...passwordsData, -// }, -// }) -// return -// } - -// export default graphql(mutation, mutationOptions)(PasswordContainer) diff --git a/ui/src/components/Profile/Password/style.scss b/ui/src/components/Profile/Password/style.scss index c423837..0a82014 100644 --- a/ui/src/components/Profile/Password/style.scss +++ b/ui/src/components/Profile/Password/style.scss @@ -16,8 +16,8 @@ .error { padding: 5px; - background-color: #d10000; - color: rgba(255, 255, 255, 0.9); + background-color: $background-error; + color: $white; text-align: center; border-radius: 5px; } \ No newline at end of file diff --git a/ui/src/components/Profile/Profile.js b/ui/src/components/Profile/Profile.js index 0c00eed..cadf320 100644 --- a/ui/src/components/Profile/Profile.js +++ b/ui/src/components/Profile/Profile.js @@ -1,6 +1,6 @@ import React from 'react' // import styles from './style.scss' -import { Layout, Content, Toolbar, Tabs } from '../Layout' +import { Layout, Content, AppToolbar, Tabs } from '../Layout' import { RouteService } from '../../services' const tabPassword = { label: 'Changer de mot de passe', link: RouteService.routes.profilepassword() } @@ -9,7 +9,7 @@ const tabs = [tabPassword] const Profile = ({ location, children }) => { return ( - + {children} diff --git a/ui/src/components/TrialView/TrialView.js b/ui/src/components/TrialView/TrialView.js new file mode 100644 index 0000000..6bb1071 --- /dev/null +++ b/ui/src/components/TrialView/TrialView.js @@ -0,0 +1,16 @@ +import React from 'react' +import { Layout, Content, TrialToolbar } from 'components/Layout' +import Game from 'components/Game' + +const TrialView = (props) => { + return ( + + + + + + + ) +} + +export default TrialView diff --git a/ui/src/components/TrialView/TrialViewContainer.js b/ui/src/components/TrialView/TrialViewContainer.js new file mode 100644 index 0000000..a2704fa --- /dev/null +++ b/ui/src/components/TrialView/TrialViewContainer.js @@ -0,0 +1,119 @@ +import React from 'react' +import { Query } from 'react-apollo' +import gql from 'graphql-tag' +import { normalize } from 'normalizr' +import AuthService from 'services/AuthService' +import * as schemas from 'store/schema' +import TrialView from './TrialView' + +const query = gql` + query tryGame($bookId: ID!, $playerId: ID!) { + tryGame(bookId: $bookId, playerId: $playerId) { + id + currentPageId + playerId + book { + name + tags + synopsis + cover + startingPageId + genreId + draft + creationDate + lastModificationDate + revision + stats { + id + name + description + initValue + max + min + visible + } + objects { + id + name + description + atStart + visible + } + author { + id + username + } + pages { + id + title + description + text + effects { + operator + subject + value + type + } + transitions { + id + fromPage + toPage + text + conditionOperator + effects { + id + operator + subject + value + type + } + conditions { + id + operator + subject + value + type + } + } + } + } + stats + objects + } + } +` +// TODO: Add loading and error returns +const TrialViewContainer = ({ params }) => { + return ( + + { + ({ loading, error, data }) => { + if (loading) return null + if (error) return null + const game = data.tryGame + return + } + } + + ) +} + +// TODO: Create Store and populate it with data from graphQL response (TDD!) +const NormalizeAndStoreData = (props) => { + console.log('graphqlResponse : ', props.game) + + const result = normalize(props.game.book, schemas.book) + console.log('normalizedBook : ', result) + + return ( + + ) +} + +export default TrialViewContainer diff --git a/ui/src/components/TrialView/index.js b/ui/src/components/TrialView/index.js new file mode 100644 index 0000000..d70efaf --- /dev/null +++ b/ui/src/components/TrialView/index.js @@ -0,0 +1 @@ +export default from './TrialViewContainer' diff --git a/ui/src/components/Write/Draft/DraftGeneral/DraftGeneral.js b/ui/src/components/Write/Draft/DraftGeneral/DraftGeneral.js index cac06ea..e4b7eba 100644 --- a/ui/src/components/Write/Draft/DraftGeneral/DraftGeneral.js +++ b/ui/src/components/Write/Draft/DraftGeneral/DraftGeneral.js @@ -1,21 +1,11 @@ import React from 'react' import { Button, Input, Book, TextAreaInput } from 'components/common' -import { GameService, RouteService } from 'services' +import { RouteService } from 'services' import GenreList from './GenreList' import PageList from './PageList' import styles from './styles.scss' -const startGame = (book) => { - const stats = book.stats.reduce((acc, stat) => { - return { - ...acc, - [stat._id]: stat.initValue, - } - }, {}) - GameService.postResource({ book, currentPageId: book.startingPageId, stats }).then((game) => { - RouteService.goTo(RouteService.routes.playgame(game._id)) - }) -} +const tryGame = book => RouteService.goTo(RouteService.routes.trialgame(book.id)) const DraftGeneral = ({ book, genres, updateBook, disabled = false }) => { return !!book && ( @@ -75,7 +65,7 @@ const DraftGeneral = ({ book, genres, updateBook, disabled = false }) => { onChange: startingPageId => updateBook({ startingPageId }), }} /> - +
diff --git a/ui/src/components/Write/Draft/DraftPages/DraftPagesContainer.js b/ui/src/components/Write/Draft/DraftPages/DraftPagesContainer.js index f71df37..69349a6 100644 --- a/ui/src/components/Write/Draft/DraftPages/DraftPagesContainer.js +++ b/ui/src/components/Write/Draft/DraftPages/DraftPagesContainer.js @@ -3,23 +3,15 @@ import { graphql, compose } from 'react-apollo' import gql from 'graphql-tag' import DraftPages from './DraftPages' -const corePage = ` - id - title - description -` - -const core = ` - id - pages { - ${corePage} - } -` - const query = gql` query BookById ($id: ID!) { book(id: $id) { - ${core} + id + pages { + id + title + description + } } } ` @@ -38,7 +30,12 @@ const queryOptions = { const addMutation = gql` mutation addPage($bookId: ID!) { createPage(bookId: $bookId) { - ${core} + id + pages { + id + title + description + } } } ` @@ -50,7 +47,15 @@ const addMutationOptions = { const removeMutation = gql` mutation removePage($bookId: ID!, $pageId: ID!) { deletePage(bookId: $bookId, pageId: $pageId) { - ${core} + id + pages { + id + title + transitions { + toPage + } + description + } } } ` diff --git a/ui/src/components/Write/Draft/WriteDraft.js b/ui/src/components/Write/Draft/WriteDraft.js index bd8583a..45c2718 100644 --- a/ui/src/components/Write/Draft/WriteDraft.js +++ b/ui/src/components/Write/Draft/WriteDraft.js @@ -1,5 +1,5 @@ import React from 'react' -import { Layout, Content, Toolbar, Tabs, TabContent } from 'components/Layout' +import { Layout, Content, AppToolbar, Tabs, TabContent } from 'components/Layout' import { RouteService } from 'services' const WriteDraft = ({ location, children, params, loading }) => { @@ -11,7 +11,7 @@ const WriteDraft = ({ location, children, params, loading }) => { const tabs = [tabPrevious, tabInfos, tabStats, tabItems, tabPages] return ( - + diff --git a/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionObjectInput/ConditionObjectInput.js b/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionObjectInput/ConditionObjectInput.js index ccaa3f3..a6f8c60 100644 --- a/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionObjectInput/ConditionObjectInput.js +++ b/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionObjectInput/ConditionObjectInput.js @@ -1,7 +1,10 @@ import React from 'react' import { SelectInput } from 'components/common' +import EffectService from 'services/EffectService' import styles from './styles.scss' +const objectConditions = EffectService.condition.object + const ConditionObjectInput = ({ objects, condition, index, updateCondition }) => { return (
@@ -12,7 +15,7 @@ const ConditionObjectInput = ({ objects, condition, index, updateCondition }) => onChange: subject => updateCondition({ subject }), }} > - + key { objects.map(object => ( - - + { + Object.entries(objectConditions).map(([key, conditionModel]) => { + if (typeof conditionModel === 'object') { + return + } + return null + }) + }
diff --git a/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionStatInput/CondtionStatInput.js b/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionStatInput/CondtionStatInput.js index 01d85c7..27511ea 100644 --- a/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionStatInput/CondtionStatInput.js +++ b/ui/src/components/Write/Page/PageTransition/TransitionRow/TransitionCondition/ConditionRow/ConditionInput/ConditionStatInput/CondtionStatInput.js @@ -1,7 +1,10 @@ import React from 'react' import { Input, SelectInput } from 'components/common' +import EffectService from 'services/EffectService' import styles from './styles.scss' +const statConditions = EffectService.condition.stat + const ConditionStatInput = ({ stats, condition, index, updateCondition }) => { return (
@@ -23,12 +26,14 @@ const ConditionStatInput = ({ stats, condition, index, updateCondition }) => { }} > - - - - - - + { + Object.entries(statConditions).map(([key, statModel]) => { + if (typeof statModel === 'object') { + return + } + return null + }) + } { const _updateCondition = _condition => updateCondition({ id: condition.id, ..._condition }) return ( @@ -21,8 +24,14 @@ const ConditionRow = ({ book, condition, index, updateCondition, removeCondition }} > - - + { + Object.entries(conditionType).map(([key, conditionModel]) => { + if (typeof conditionModel === 'object') { + return + } + return null + }) + }
@@ -30,8 +34,14 @@ const TransitionCondition = ({ updateResource(index, { ...transition, conditionOperator }), }} > - - + { + Object.entries(operatorConditions).map(([key, operatorModel]) => { + if (typeof operatorModel === 'object') { + return + } + return null + }) + }
diff --git a/ui/src/components/Write/Page/WritePage.js b/ui/src/components/Write/Page/WritePage.js index 5bf034a..ba2480e 100644 --- a/ui/src/components/Write/Page/WritePage.js +++ b/ui/src/components/Write/Page/WritePage.js @@ -1,5 +1,5 @@ import React from 'react' -import { Layout, Content, Toolbar, Tabs, TabContent } from 'components/Layout' +import { Layout, Content, AppToolbar, Tabs, TabContent } from 'components/Layout' import { RouteService } from 'services' const WritePage = ({ location, loading, children, params }) => { @@ -10,7 +10,7 @@ const WritePage = ({ location, loading, children, params }) => { const tabs = [tabPrevious, tabInfos, tabContent, tabTransitions] return ( - + diff --git a/ui/src/components/Write/Page/common/EffectRow/EffectInput/ObjectInput/ObjectInput.js b/ui/src/components/Write/Page/common/EffectRow/EffectInput/ObjectInput/ObjectInput.js index 38a7168..e618706 100644 --- a/ui/src/components/Write/Page/common/EffectRow/EffectInput/ObjectInput/ObjectInput.js +++ b/ui/src/components/Write/Page/common/EffectRow/EffectInput/ObjectInput/ObjectInput.js @@ -1,7 +1,10 @@ import React from 'react' import { SelectInput } from 'components/common' +import EffectService from 'services/EffectService' import styles from './styles.scss' +const objectEffect = EffectService.effect.object + const ObjectInput = ({ objects, effect, index, updateEffect }) => { return (
@@ -23,8 +26,14 @@ const ObjectInput = ({ objects, effect, index, updateEffect }) => { }} > - - + { + Object.entries(objectEffect).map(([key, effectModel]) => { + if (typeof effectModel === 'object') { + return + } + return null + }) + }
diff --git a/ui/src/components/Write/Page/common/EffectRow/EffectInput/StatInput/StatInput.js b/ui/src/components/Write/Page/common/EffectRow/EffectInput/StatInput/StatInput.js index d9c1919..8155ac9 100644 --- a/ui/src/components/Write/Page/common/EffectRow/EffectInput/StatInput/StatInput.js +++ b/ui/src/components/Write/Page/common/EffectRow/EffectInput/StatInput/StatInput.js @@ -1,7 +1,10 @@ import React from 'react' import { Input, SelectInput } from 'components/common' +import EffectService from 'services/EffectService' import styles from './styles.scss' +const statEffect = EffectService.effect.stat + const StatInput = ({ stats, effect, index, updateEffect }) => { return (
@@ -23,11 +26,14 @@ const StatInput = ({ stats, effect, index, updateEffect }) => { }} > - - - - - + { + Object.entries(statEffect).map(([key, effectModel]) => { + if (typeof effectModel === 'object') { + return + } + return null + }) + } { const doUpdateEffect = (changes) => { updateEffect({ id: effect.id, ...changes }) } + return !!book && (
@@ -19,9 +23,15 @@ const EffectRow = ({ book, effect, index, updateEffect, removeEffect }) => { onChange: type => doUpdateEffect({ type, value: '', operator: '', subject: '' }), }} > - - - + + { + Object.entries(effectType).map(([key, effectModel]) => { + if (typeof effectModel === 'object') { + return + } + return null + }) + } { + const className = classnames(domProps && domProps.className, styles.icon) + return ( +
+ +
+ ) +} + +export default ToolbarButton diff --git a/ui/src/components/common/ToolbarLink/ToolbarButton/index.js b/ui/src/components/common/ToolbarLink/ToolbarButton/index.js new file mode 100644 index 0000000..a521c21 --- /dev/null +++ b/ui/src/components/common/ToolbarLink/ToolbarButton/index.js @@ -0,0 +1 @@ +export default from './ToolbarButton' diff --git a/ui/src/components/Layout/Toolbar/Link/style.scss b/ui/src/components/common/ToolbarLink/ToolbarButton/style.scss similarity index 99% rename from ui/src/components/Layout/Toolbar/Link/style.scss rename to ui/src/components/common/ToolbarLink/ToolbarButton/style.scss index 2f0de11..ce02257 100644 --- a/ui/src/components/Layout/Toolbar/Link/style.scss +++ b/ui/src/components/common/ToolbarLink/ToolbarButton/style.scss @@ -23,4 +23,4 @@ &:hover { box-shadow: $box-shadow-1; } -} +} \ No newline at end of file diff --git a/ui/src/components/common/ToolbarLink/ToolbarLink.js b/ui/src/components/common/ToolbarLink/ToolbarLink.js new file mode 100644 index 0000000..cfb8b7e --- /dev/null +++ b/ui/src/components/common/ToolbarLink/ToolbarLink.js @@ -0,0 +1,13 @@ +import React from 'react' +import { Link as RouterLink } from 'react-router' +import ToolbarButton from './ToolbarButton' + +const ToolbarLink = ({ to, icon }) => { + return ( + + + + ) +} + +export default ToolbarLink diff --git a/ui/src/components/common/ToolbarLink/index.js b/ui/src/components/common/ToolbarLink/index.js new file mode 100644 index 0000000..b3d33ed --- /dev/null +++ b/ui/src/components/common/ToolbarLink/index.js @@ -0,0 +1,2 @@ +export default from './ToolbarLink' +export ToolbarButton from './ToolbarButton' diff --git a/ui/src/components/common/logo_white.svg b/ui/src/components/common/logo_white.svg new file mode 100644 index 0000000..283ca86 --- /dev/null +++ b/ui/src/components/common/logo_white.svg @@ -0,0 +1,1967 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + dZd4/z9+JwjFHUBxxS8/+MUXFKof/OvHv/UCd9LK11/i17/3/Fb+dpNn35LwMS7x7gf3Sxzf/ct3 +X74Cm/nJJTvvPjzt8e1/+O7fvLLuvU8KyGfK2GsROj/7HFrnVRl79/3PFJE3l/N3f/GZAvLiS78D +0OhfP6+AXDL27q8+/oKv8eFv1zpvKGPvfvzfvsgzIGN/9/u//9xpy//xk/slfu8P//YXP3wF/vez +Z7RO2JfX7cTP3v/NF3yGX3z4YJE/19f42b/+xxtIxGst8s9+9dHnVFznBX7z8ee1yP/ugDRcxH/+ ++lvrFerhr1Qyjz+m0fn77hGwVxdZuIfUGRTOb+8o4k/fra/ihL+6uRLv6aRvv3el7H7w6zPK/eG/ +K7j8+TeckjyzPeZNdALg5E182/9KIP3W/qd/ef8rO2XvCPqesve/fv2tr+0I2v+qx4w/++cfff2j +OwXj9457sv0xwfGJLPz9Db7xp199+MVDouMb73zt/ot7gsbJ+++9ff9V+T/++OffPP/mE+SIJIS+ +86dfuf/s8c7feeePHn7xcOfvfC/yMO2rCut/8tVI1P/Df/zLx2ZIJCZPry8uvmlpUXf5AsXFNy0t +npQMn6+4+KalxRdfqLj4pqXFR4rf3724+KalxSgPft7i4puWFs82089XXHzT0qKH7Xzu4uKblhYB +6X/+4uKblhZ5l89fXHzT0uKLL1RcfNPSIm1An7+4+KalRaABv1tx8Y9ffIka4nt//qt/eqwfvvjS +l/STH77/0cf/zoL23p+9//Nf/ur7P/3P9z98kW7x30P/5X/HuqU8b7k1/Uvjp9//2Yu3/vf/8//9 +7//3/76lL9++/yv9yTf//MWX3nv7mx9+9K1fvvzol7/+1U8//M/b1/nRj//y+z/63rduX7/tv3hP +f/HHt7f0UMd7Wq7ffZna5Xt60PdeHLdv6v9+/L+44PsvPtb/0z8f/PNXPj5/8S39w1/r///8xbEf +Ur/4T/3LX+gf/kU/+l+3dNz+8vb3/3Dc/ok/+psXq6antUo9Zj5Kyu1WV3tKx+hHXfOofd0+0Jr2 +tMoxU+/tKCvd6lxP65irtFb7HO22Wn7KR+t51Jrq0bWiPfV+tFnq6seqt1Xn08rHynO1dox5q2M8 +ldKOnNbIvfXbOy/0m6ehe9Sj5VFq1Zr+lNYafR69c9nV6lNpeoSs/22J+xQ9fi9rrtzGTFoxn4ou +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 +du0AKJIrmO1ZeZ5p5Ey/yG16GlcoWhzBaEwLWLVj6QKDKygZCHAJrTzh9jPBiB5E52cxYjgIhdAY +3bZ0FGdIE6CEHxLL85qQYmvfDDPaXJFuOHi1Chb81E7dmI6kkL7LAz/eDsAYphHxsDf0d//9Zxox +nHDq/bpHZpUp6y9Wi2lPV0VXK71+WRbl9f1r/uEHrtmAbL+9bK1r/uSLbi/4/rf8yE3/7Z8+hK9+ +9fOf/+M3X//hq9/+t19/U0/in377q69/98tvPj0Q//kffvU/vvlP//LVf//m5z//j1/99pe//ub3 +/+dXv/lmPps//bz2+tu//+0fXn/8sT//+d//9ld/+NVXv/6//+2rX/7+q9/+Yf5d1evrb//xm69+ +/b3r/+M3v/pv//K+7D/8/W//x1e//tUvf/jHfecv/ePv/u23v6z/8P/8Tz91+zP/9i9+9/vffvP7 +P/q7FfDXjyMijXT+rh/5sb/45rd/+Ob3/3X+Hbuv9nGsyk0zP/t3/vkv+I3r/LvLj3zB3833+Rc8 +wPb5L5i/5R+/+uWv/u1ff/7z5f1Kod3ZLjUgiao0f/jv/pdf/fIP//IX/bj1L3hyfw== + + + 1o39Jcto+XO+qP1Fz+PT83/97f/2u9/9wFf9+ndf/7//36/+9Zs/5xe9n/H/+r0o8H999fuvfvOv +P/xff7DzWaHze67c20nI0hCDEVqIZzugWgMNMZ6scFo16pnGidZzWHKxqOYtYJZ3vraYEigdmYyH +e9MMMxdQvm66y+zXxILJ2FElwuWkLrPXqUabo/LqdsV0Ydc4qj97XSRPWbCNoOTgCAg6OgAYnq2v +C8EHeBFocwHguHqoXnQJM5ofMVJdo7S1nTlm199NE2hRex2Yd3y+OFwbMzM33uLBq7ZbtbWOqSiU +82FsG4B0qDCtOqxXlcZjksMG6BVgYizXNzKvZkF6wkSiViXtgDZd6RCZvA8MMzqQvVFdIl2gAdKi +AhEs0IXUeRIZMlU+uRrIwDuyYTqhLc63I/aoh3wOLke8ERcMWw9eqOu+6Ub0CH1URQTgsvNTmBCA +Kvn43B/QeserSpsPRhBKwH0JdsqHf8AirLydFcar8HpFZ7RKatgZzu1rVMLcza4rXXWofwWycQUU +T8VvpuPNFfh/0DRHJJ98DcaNHgJCZU7iDDLUxKBOZ2ACp/OwDoKh+J7WEnV/8z0myS+6WBQf9BPR +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 +/k9/9yf1T74f/vbtT3/xszf/BHjLhFA= + + + \ No newline at end of file diff --git a/ui/src/router.js b/ui/src/router.js index 8945048..c35d645 100644 --- a/ui/src/router.js +++ b/ui/src/router.js @@ -19,7 +19,8 @@ import WriteDraft, { PageTransition, } from './components/Write' import Portal, { SignIn, SignUp, Recover } from './components/Portal' -import Game from './components/Game' +import GameView from './components/GameView' +import TrialView from './components/TrialView' import Profile, { Password } from './components/Profile' // OLD LAYOUT @@ -41,7 +42,8 @@ const AppRouter = () => { - + + @@ -74,7 +76,7 @@ const AppRouter = () => { - + diff --git a/ui/src/services/EffectService.js b/ui/src/services/EffectService.js new file mode 100644 index 0000000..05a2140 --- /dev/null +++ b/ui/src/services/EffectService.js @@ -0,0 +1,98 @@ +class EffectService { + effect = { + object: { + label: 'L\'objet', + add: { + label: 'est ajouté', + exec: (value, modifier) => {}, + }, + remove: { + label: 'est retiré', + exec: () => {}, + }, + }, + stat: { + label: 'La statistique', + inc: { + label: 'augmente de', + value: 'inc', + exec: (value, modifier) => value + modifier, + }, + dec: { + label: 'diminue de', + value: 'dec', + exec: (value, modifier) => value - modifier, + }, + mul: { + label: 'est multiplié par', + value: 'mul', + exec: (value, modifier) => value * modifier, + }, + div: { + label: 'est divisé par', + value: 'div', + exec: (value, modifier) => value / modifier, + }, + aff: { + label: 'est remplacé par', + value: 'aff', + exec: (value, modifier) => modifier, + }, + }, + } + + condition = { + label: 'Condition', + object: { + label: 'L\'objet', + own: { + label: 'est possédé', + exec: () => {}, + }, + doNotOwn: { + label: 'n\'est pas possédé', + exec: () => {}, + }, + }, + stat: { + label: 'La statistique', + equal: { + label: 'est égal à', + exec: (initValue, conditionValue) => initValue === conditionValue, + }, + notEqual: { + label: 'est différent de', + exec: (initValue, conditionValue) => initValue !== conditionValue, + }, + more: { + label: 'est supérieur à', + exec: (initValue, conditionValue) => initValue > conditionValue, + }, + less: { + label: 'est inférieur à', + exec: (initValue, conditionValue) => initValue < conditionValue, + }, + moreOrEqual: { + label: 'est supérieur ou égale à', + exec: (initValue, conditionValue) => initValue >= conditionValue, + }, + lessOrEqual: { + label: 'est inférieur ou égale à', + exec: (initValue, conditionValue) => initValue <= conditionValue, + }, + }, + } + + conditionOperator = { + and: { + label: 'ET', + exec: () => {}, + }, + or: { + label: 'OU', + exec: () => {}, + }, + } +} + +export default new EffectService() diff --git a/ui/src/services/RouteService.js b/ui/src/services/RouteService.js index 522a0c2..aa14270 100644 --- a/ui/src/services/RouteService.js +++ b/ui/src/services/RouteService.js @@ -18,7 +18,8 @@ class RouteService { books: () => '/app/books', booksnews: () => '/app/books/news', bookslibrary: () => '/app/books/library', - playgame: id => `/app/play/${id}`, + playgame: gameId => `/app/play/${gameId}`, + trialgame: bookId => `/app/trial/${bookId}`, write: () => '/app/write', writedrafts: () => '/app/write/drafts', writepublications: () => '/app/write/publications', @@ -40,6 +41,10 @@ class RouteService { browserHistory.push(route) } + // goBack = () => { + + // } + redirect401 = () => { browserHistory.push(this.routes.signin()) } diff --git a/ui/src/store/actions/index.js b/ui/src/store/actions/index.js new file mode 100644 index 0000000..65aa253 --- /dev/null +++ b/ui/src/store/actions/index.js @@ -0,0 +1,30 @@ +export const addStat = ({ id, value }) => ({ + type: 'STAT', + id, + value, +}) + +export const addObject = objectId => ({ + type: 'ADD_OBJECT', + objectId +}) + +export const removeObject = objectId => ({ + type: 'REMOVE_OBJECT', + objectId +}) + +export const addBook = book => ({ + type: 'ADD_BOOK', + book +}) + +export const currentPageId = currentPageId => ({ + type: 'CURRENT_PAGE_ID', + currentPageId, +}) + +export const gameId = gameId => ({ + type: 'GAME_ID', + gameId +}) \ No newline at end of file diff --git a/ui/src/store/reducers/index.js b/ui/src/store/reducers/index.js new file mode 100644 index 0000000..210161d --- /dev/null +++ b/ui/src/store/reducers/index.js @@ -0,0 +1,60 @@ +import { combineReducers } from 'redux' + +const stat = (state = {}, { type, id, value }) => { + switch (type) { + case 'ADD_STAT': + return ({ + ...state, + [id]: value, + }) + default: + return state; + } +} + +const object = (state = [], action) => { + switch (action.type) { + case 'ADD_OBJECT': + return ([...state, action.objectId]) + case 'REMOVE_OBJECT': + return state.filter(id => id !== objectId) + default: + return state + } + } +} + +const book = (state = {}, action) => { + switch (action.type) { + case 'ADD_BOOK': + return ({...action.book}) + default: + return state + } + } +} + +const pageId = (state = '', action) => { + switch(action.type) { + case: 'CURRENT_PAGE_ID', + return currentPageId + default: + return state + } +} + +const gameId = (state = '', action) => { + switch(action.type) { + case: 'GAME_ID', + return gameId + default: + return state + } +} + +export default combineReducers( + stat, + object, + book, + pageId +) \ No newline at end of file diff --git a/ui/src/store/schema/index.js b/ui/src/store/schema/index.js new file mode 100644 index 0000000..3782b90 --- /dev/null +++ b/ui/src/store/schema/index.js @@ -0,0 +1,23 @@ +import { schema } from 'normalizr' + +export const author = new schema.Entity('author') +export const object = new schema.Entity('object') +export const stat = new schema.Entity('stat') +export const effect = new schema.Entity('effect') +export const condition = new schema.Entity('condition') +export const transition = new schema.Entity('transition', { + conditions: [condition], + effects: [effect], +}) +export const page = new schema.Entity('page', { + effects: [effect], + transitions: [transition], +}) +export const tag = new schema.Entity('tag') +export const book = new schema.Entity('book', { + author, + objects: [object], + stats: [stat], + pages: [page], + tags: [tag], +}) diff --git a/ui/src/styles/colors.scss b/ui/src/styles/colors.scss index f8b8582..4a4c8d6 100644 --- a/ui/src/styles/colors.scss +++ b/ui/src/styles/colors.scss @@ -15,6 +15,22 @@ $transparent-black: rgba(0,0,0,.6); $transparent-white: rgba(255,255,255,.9); $white: #fff; +$background-error: #d10000; + +// dark-ui + +$dark-background-color-1: #333; +$dark-background-color-2: #222; +$dark-background-color-3: #444; +$dark-background-color-4: #555; +$dark-transparent-black: rgba(0,0,0,.95); + +$dark-font-color: #CCC; + +$dark-primary-color: $dark-font-color; +$dark-secondary-color: $secondary-color; + +