From 998cb320e46639bd4b663437e57835de7c1621fb Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Wed, 30 Nov 2016 21:56:27 +0000 Subject: [PATCH 01/11] move server to apollo - WIP --- .baker/generators/app/index.js | 14 +++---- .../app/templates/server/package.json | 10 +++-- .../templates/server/src/api/todo/model.js | 0 .../templates/server/src/api/todo/resolver.js | 0 .../templates/server/src/api/todo/schema.js | 0 .../app/templates/server/src/graphql/index.js | 16 ++++++-- .../templates/server/src/graphql/schema.js | 40 ++++--------------- .../app/templates/server/src/index.js | 3 +- 8 files changed, 35 insertions(+), 48 deletions(-) create mode 100644 .baker/generators/app/templates/server/src/api/todo/model.js create mode 100644 .baker/generators/app/templates/server/src/api/todo/resolver.js create mode 100644 .baker/generators/app/templates/server/src/api/todo/schema.js diff --git a/.baker/generators/app/index.js b/.baker/generators/app/index.js index 7e3ebdf..1302b4d 100644 --- a/.baker/generators/app/index.js +++ b/.baker/generators/app/index.js @@ -103,13 +103,13 @@ module.exports = BaseGenerator.extend({ local: require.resolve('../component'), }); - this.composeWith('model', { - options: { - modelName: 'Example', - }, - }, { - local: require.resolve('../model'), - }); + // this.composeWith('model', { + // options: { + // modelName: 'Example', + // }, + // }, { + // local: require.resolve('../model'), + // }); // Setup Fastlane jazz this.template('fastlane/Gemfile', `${this.appDirectory}/fastlane/Gemfile`); diff --git a/.baker/generators/app/templates/server/package.json b/.baker/generators/app/templates/server/package.json index a31a8d3..75c84c9 100644 --- a/.baker/generators/app/templates/server/package.json +++ b/.baker/generators/app/templates/server/package.json @@ -13,13 +13,15 @@ "node": ">=4.5" }, "dependencies": { + "body-parser": "^1.15.2", "express": "^4.13.4", - "graphql": "^0.7.0", - "immutable": "^3.8.1", + "graphql": "^0.6.2", + "graphql-server-express": "^0.4.3", + "graphql-tools": "^0.8.3", "parse": "1.9.2", "parse-dashboard": "^1.0.13", "parse-graphql-client": "^0.2.0", - "parse-graphql-server": "^0.3.0", + "parse-graphql-server": "git://github.com/bakery/parse-graphql-server.git#feature/apollo", "parse-server": "^2.2.25-beta.1" }, "devDependencies": { @@ -27,4 +29,4 @@ "babel-polyfill": "^6.16.0", "jest": "^17.0.0" } -} +} \ No newline at end of file diff --git a/.baker/generators/app/templates/server/src/api/todo/model.js b/.baker/generators/app/templates/server/src/api/todo/model.js new file mode 100644 index 0000000..e69de29 diff --git a/.baker/generators/app/templates/server/src/api/todo/resolver.js b/.baker/generators/app/templates/server/src/api/todo/resolver.js new file mode 100644 index 0000000..e69de29 diff --git a/.baker/generators/app/templates/server/src/api/todo/schema.js b/.baker/generators/app/templates/server/src/api/todo/schema.js new file mode 100644 index 0000000..e69de29 diff --git a/.baker/generators/app/templates/server/src/graphql/index.js b/.baker/generators/app/templates/server/src/graphql/index.js index bf4107a..45fd21f 100644 --- a/.baker/generators/app/templates/server/src/graphql/index.js +++ b/.baker/generators/app/templates/server/src/graphql/index.js @@ -1,8 +1,18 @@ +import bodyParser from 'body-parser'; import parseGraphQLHTTP from 'parse-graphql-server'; +import { graphiqlExpress } from 'graphql-server-express'; import schema from './schema'; export default { - setup(app, graphiql = false) { - app.use('/graphql', parseGraphQLHTTP({ schema, graphiql })); + setup(app) { + const IS_DEVELOPMENT = process.env.NODE_ENV === 'development'; + + app.use(bodyParser.urlencoded({ extended: true })); + app.use(bodyParser.json()); + app.use('/graphql', parseGraphQLHTTP({ schema })); + + if (IS_DEVELOPMENT) { + app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' })); + } }, -}; +}; \ No newline at end of file diff --git a/.baker/generators/app/templates/server/src/graphql/schema.js b/.baker/generators/app/templates/server/src/graphql/schema.js index ec8ec0b..49a6bd4 100644 --- a/.baker/generators/app/templates/server/src/graphql/schema.js +++ b/.baker/generators/app/templates/server/src/graphql/schema.js @@ -1,34 +1,10 @@ -/* eslint comma-dangle: "off", prefer-template: "off", eol-last: "off" */ -import { - GraphQLObjectType, - GraphQLSchema, -} from 'graphql'; -import assert from 'assert'; +import { makeExecutableSchema } from 'graphql-tools'; +import TodoSchema from '../api/todo/schema'; +import TodoResolvers from '../api/todo/resolver'; -const queries = {}; -const mutations = []; - -// XX: check for duplicate mutation declarations -// accross different models -function checkForDuplicates(listOfMutations) { - const existingMutations = []; - listOfMutations.forEach(ms => Object.keys(ms).forEach(m => { - assert(existingMutations.indexOf(m) === -1, 'Duplicate mutation declaration:' + m); - existingMutations.push(m); - })); -} -checkForDuplicates(mutations); - -export default new GraphQLSchema({ - query: new GraphQLObjectType({ - name: 'Query', - fields: queries - }), - mutation: new GraphQLObjectType({ - name: 'Mutation', - fields: Object.assign.apply(this, [ - {}, - ...mutations - ]) - }) +const schema = makeExecutableSchema({ + typeDefs: [TodoSchema], + resolvers: TodoResolvers, }); + +export default schema; diff --git a/.baker/generators/app/templates/server/src/index.js b/.baker/generators/app/templates/server/src/index.js index f6d66a1..65b17a6 100644 --- a/.baker/generators/app/templates/server/src/index.js +++ b/.baker/generators/app/templates/server/src/index.js @@ -19,11 +19,10 @@ function loadSettings() { const settings = loadSettings(); const app = express(); -const IS_DEVELOPMENT = process.env.NODE_ENV === 'development'; const serverPort = process.env.PORT || settings.serverPort; parseServer.setup(app, packageJSON.name, settings); -graphql.setup(app, IS_DEVELOPMENT); +graphql.setup(app); app.listen(serverPort, () => { // eslint-disable-next-line no-console From 250cb310b2c68ce74cb7b91cbdceede6d85edae4 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Thu, 1 Dec 2016 14:36:18 +0000 Subject: [PATCH 02/11] fix issue with missing express graphql deps, clean up deps --- .../app/templates/server/package.json | 1 - .../templates/server/src/api/todo/model.js | 5 ++ .../templates/server/src/api/todo/resolver.js | 49 +++++++++++++++++++ .../templates/server/src/api/todo/schema.js | 32 ++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) diff --git a/.baker/generators/app/templates/server/package.json b/.baker/generators/app/templates/server/package.json index 75c84c9..421a5ed 100644 --- a/.baker/generators/app/templates/server/package.json +++ b/.baker/generators/app/templates/server/package.json @@ -20,7 +20,6 @@ "graphql-tools": "^0.8.3", "parse": "1.9.2", "parse-dashboard": "^1.0.13", - "parse-graphql-client": "^0.2.0", "parse-graphql-server": "git://github.com/bakery/parse-graphql-server.git#feature/apollo", "parse-server": "^2.2.25-beta.1" }, diff --git a/.baker/generators/app/templates/server/src/api/todo/model.js b/.baker/generators/app/templates/server/src/api/todo/model.js index e69de29..8431461 100644 --- a/.baker/generators/app/templates/server/src/api/todo/model.js +++ b/.baker/generators/app/templates/server/src/api/todo/model.js @@ -0,0 +1,5 @@ +import Parse from 'parse/node'; + +const Todo = Parse.Object.extend('Todo'); + +export default Todo; diff --git a/.baker/generators/app/templates/server/src/api/todo/resolver.js b/.baker/generators/app/templates/server/src/api/todo/resolver.js index e69de29..d5313f2 100644 --- a/.baker/generators/app/templates/server/src/api/todo/resolver.js +++ b/.baker/generators/app/templates/server/src/api/todo/resolver.js @@ -0,0 +1,49 @@ +import Parse from 'parse/node'; +import Todo from './model'; + +export default { + Todo: { + text: (root) => root.get('text'), + isComplete: (root) => root.get('isComplete'), + createdAt: (root) => root.get('createdAt').getTime(), + }, + Query: { + todos(root, { isComplete }, { Query, user }) { + const query = new Query(Todo); + + if (typeof isComplete !== 'undefined') { + query.equalTo('isComplete', isComplete); + } + + if (user) { + query.equalTo('user', user); + } + + return query.find(); + }, + }, + Mutation: { + addTodo(_, { text }, { Query, user }) { + const newTodo = new Query(Todo).create({ isComplete: false, text, user }); + if (user) { + newTodo.setACL(new Parse.ACL(user)); + } + return newTodo.save().then(td => td); + }, + + deleteTodo(_, { id }, { Query }) { + return new Query(Todo).get(id).then((todo) => { + if (todo) { + todo.destroy(); + } + return todo; + }); + }, + + toggleTodoCompletion(_, { id }, { Query }) { + return new Query(Todo).get(id).then((todo) => { + return todo.save({ isComplete: !todo.get('isComplete') }).then(td => td); + }); + }, + }, +}; diff --git a/.baker/generators/app/templates/server/src/api/todo/schema.js b/.baker/generators/app/templates/server/src/api/todo/schema.js index e69de29..01d3796 100644 --- a/.baker/generators/app/templates/server/src/api/todo/schema.js +++ b/.baker/generators/app/templates/server/src/api/todo/schema.js @@ -0,0 +1,32 @@ +export default ` +type Todo { + id: ID! + text: String! + isComplete: Boolean!, + createdAt: Float! +} +# the schema allows the following query: +type Query { + todos( + isComplete: Boolean + ): [Todo] +} +# this schema allows the following mutation: +type Mutation { + addTodo ( + text: String! + ): Todo + deleteTodo ( + id: ID! + ): Todo + toggleTodoCompletion ( + id: ID! + ): Todo +} +# we need to tell the server which types represent the root query +# and root mutation types. We call them RootQuery and RootMutation by convention. +schema { + query: Query + mutation: Mutation +} +`; From 66d83bc59814f2b95c0ed3c6125060fcbf1a278e Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Sat, 3 Dec 2016 19:19:38 +0000 Subject: [PATCH 03/11] switch to apollo stack compliant models on the server --- .baker/generators/app/index.js | 14 +-- .../app/templates/server/package.json | 2 + .../templates/server/src/api/Example/model.js | 5 + .../server/src/api/Example/resolver.js | 32 +++++++ .../src/api/{todo => Example}/schema.js | 19 ++-- .../server/src/{graphql => api}/index.js | 2 +- .../app/templates/server/src/api/schema.js | 28 ++++++ .../templates/server/src/api/todo/model.js | 5 - .../templates/server/src/api/todo/resolver.js | 49 ---------- .../templates/server/src/graphql/schema.js | 10 -- .../app/templates/server/src/index.js | 4 +- .baker/generators/model/index.js | 92 +++++++++---------- .../generators/model/templates/schema.js.hbs | 52 ++++------- .../templates/server/models/index.js.hbs | 71 -------------- .../templates/server/models/model.js.hbs | 5 + .../templates/server/models/resolver.js.hbs | 32 +++++++ .../templates/server/models/schema.js.hbs | 19 ++++ .baker/generators/test/tests/app.js | 5 +- .baker/generators/test/tests/model.js | 26 ++++-- 19 files changed, 220 insertions(+), 252 deletions(-) create mode 100644 .baker/generators/app/templates/server/src/api/Example/model.js create mode 100644 .baker/generators/app/templates/server/src/api/Example/resolver.js rename .baker/generators/app/templates/server/src/api/{todo => Example}/schema.js (66%) rename .baker/generators/app/templates/server/src/{graphql => api}/index.js (99%) create mode 100644 .baker/generators/app/templates/server/src/api/schema.js delete mode 100644 .baker/generators/app/templates/server/src/api/todo/model.js delete mode 100644 .baker/generators/app/templates/server/src/api/todo/resolver.js delete mode 100644 .baker/generators/app/templates/server/src/graphql/schema.js delete mode 100644 .baker/generators/model/templates/server/models/index.js.hbs create mode 100644 .baker/generators/model/templates/server/models/model.js.hbs create mode 100644 .baker/generators/model/templates/server/models/resolver.js.hbs create mode 100644 .baker/generators/model/templates/server/models/schema.js.hbs diff --git a/.baker/generators/app/index.js b/.baker/generators/app/index.js index 1302b4d..7e3ebdf 100644 --- a/.baker/generators/app/index.js +++ b/.baker/generators/app/index.js @@ -103,13 +103,13 @@ module.exports = BaseGenerator.extend({ local: require.resolve('../component'), }); - // this.composeWith('model', { - // options: { - // modelName: 'Example', - // }, - // }, { - // local: require.resolve('../model'), - // }); + this.composeWith('model', { + options: { + modelName: 'Example', + }, + }, { + local: require.resolve('../model'), + }); // Setup Fastlane jazz this.template('fastlane/Gemfile', `${this.appDirectory}/fastlane/Gemfile`); diff --git a/.baker/generators/app/templates/server/package.json b/.baker/generators/app/templates/server/package.json index 421a5ed..a3ea478 100644 --- a/.baker/generators/app/templates/server/package.json +++ b/.baker/generators/app/templates/server/package.json @@ -15,9 +15,11 @@ "dependencies": { "body-parser": "^1.15.2", "express": "^4.13.4", + "gql-merge": "0.0.4", "graphql": "^0.6.2", "graphql-server-express": "^0.4.3", "graphql-tools": "^0.8.3", + "lodash": "^4.17.2", "parse": "1.9.2", "parse-dashboard": "^1.0.13", "parse-graphql-server": "git://github.com/bakery/parse-graphql-server.git#feature/apollo", diff --git a/.baker/generators/app/templates/server/src/api/Example/model.js b/.baker/generators/app/templates/server/src/api/Example/model.js new file mode 100644 index 0000000..cca1491 --- /dev/null +++ b/.baker/generators/app/templates/server/src/api/Example/model.js @@ -0,0 +1,5 @@ +import Parse from 'parse/node'; + +const Example = Parse.Object.extend('Example'); + +export default Example; diff --git a/.baker/generators/app/templates/server/src/api/Example/resolver.js b/.baker/generators/app/templates/server/src/api/Example/resolver.js new file mode 100644 index 0000000..be5b81f --- /dev/null +++ b/.baker/generators/app/templates/server/src/api/Example/resolver.js @@ -0,0 +1,32 @@ +import Parse from 'parse/node'; +import Example from './model'; + +export default { + Example: { + text: (root) => root.get('text'), + }, + Query: { + examples(root, { }, { Query, user }) { + const query = new Query(Example); + return query.find(); + }, + }, + Mutation: { + addExanple(_, { text }, { Query, user }) { + const newExample = new Query(Example).create({ isComplete: false, text, user }); + if (user) { + newExample.setACL(new Parse.ACL(user)); + } + return newExample.save().then(ex => ex); + }, + + deleteExample(_, { id }, { Query }) { + return new Query(Example).get(id).then(example => { + if (example) { + example.destroy(); + } + return example; + }); + }, + }, +}; diff --git a/.baker/generators/app/templates/server/src/api/todo/schema.js b/.baker/generators/app/templates/server/src/api/Example/schema.js similarity index 66% rename from .baker/generators/app/templates/server/src/api/todo/schema.js rename to .baker/generators/app/templates/server/src/api/Example/schema.js index 01d3796..a03178b 100644 --- a/.baker/generators/app/templates/server/src/api/todo/schema.js +++ b/.baker/generators/app/templates/server/src/api/Example/schema.js @@ -1,27 +1,20 @@ export default ` -type Todo { +type Example { id: ID! text: String! - isComplete: Boolean!, - createdAt: Float! } # the schema allows the following query: type Query { - todos( - isComplete: Boolean - ): [Todo] + examples: [Example] } # this schema allows the following mutation: type Mutation { - addTodo ( + addExample ( text: String! - ): Todo - deleteTodo ( + ): Example + deleteExample ( id: ID! - ): Todo - toggleTodoCompletion ( - id: ID! - ): Todo + ): Example } # we need to tell the server which types represent the root query # and root mutation types. We call them RootQuery and RootMutation by convention. diff --git a/.baker/generators/app/templates/server/src/graphql/index.js b/.baker/generators/app/templates/server/src/api/index.js similarity index 99% rename from .baker/generators/app/templates/server/src/graphql/index.js rename to .baker/generators/app/templates/server/src/api/index.js index 45fd21f..e8b5b90 100644 --- a/.baker/generators/app/templates/server/src/graphql/index.js +++ b/.baker/generators/app/templates/server/src/api/index.js @@ -15,4 +15,4 @@ export default { app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' })); } }, -}; \ No newline at end of file +}; diff --git a/.baker/generators/app/templates/server/src/api/schema.js b/.baker/generators/app/templates/server/src/api/schema.js new file mode 100644 index 0000000..36af0b0 --- /dev/null +++ b/.baker/generators/app/templates/server/src/api/schema.js @@ -0,0 +1,28 @@ +import { mergeStrings } from 'gql-merge'; +import { makeExecutableSchema } from 'graphql-tools'; +import { merge } from 'lodash'; + +const schemas = [ +]; + +const resolvers = [ +]; + +const rootDeclarations = ` +schema { + query: Query + mutation: Mutation +} +`; + +const rootSchema = mergeStrings([ + ...schemas, + rootDeclarations +]); + +const schema = makeExecutableSchema({ + typeDefs: rootSchema, + resolvers: merge.apply(this, resolvers) +}); + +export default schema; diff --git a/.baker/generators/app/templates/server/src/api/todo/model.js b/.baker/generators/app/templates/server/src/api/todo/model.js deleted file mode 100644 index 8431461..0000000 --- a/.baker/generators/app/templates/server/src/api/todo/model.js +++ /dev/null @@ -1,5 +0,0 @@ -import Parse from 'parse/node'; - -const Todo = Parse.Object.extend('Todo'); - -export default Todo; diff --git a/.baker/generators/app/templates/server/src/api/todo/resolver.js b/.baker/generators/app/templates/server/src/api/todo/resolver.js deleted file mode 100644 index d5313f2..0000000 --- a/.baker/generators/app/templates/server/src/api/todo/resolver.js +++ /dev/null @@ -1,49 +0,0 @@ -import Parse from 'parse/node'; -import Todo from './model'; - -export default { - Todo: { - text: (root) => root.get('text'), - isComplete: (root) => root.get('isComplete'), - createdAt: (root) => root.get('createdAt').getTime(), - }, - Query: { - todos(root, { isComplete }, { Query, user }) { - const query = new Query(Todo); - - if (typeof isComplete !== 'undefined') { - query.equalTo('isComplete', isComplete); - } - - if (user) { - query.equalTo('user', user); - } - - return query.find(); - }, - }, - Mutation: { - addTodo(_, { text }, { Query, user }) { - const newTodo = new Query(Todo).create({ isComplete: false, text, user }); - if (user) { - newTodo.setACL(new Parse.ACL(user)); - } - return newTodo.save().then(td => td); - }, - - deleteTodo(_, { id }, { Query }) { - return new Query(Todo).get(id).then((todo) => { - if (todo) { - todo.destroy(); - } - return todo; - }); - }, - - toggleTodoCompletion(_, { id }, { Query }) { - return new Query(Todo).get(id).then((todo) => { - return todo.save({ isComplete: !todo.get('isComplete') }).then(td => td); - }); - }, - }, -}; diff --git a/.baker/generators/app/templates/server/src/graphql/schema.js b/.baker/generators/app/templates/server/src/graphql/schema.js deleted file mode 100644 index 49a6bd4..0000000 --- a/.baker/generators/app/templates/server/src/graphql/schema.js +++ /dev/null @@ -1,10 +0,0 @@ -import { makeExecutableSchema } from 'graphql-tools'; -import TodoSchema from '../api/todo/schema'; -import TodoResolvers from '../api/todo/resolver'; - -const schema = makeExecutableSchema({ - typeDefs: [TodoSchema], - resolvers: TodoResolvers, -}); - -export default schema; diff --git a/.baker/generators/app/templates/server/src/index.js b/.baker/generators/app/templates/server/src/index.js index 65b17a6..5a43176 100644 --- a/.baker/generators/app/templates/server/src/index.js +++ b/.baker/generators/app/templates/server/src/index.js @@ -2,7 +2,7 @@ import express from 'express'; import packageJSON from '../package'; -import graphql from './graphql'; +import api from './api'; import parseServer from './parse-server'; function loadSettings() { @@ -22,7 +22,7 @@ const app = express(); const serverPort = process.env.PORT || settings.serverPort; parseServer.setup(app, packageJSON.name, settings); -graphql.setup(app); +api.setup(app); app.listen(serverPort, () => { // eslint-disable-next-line no-console diff --git a/.baker/generators/model/index.js b/.baker/generators/model/index.js index 354d05b..a63a365 100644 --- a/.baker/generators/model/index.js +++ b/.baker/generators/model/index.js @@ -34,12 +34,13 @@ module.exports = BaseGenerator.extend({ writing: { serverModel() { - this.template('server/models/index.js.hbs', - `${this.serverDirectory}/src/models/${this.modelName}.js`); + this.template('server/models/model.js.hbs', `${this.serverDirectory}/src/api/${this.modelName}/model.js`); + this.template('server/models/resolver.js.hbs', `${this.serverDirectory}/src/api/${this.modelName}/resolver.js`); + this.template('server/models/schema.js.hbs', `${this.serverDirectory}/src/api/${this.modelName}/schema.js`); }, updateGraphQLSchemaFile() { - const graphQLSchemaModulePath = `${this.serverDirectory}/src/graphql/schema.js`; + const graphQLSchemaModulePath = `${this.serverDirectory}/src/api/schema.js`; let schemaModuleContent; let schemaModule; @@ -53,11 +54,11 @@ module.exports = BaseGenerator.extend({ schemaModule = this.parseJSSource(schemaModuleContent); } catch (e) { const path = this.destinationPath(graphQLSchemaModulePath); - this.env.error(`There seems to be an issue with your reducers module (${path})`, e); + this.env.error(`There seems to be an issue with your schema module (${path})`, e); return; } - // add import statement for the new model + // add import statements for the new model: include schema + resolvers schemaModule.body = [{ type: 'ImportDeclaration', specifiers: [ @@ -65,78 +66,71 @@ module.exports = BaseGenerator.extend({ type: 'ImportDefaultSpecifier', local: { type: 'Identifier', - name: `${this.modelName}`, + name: `${this.modelName}Schema`, }, imported: { type: 'Identifier', - name: `${this.modelName}`, + name: `${this.modelName}Schema`, }, }, ], source: { type: 'Literal', - value: `../models/${this.modelName}`, - raw: `'../models/${this.modelName}'`, + value: `./${this.modelName}/schema`, + raw: `'./${this.modelName}/schema'`, + }, + }, { + type: 'ImportDeclaration', + specifiers: [ + { + type: 'ImportDefaultSpecifier', + local: { + type: 'Identifier', + name: `${this.modelName}Resolvers`, + }, + imported: { + type: 'Identifier', + name: `${this.modelName}Resolvers`, + }, + }, + ], + source: { + type: 'Literal', + value: `./${this.modelName}/resolver`, + raw: `'./${this.modelName}/resolver'`, }, }, ...schemaModule.body]; // include schema of a newly created model in graphql/schema module const queriesDeclaration = schemaModule.body.find( i => i.type === 'VariableDeclaration' && i.declarations && - i.declarations[0] && i.declarations[0].id.name === 'queries' + i.declarations[0] && i.declarations[0].id.name === 'schemas' ); if (!queriesDeclaration) { // eslint-disable-next-line max-len - this.env.error(`Your ${this.serverDirectory}/src/graphql/schema.js module is missing queries const`); + this.env.error(`Your ${this.serverDirectory}/src/api/schema.js module is missing schemas const`); } - queriesDeclaration.declarations[0].init.properties.push({ - type: 'Property', - key: { - type: 'Identifier', - name: changeCase.camelCase(this.modelName), - }, - computed: false, - value: { - type: 'MemberExpression', - computed: false, - object: { - type: 'Identifier', - name: this.modelName, - }, - property: { - type: 'Identifier', - name: 'RootQuery', - }, - }, - kind: 'init', - method: false, - shorthand: false, + queriesDeclaration.declarations[0].init.elements.push({ + type: 'Identifier', + name: `${this.modelName}Schema` }); - // include mutations of a newly created model in graphql/schema module - const mutationsDeclaration = schemaModule.body.find( + // include resolvers of a newly created model in graphql/schema module + const resolversDeclaration = schemaModule.body.find( i => i.type === 'VariableDeclaration' && i.declarations && - i.declarations[0] && i.declarations[0].id.name === 'mutations' + i.declarations[0] && i.declarations[0].id.name === 'resolvers' ); - if (!mutationsDeclaration) { + if (!resolversDeclaration) { // eslint-disable-next-line max-len - this.env.error(`Your ${this.serverDirectory}/src/graphql/schema.js module is missing mutations const`); + this.env.error(`Your ${this.serverDirectory}/src/api/schema.js module is missing resolvers const`); } - mutationsDeclaration.declarations[0].init.elements.push({ - type: 'MemberExpression', - computed: false, - object: { - type: 'Identifier', - name: this.modelName, - }, - property: { - type: 'Identifier', - name: 'Mutations', - }, + resolversDeclaration.declarations[0].init.elements.push({ + type: 'Identifier', + name: `${this.modelName}Resolvers` }); try { diff --git a/.baker/generators/model/templates/schema.js.hbs b/.baker/generators/model/templates/schema.js.hbs index ec8ec0b..f0a33f9 100644 --- a/.baker/generators/model/templates/schema.js.hbs +++ b/.baker/generators/model/templates/schema.js.hbs @@ -1,34 +1,22 @@ -/* eslint comma-dangle: "off", prefer-template: "off", eol-last: "off" */ -import { - GraphQLObjectType, - GraphQLSchema, -} from 'graphql'; -import assert from 'assert'; - -const queries = {}; -const mutations = []; - -// XX: check for duplicate mutation declarations -// accross different models -function checkForDuplicates(listOfMutations) { - const existingMutations = []; - listOfMutations.forEach(ms => Object.keys(ms).forEach(m => { - assert(existingMutations.indexOf(m) === -1, 'Duplicate mutation declaration:' + m); - existingMutations.push(m); - })); +import { mergeStrings } from 'gql-merge'; +import { makeExecutableSchema } from 'graphql-tools'; +import { merge } from 'lodash'; +const schemas = [ +]; +const resolvers = [ +]; +const rootDeclarations = ` +schema { + query: Query + mutation: Mutation } -checkForDuplicates(mutations); - -export default new GraphQLSchema({ - query: new GraphQLObjectType({ - name: 'Query', - fields: queries - }), - mutation: new GraphQLObjectType({ - name: 'Mutation', - fields: Object.assign.apply(this, [ - {}, - ...mutations - ]) - }) +`; +const rootSchema = mergeStrings([ + ...schemas, + rootDeclarations +]); +const schema = makeExecutableSchema({ + typeDefs: rootSchema, + resolvers: merge.apply(this, resolvers) }); +export default schema; diff --git a/.baker/generators/model/templates/server/models/index.js.hbs b/.baker/generators/model/templates/server/models/index.js.hbs deleted file mode 100644 index a711d8b..0000000 --- a/.baker/generators/model/templates/server/models/index.js.hbs +++ /dev/null @@ -1,71 +0,0 @@ -import Parse from 'parse/node'; -import { - GraphQLID, - GraphQLObjectType, - GraphQLString, - GraphQLNonNull, - GraphQLList, -} from 'graphql'; - - -const {{modelName}} = Parse.Object.extend('{{modelName}}'); - -const {{modelName}}Type = new GraphQLObjectType({ - name: '{{modelName}}', - description: 'A concise description of what {{modelName}} is', - fields: () => ({ - id: { - type: GraphQLID, - }, - // XX: you should probably replace this with something - // relevant to your model - text: { - type: GraphQLString, - resolve: {{camelCase modelName}} => {{camelCase modelName}}.get('text'), - }, - // more field defs here - }), -}); - -{{modelName}}.SchemaType = {{modelName}}Type; - -{{modelName}}.RootQuery = { - type: new GraphQLList({{modelName}}.SchemaType), - resolve: (_, args, { Query }) => { - const query = new Query({{modelName}}); - return query.find(); - }, -}; - -{{modelName}}.Mutations = { - add{{modelName}}: { - type: {{modelName}}.SchemaType, - description: 'Create a new instance of {{modelName}}', - args: { - text: { type: new GraphQLNonNull(GraphQLString) }, - }, - resolve: (_, { text }, { Query, user }) => { - const {{camelCase modelName}} = new Query({{modelName}}).create({ text }); - if (user) { - {{camelCase modelName}}.setACL(new Parse.ACL(user)); - } - return {{camelCase modelName}}.save().then(td => td); - }, - }, - delete{{modelName}}: { - type: {{modelName}}.SchemaType, - description: 'Delete an instance of {{modelName}}', - args: { - id: { type: new GraphQLNonNull(GraphQLID) }, - }, - resolve: (_, { id }, { Query }) => - new Query({{modelName}}).get(id).then(({{camelCase modelName}}) => { - if ({{camelCase modelName}}) { - return {{camelCase modelName}}.destroy(); - } - return {{camelCase modelName}}; - }), - }, -}; - -export default {{modelName}}; diff --git a/.baker/generators/model/templates/server/models/model.js.hbs b/.baker/generators/model/templates/server/models/model.js.hbs new file mode 100644 index 0000000..90c35e7 --- /dev/null +++ b/.baker/generators/model/templates/server/models/model.js.hbs @@ -0,0 +1,5 @@ +import Parse from 'parse/node'; + +const {{modelName}} = Parse.Object.extend('{{modelName}}'); + +export default {{modelName}}; diff --git a/.baker/generators/model/templates/server/models/resolver.js.hbs b/.baker/generators/model/templates/server/models/resolver.js.hbs new file mode 100644 index 0000000..1cf815c --- /dev/null +++ b/.baker/generators/model/templates/server/models/resolver.js.hbs @@ -0,0 +1,32 @@ +import Parse from 'parse/node'; +import {{modelName}} from './model'; + +export default { + {{modelName}}: { + text: (root) => root.get('text'), + }, + Query: { + {{camelCase modelName}}s(root, _, { Query, user }) { + const query = new Query({{modelName}}); + return query.find(); + }, + }, + Mutation: { + add{{modelName}}(_, { text }, { Query, user }) { + const {{camelCase modelName}} = new Query({{modelName}}).create({ text }); + if (user) { + {{camelCase modelName}}.setACL(new Parse.ACL(user)); + } + return {{camelCase modelName}}.save().then({{camelCase modelName}} => {{camelCase modelName}}); + }, + + delete{{modelName}}(_, { id }, { Query }) { + return new Query({{modelName}}).get(id).then({{camelCase modelName}} => { + if ({{camelCase modelName}}) { + {{camelCase modelName}}.destroy(); + } + return {{camelCase modelName}}; + }); + }, + }, +}; diff --git a/.baker/generators/model/templates/server/models/schema.js.hbs b/.baker/generators/model/templates/server/models/schema.js.hbs new file mode 100644 index 0000000..4c12d5e --- /dev/null +++ b/.baker/generators/model/templates/server/models/schema.js.hbs @@ -0,0 +1,19 @@ +export default ` +type {{modelName}} { + id: ID! + text: String! +} +# the schema allows the following query: +type Query { + {{camelCase modelName}}s: [{{modelName}}] +} +# this schema allows the following mutation: +type Mutation { + add{{modelName}} ( + text: String! + ): {{modelName}} + delete{{modelName}} ( + id: ID! + ): {{modelName}} +} +`; \ No newline at end of file diff --git a/.baker/generators/test/tests/app.js b/.baker/generators/test/tests/app.js index a06cb1f..5a351c9 100644 --- a/.baker/generators/test/tests/app.js +++ b/.baker/generators/test/tests/app.js @@ -187,9 +187,8 @@ describe('generator-rn:app', () => { 'server/src/index.js', 'server/package.json', 'server/Procfile', - 'server/src/graphql/index.js', - 'server/src/graphql/schema.js', - 'server/src/models/Example.js', + 'server/src/api/index.js', + 'server/src/api/schema.js', 'server/src/parse-server/index.js', 'server/public/images/logo.png', 'server/tests/.eslintrc', diff --git a/.baker/generators/test/tests/model.js b/.baker/generators/test/tests/model.js index 00bc096..c1f9b5b 100644 --- a/.baker/generators/test/tests/model.js +++ b/.baker/generators/test/tests/model.js @@ -23,25 +23,31 @@ describe('generator-rn:model', () => { .on('end', done); }); - it('creates a model file in server/src/models directory', () => { + it('creates model, resolver and schema modules for the model', () => { assert.file([ - `${serverDirectory}/src/models/Todo.js`, + `${serverDirectory}/src/api/${modelName}/model.js`, + `${serverDirectory}/src/api/${modelName}/resolver.js`, + `${serverDirectory}/src/api/${modelName}/schema.js` ]); }); - it('imports newly created model in server/src/graphql/schema module', () => { - assert.fileContent(`${serverDirectory}/src/graphql/schema.js`, - `import ${modelName} from '../models/${modelName}';` + it('imports newly created model schema and resolvers in server/src/api/schema module', () => { + const module = `${serverDirectory}/src/api/schema.js`; + assert.fileContent(module, + `import ${modelName}Schema from './${modelName}/schema';` + ); + assert.fileContent(module, + `import ${modelName}Resolvers from './${modelName}/resolver';` ); }); - it('references new model\'s root query in server/src/graphql/schema module', () => { - assert.fileContent(`${serverDirectory}/src/graphql/schema.js`, 'todo: Todo.RootQuery'); + it('references new model\'s schema in server/src/api/schema module', () => { + assert.fileContent(`${serverDirectory}/src/api/schema.js`, `${modelName}Schema`); }); - it('references new model\'s mutations in server/src/graphql/schema module', () => { - assert.fileContent(`${serverDirectory}/src/graphql/schema.js`, - `${modelName}.Mutations` + it('references new model\'s resolvers in server/src/api/schema module', () => { + assert.fileContent(`${serverDirectory}/src/api/schema.js`, + `${modelName}Resolvers` ); }); }); From fccb4d9bf5b7810b343c3d58e00af6080cc66018 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Mon, 5 Dec 2016 11:56:10 +0000 Subject: [PATCH 04/11] update app setup to support apollo --- .../generators/app/templates/package.json.hbs | 7 ++-- .baker/generators/app/templates/src/setup.js | 6 ++- .../app/templates/src/state/apollo.js | 37 +++++++++++++++++++ .../app/templates/src/state/auth.js | 9 +++++ .../app/templates/src/state/index.js | 3 +- .../app/templates/src/state/reducers.js | 4 +- .baker/generators/test/tests/app.js | 2 + 7 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 .baker/generators/app/templates/src/state/apollo.js create mode 100644 .baker/generators/app/templates/src/state/auth.js diff --git a/.baker/generators/app/templates/package.json.hbs b/.baker/generators/app/templates/package.json.hbs index 1bef0dc..89707bb 100644 --- a/.baker/generators/app/templates/package.json.hbs +++ b/.baker/generators/app/templates/package.json.hbs @@ -10,15 +10,16 @@ "scripts": { }, "dependencies": { - "immutable": "^3.8.1", + "apollo-client": "^0.5.7", + "graphql-tag": "^1.0.0", + "lodash": "^4.17.2", "parse": "1.9.2", - "parse-graphql-client": "^0.2.0", "react": "~15.4.1", + "react-apollo": "^0.6.0", "react-native": "^0.38.0", "react-native-navigation-redux-helpers": "^0.5.0", "react-redux": "^4.4.5", "redux": "^3.5.2", - "redux-immutable": "^3.0.6", "redux-saga": "^0.13.0", "reselect": "^2.4.0" }, diff --git a/.baker/generators/app/templates/src/setup.js b/.baker/generators/app/templates/src/setup.js index 67db410..4cdd5a0 100644 --- a/.baker/generators/app/templates/src/setup.js +++ b/.baker/generators/app/templates/src/setup.js @@ -2,6 +2,8 @@ import React, { Component } from 'react'; import { Provider } from 'react-redux'; import App from './components/App'; import configureStore from './state'; +import { ApolloProvider } from 'react-apollo'; +import apollo from './state/apollo'; const store = configureStore(); @@ -9,9 +11,9 @@ function setup() { class Root extends Component { render() { return ( - + - + ); } } diff --git a/.baker/generators/app/templates/src/state/apollo.js b/.baker/generators/app/templates/src/state/apollo.js new file mode 100644 index 0000000..4e999e0 --- /dev/null +++ b/.baker/generators/app/templates/src/state/apollo.js @@ -0,0 +1,37 @@ +/* eslint no-param-reassign: off, no-underscore-dangle: off */ + +import ApolloClient, { createNetworkInterface } from 'apollo-client'; +import { getCurrentUser } from './auth'; +import Settings from '../settings'; + +const settings = Settings.load(); +const networkInterface = createNetworkInterface({ uri: settings.graphqlURL }); + +networkInterface.use([{ + applyMiddleware(req, next) { + if (!req.options.headers) { + req.options.headers = {}; // Create the header object if needed. + } + + getCurrentUser().then(user => { + req.options.headers.authorization = user && user.getSessionToken(); + next(); + }, error => { + next(); + }); + }, +}]); + +const client = new ApolloClient({ + networkInterface, + dataIdFromObject: (result) => { + if (result.id && result.__typename) { + return result.__typename + result.id; + } + + // Make sure to return null if this object doesn't have an ID + return null; + }, +}); + +export default client; diff --git a/.baker/generators/app/templates/src/state/auth.js b/.baker/generators/app/templates/src/state/auth.js new file mode 100644 index 0000000..7576ae8 --- /dev/null +++ b/.baker/generators/app/templates/src/state/auth.js @@ -0,0 +1,9 @@ +import Parse from 'parse/react-native'; + +export function getCurrentUser() { + return Parse.User.currentAsync().then(currentUser => { + if (currentUser) { + return currentUser; + } + }, error => error); +} diff --git a/.baker/generators/app/templates/src/state/index.js b/.baker/generators/app/templates/src/state/index.js index a238c47..1bfca50 100644 --- a/.baker/generators/app/templates/src/state/index.js +++ b/.baker/generators/app/templates/src/state/index.js @@ -1,5 +1,4 @@ import { createStore, compose, applyMiddleware } from 'redux'; -import { fromJS } from 'immutable'; import createSagaMiddleware from 'redux-saga'; import devTools from 'remote-redux-devtools'; import Parse from 'parse/react-native'; @@ -14,7 +13,7 @@ Parse.serverURL = settings.parseServerURL; const sagaMiddleware = createSagaMiddleware(); -function configureStore(initialState = fromJS({})) { +function configureStore(initialState = {}) { const enhancers = [ applyMiddleware(sagaMiddleware), ]; diff --git a/.baker/generators/app/templates/src/state/reducers.js b/.baker/generators/app/templates/src/state/reducers.js index 283909d..5cdce71 100644 --- a/.baker/generators/app/templates/src/state/reducers.js +++ b/.baker/generators/app/templates/src/state/reducers.js @@ -1,11 +1,13 @@ /* eslint-disable object-shorthand, comma-dangle, eol-last, import/imports-first */ -import { combineReducers } from 'redux-immutable'; +import { combineReducers } from 'redux'; +import apollo from './apollo'; // XX: Do not rename this variable if you want reducer generator // to keep working properly (and you do want that, right?) const applicationReducers = { removeThisReducerOnceYouAddALegitOne: () => ({}), + apollo: apollo.reducer(), }; export default function createReducer() { diff --git a/.baker/generators/test/tests/app.js b/.baker/generators/test/tests/app.js index 5a351c9..231689d 100644 --- a/.baker/generators/test/tests/app.js +++ b/.baker/generators/test/tests/app.js @@ -23,6 +23,8 @@ describe('generator-rn:app', () => { const applicationFiles = [ 'app/src/state/index.js', 'app/src/state/action-types.js', + 'app/src/state/apollo.js', + 'app/src/state/auth.js', 'app/src/state/reducers.js', 'app/src/settings.js', 'app/src/setup.js', From 7d5eff32022645c0210ed3eee6bda61771eeb1d7 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Mon, 5 Dec 2016 15:43:06 +0000 Subject: [PATCH 05/11] generate client side modules for models --- .../generators/app/templates/package.json.hbs | 1 + .baker/generators/model/index.js | 6 ++ .../model/templates/app/fragments.js.hbs | 8 ++ .../model/templates/app/mutations.js.hbs | 76 +++++++++++++++++++ .../model/templates/app/queries.js.hbs | 19 +++++ .baker/generators/test/tests/model.js | 8 ++ 6 files changed, 118 insertions(+) create mode 100644 .baker/generators/model/templates/app/fragments.js.hbs create mode 100644 .baker/generators/model/templates/app/mutations.js.hbs create mode 100644 .baker/generators/model/templates/app/queries.js.hbs diff --git a/.baker/generators/app/templates/package.json.hbs b/.baker/generators/app/templates/package.json.hbs index 89707bb..01128df 100644 --- a/.baker/generators/app/templates/package.json.hbs +++ b/.baker/generators/app/templates/package.json.hbs @@ -15,6 +15,7 @@ "lodash": "^4.17.2", "parse": "1.9.2", "react": "~15.4.1", + "react-addons-update": "^15.4.1", "react-apollo": "^0.6.0", "react-native": "^0.38.0", "react-native-navigation-redux-helpers": "^0.5.0", diff --git a/.baker/generators/model/index.js b/.baker/generators/model/index.js index a63a365..322c73b 100644 --- a/.baker/generators/model/index.js +++ b/.baker/generators/model/index.js @@ -39,6 +39,12 @@ module.exports = BaseGenerator.extend({ this.template('server/models/schema.js.hbs', `${this.serverDirectory}/src/api/${this.modelName}/schema.js`); }, + clienModel() { + this.template('app/fragments.js.hbs', `${this.appDirectory}/src/state/${this.modelName}/fragments.js`); + this.template('app/mutations.js.hbs', `${this.appDirectory}/src/state/${this.modelName}/mutations.js`); + this.template('app/queries.js.hbs', `${this.appDirectory}/src/state/${this.modelName}/queries.js`); + }, + updateGraphQLSchemaFile() { const graphQLSchemaModulePath = `${this.serverDirectory}/src/api/schema.js`; let schemaModuleContent; diff --git a/.baker/generators/model/templates/app/fragments.js.hbs b/.baker/generators/model/templates/app/fragments.js.hbs new file mode 100644 index 0000000..1ddb76d --- /dev/null +++ b/.baker/generators/model/templates/app/fragments.js.hbs @@ -0,0 +1,8 @@ +import gql from 'graphql-tag'; + +export const {{modelName}}Fields = gql` + fragment {{modelName}}Fields on {{modelName}} { + id + text + } +`; diff --git a/.baker/generators/model/templates/app/mutations.js.hbs b/.baker/generators/model/templates/app/mutations.js.hbs new file mode 100644 index 0000000..33686ba --- /dev/null +++ b/.baker/generators/model/templates/app/mutations.js.hbs @@ -0,0 +1,76 @@ +import update from 'react-addons-update'; +import { graphql } from 'react-apollo'; +import gql from 'graphql-tag'; +import { {{modelName}}Fields } from './fragments'; + +function updateQueryAfterCreate(prev, { mutationResult }) { + const new{{modelName}} = mutationResult.data.add{{modelName}}; + return update(prev, { + {{camelCase modelName}}s: { + $unshift: [new{{modelName}}], + }, + }); +} + +const add{{modelName}}Mutation = gql` + mutation add{{modelName}}($text: String!) { + add{{modelName}}(text: $text) { + ...{{modelName}}Fields + } + } + ${ {{modelName}}Fields } +`; + +export const withAdd{{modelName}} = graphql(add{{modelName}}Mutation, { + props: ({ mutate }) => ({ + add{{modelName}}: ({ text }) => mutate({ + variables: { text }, + optimisticResponse: { + __typename: 'Mutation', + add{{modelName}}: { + __typename: '{{modelName}}', + id: Math.floor(Math.random() * 1000).toString(), + text, + }, + }, + updateQueries: { + all{{modelName}}s: updateQueryAfterCreate, + }, + }), + }), +}); + +function updateQueryAfterDelete(prev, { mutationResult }) { + const deleted{{modelName}} = mutationResult.data.delete{{modelName}}; + return update(prev, { + {{camelCase modelName}}s: { + $set: prev.{{camelCase modelName}}s.filter(t => t.id !== deleted{{modelName}}.id), + }, + }); +} + +const delete{{modelName}}Mutation = gql` + mutation delete{{modelName}}($id: ID!) { + delete{{modelName}}(id: $id) { + ...{{modelName}}Fields + } + } + ${ {{modelName}}Fields } +`; + +export const withDelete{{modelName}} = graphql(delete{{modelName}}Mutation, { + props: ({ mutate }) => ({ + delete{{modelName}}: ({ {{camelCase modelName}} }) => mutate({ + variables: { id: {{camelCase modelName}}.id }, + optimisticResponse: { + __typename: 'Mutation', + delete{{modelName}}: Object.assign({ + __typename: '{{modelName}}', + }, {{camelCase modelName}}), + }, + updateQueries: { + all{{modelName}}s: updateQueryAfterDelete, + }, + }), + }), +}); diff --git a/.baker/generators/model/templates/app/queries.js.hbs b/.baker/generators/model/templates/app/queries.js.hbs new file mode 100644 index 0000000..03960d5 --- /dev/null +++ b/.baker/generators/model/templates/app/queries.js.hbs @@ -0,0 +1,19 @@ +import { graphql } from 'react-apollo'; +import gql from 'graphql-tag'; +import { {{modelName}}Fields } from './fragments'; + +const all{{modelName}}sQuery = gql` + query all{{modelName}} { + {{camelCase modelName}}s { ...{{modelName}}Fields } + } + ${ {{modelName}}Fields } +`; + +const basicQueryConfig = { + props: ({ data: { loading, {{camelCase modelName}}s } }) => ({ + loading, + {{camelCase modelName}}s, + }), +}; + +export const withAll{{modelName}}s = graphql(all{{modelName}}sQuery, basicQueryConfig); diff --git a/.baker/generators/test/tests/model.js b/.baker/generators/test/tests/model.js index c1f9b5b..937bfdb 100644 --- a/.baker/generators/test/tests/model.js +++ b/.baker/generators/test/tests/model.js @@ -31,6 +31,14 @@ describe('generator-rn:model', () => { ]); }); + it('creates fragments, mutations and queries modules for the model in the app state directory', () => { + assert.file([ + `${appDirectory}/src/state/${modelName}/fragments.js`, + `${appDirectory}/src/state/${modelName}/mutations.js`, + `${appDirectory}/src/state/${modelName}/queries.js` + ]); + }); + it('imports newly created model schema and resolvers in server/src/api/schema module', () => { const module = `${serverDirectory}/src/api/schema.js`; assert.fileContent(module, From ff19b7a54e03d683eff2d997e5b78eb9abca880a Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Sun, 5 Mar 2017 19:52:07 +0000 Subject: [PATCH 06/11] update server settings --- .../generators/app/templates/server/package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.baker/generators/app/templates/server/package.json b/.baker/generators/app/templates/server/package.json index a3ea478..ac39626 100644 --- a/.baker/generators/app/templates/server/package.json +++ b/.baker/generators/app/templates/server/package.json @@ -16,18 +16,18 @@ "body-parser": "^1.15.2", "express": "^4.13.4", "gql-merge": "0.0.4", - "graphql": "^0.6.2", - "graphql-server-express": "^0.4.3", - "graphql-tools": "^0.8.3", + "graphql": "^0.7.2", + "graphql-server-express": "^0.6.0", + "graphql-tools": "^0.10.0", "lodash": "^4.17.2", "parse": "1.9.2", - "parse-dashboard": "^1.0.13", + "parse-dashboard": "^1.0.22", "parse-graphql-server": "git://github.com/bakery/parse-graphql-server.git#feature/apollo", - "parse-server": "^2.2.25-beta.1" + "parse-server": "^2.3.1", }, "devDependencies": { - "babel-jest": "^17.0.0", - "babel-polyfill": "^6.16.0", - "jest": "^17.0.0" + "babel-jest": "^18.0.0", + "babel-polyfill": "^6.20.0", + "jest": "^18.1.0" } } \ No newline at end of file From fcd902342e112b0a48e338cce2fa3a5744a19550 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Wed, 19 Apr 2017 16:29:42 +0100 Subject: [PATCH 07/11] upgrade to RN 43 --- .baker/generators/app/templates/package.json.hbs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.baker/generators/app/templates/package.json.hbs b/.baker/generators/app/templates/package.json.hbs index 01128df..213ec7b 100644 --- a/.baker/generators/app/templates/package.json.hbs +++ b/.baker/generators/app/templates/package.json.hbs @@ -13,11 +13,11 @@ "apollo-client": "^0.5.7", "graphql-tag": "^1.0.0", "lodash": "^4.17.2", - "parse": "1.9.2", - "react": "~15.4.1", + "parse": "git+https://github.com/bakery/Parse-SDK-JS.git#release-1.10", + "react": "16.0.0-alpha.6", "react-addons-update": "^15.4.1", "react-apollo": "^0.6.0", - "react-native": "^0.38.0", + "react-native": "0.43.0", "react-native-navigation-redux-helpers": "^0.5.0", "react-redux": "^4.4.5", "redux": "^3.5.2", From e06eb291480cad72b716d71fe0fe978f7caf64a9 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Wed, 19 Apr 2017 18:04:08 +0100 Subject: [PATCH 08/11] update deps --- .baker/generators/app/templates/package.json.hbs | 16 ++++++++-------- .../generators/app/templates/server/package.json | 16 ++++++++-------- package.json | 14 +++++++------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.baker/generators/app/templates/package.json.hbs b/.baker/generators/app/templates/package.json.hbs index 213ec7b..0821c4d 100644 --- a/.baker/generators/app/templates/package.json.hbs +++ b/.baker/generators/app/templates/package.json.hbs @@ -10,23 +10,23 @@ "scripts": { }, "dependencies": { - "apollo-client": "^0.5.7", - "graphql-tag": "^1.0.0", + "apollo-client": "^1.0.3", + "graphql-tag": "^2.0.0", "lodash": "^4.17.2", "parse": "git+https://github.com/bakery/Parse-SDK-JS.git#release-1.10", "react": "16.0.0-alpha.6", "react-addons-update": "^15.4.1", - "react-apollo": "^0.6.0", - "react-native": "0.43.0", + "react-apollo": "^1.0.1", + "react-native": "^0.43.3", "react-native-navigation-redux-helpers": "^0.5.0", - "react-redux": "^4.4.5", + "react-redux": "^5.0.4", "redux": "^3.5.2", - "redux-saga": "^0.13.0", - "reselect": "^2.4.0" + "redux-saga": "^0.14.6", + "reselect": "^3.0.0" }, "devDependencies": { "babel-register": "^6.9.0", "react-dom": "^15.2.1", "remote-redux-devtools": "^0.5.3" } -} \ No newline at end of file +} diff --git a/.baker/generators/app/templates/server/package.json b/.baker/generators/app/templates/server/package.json index ac39626..5160e74 100644 --- a/.baker/generators/app/templates/server/package.json +++ b/.baker/generators/app/templates/server/package.json @@ -15,19 +15,19 @@ "dependencies": { "body-parser": "^1.15.2", "express": "^4.13.4", - "gql-merge": "0.0.4", - "graphql": "^0.7.2", - "graphql-server-express": "^0.6.0", - "graphql-tools": "^0.10.0", + "gql-merge": "^0.0.6", + "graphql": "^0.9.3", + "graphql-server-express": "^0.7.1", + "graphql-tools": "^0.11.0", "lodash": "^4.17.2", "parse": "1.9.2", "parse-dashboard": "^1.0.22", "parse-graphql-server": "git://github.com/bakery/parse-graphql-server.git#feature/apollo", - "parse-server": "^2.3.1", + "parse-server": "^2.3.1" }, "devDependencies": { - "babel-jest": "^18.0.0", + "babel-jest": "^19.0.0", "babel-polyfill": "^6.20.0", - "jest": "^18.1.0" + "jest": "^19.0.2" } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 42bc72a..10fe836 100644 --- a/package.json +++ b/package.json @@ -35,16 +35,16 @@ "devDependencies": { "baker-scripts": "*", "mobile-icon-resizer": "git://github.com/bakery/mobile-icon-resizer.git", - "change-case": "^3.0.0", - "escodegen": "^1.8.0", - "esprima": "^3.1.1", - "fs-extra": "^1.0.0", - "handlebars": "^4.0.5", - "lodash": "^4.11.1", + "change-case": "^3.0.1", + "escodegen": "^1.8.1", + "esprima": "^3.1.3", + "fs-extra": "^2.1.2", + "handlebars": "^4.0.6", + "lodash": "^4.17.4", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "mockery": "^2.0.0", - "shelljs": "^0.7.5", + "shelljs": "^0.7.7", "yeoman-assert": "^2.2.1", "yeoman-environment": "^1.6.1", "yeoman-generator": "^0.24.1", From 9417097666691e3449dcbf560c5741e1cb83ea68 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Wed, 19 Apr 2017 18:04:35 +0100 Subject: [PATCH 09/11] update yarn lock --- yarn.lock | 1132 ++++++++++------------------------------------------- 1 file changed, 208 insertions(+), 924 deletions(-) diff --git a/yarn.lock b/yarn.lock index ac575e1..f23720f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,5 +1,7 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + abbrev@1: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -92,12 +94,6 @@ aproba@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" -archive-type@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" - dependencies: - file-type "^3.1.0" - are-we-there-yet@~1.0.0: version "1.0.6" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz#a2d28c93102aa6cc96245a26cb954de06ec53f0c" @@ -146,7 +142,7 @@ array-union@^1.0.1: dependencies: array-uniq "^1.0.1" -array-uniq@^1.0.1, array-uniq@^1.0.2: +array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -188,11 +184,15 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^0.2.10, async@~0.2.6, async@~0.2.9, async@0.2.x: +async@0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.9.tgz#df63060fbf3d33286a76aaf6d55a2986d9ff8619" + +async@0.2.x, async@^0.2.10, async@~0.2.6, async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" -async@^1.4.0, async@^1.4.2, async@^1.5.0, async@~1.5.0: +async@^1.4.0, async@^1.5.0, async@~1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -202,10 +202,6 @@ async@^2.0.0: dependencies: lodash "^4.14.0" -async@0.2.9: - version "0.2.9" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.9.tgz#df63060fbf3d33286a76aaf6d55a2986d9ff8619" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -806,10 +802,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - binary-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" @@ -821,20 +813,10 @@ binary-extensions@^1.0.0: buffers "~0.1.1" chainsaw "~0.1.0" -binaryextensions@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-1.0.1.tgz#1e637488b35b58bda5f4774bf96a5212a8c90755" - "binaryextensions@1 || 2": version "2.0.0" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.0.0.tgz#e597d1a7a6a3558a2d1c7241a16c99965e6aa40f" -bl@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" - dependencies: - readable-stream "~2.0.5" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -884,23 +866,10 @@ bson@~0.5.4, bson@~0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/bson/-/bson-0.5.6.tgz#e03de80a692c28fca4396f0d14c97069bd2b73a6" -buffer-crc32@~0.2.3: - version "0.2.5" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.5.tgz#db003ac2671e62ebd6ece78ea2c2e1b405736e91" - buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" -buffer-to-vinyl@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" - dependencies: - file-type "^3.1.0" - readable-stream "^2.0.2" - uuid "^2.0.1" - vinyl "^1.0.0" - buffers@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" @@ -949,15 +918,6 @@ caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" -caw@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" - dependencies: - get-proxy "^1.0.1" - is-obj "^1.0.0" - object-assign "^3.0.0" - tunnel-agent "^0.4.0" - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -989,9 +949,9 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -change-case@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.0.tgz#6c9c8e35f8790870a82b6b0745be8c3cbef9b081" +change-case@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.1.tgz#ee5f5ad0415ad1ad9e8072cf49cd4cfa7660a554" dependencies: camel-case "^3.0.0" constant-case "^2.0.0" @@ -1092,10 +1052,6 @@ clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - clone@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" @@ -1110,10 +1066,6 @@ co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -co@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" - code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -1132,18 +1084,12 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1, commander@^2.9.0, commander@2.9.0: +commander@2.9.0, commander@^2.8.1, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1183,7 +1129,7 @@ contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -convert-source-map@^1.1.0, convert-source-map@^1.1.1: +convert-source-map@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" @@ -1201,13 +1147,6 @@ create-error-class@^3.0.1: dependencies: capture-stack-trace "^1.0.0" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cross-spawn@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" @@ -1273,18 +1212,18 @@ dateformat@^1.0.11: get-stdin "^4.0.1" meow "^3.3.0" +debug@2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + debug@^2.0.0, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: version "2.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30" dependencies: ms "0.7.2" -debug@~2.2.0, debug@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - decamelize@^1.0.0, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1293,66 +1232,6 @@ decimal.js@5.0.8: version "5.0.8" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-5.0.8.tgz#b48c3fb7d73a2d4d4940e0b38f1cd21db5b367ce" -decompress-tar@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" - dependencies: - is-tar "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-tarbz2@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" - dependencies: - is-bzip2 "^1.0.0" - object-assign "^2.0.0" - seek-bzip "^1.0.3" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-targz@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" - dependencies: - is-gzip "^1.0.0" - object-assign "^2.0.0" - strip-dirs "^1.0.0" - tar-stream "^1.1.1" - through2 "^0.6.1" - vinyl "^0.4.3" - -decompress-unzip@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" - dependencies: - is-zip "^1.0.0" - read-all-stream "^3.0.0" - stat-mode "^0.2.0" - strip-dirs "^1.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - yauzl "^2.2.1" - -decompress@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" - dependencies: - buffer-to-vinyl "^1.0.0" - concat-stream "^1.4.6" - decompress-tar "^3.0.0" - decompress-tarbz2 "^3.0.0" - decompress-targz "^3.0.0" - decompress-unzip "^3.0.0" - stream-combiner2 "^1.1.1" - vinyl-assign "^1.0.1" - vinyl-fs "^2.2.0" - deep-eql@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" @@ -1408,33 +1287,33 @@ detect-newline@^1.0.3: get-stdin "^4.0.1" minimist "^1.1.0" -diff@^2.1.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" - diff@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" +diff@^2.1.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" + docopt@~0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11" -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" +doctrine@1.3.x: + version "1.3.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" dependencies: esutils "^2.0.2" isarray "^1.0.0" -doctrine@1.3.x: - version "1.3.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.3.0.tgz#13e75682b55518424276f7c173783456ef913d26" +doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" dependencies: esutils "^2.0.2" isarray "^1.0.0" -dom-serializer@~0.1.0, dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -1445,14 +1324,10 @@ dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" -domelementtype@~1.1.1: +domelementtype@1, domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" -domelementtype@1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - domhandler@2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" @@ -1489,54 +1364,12 @@ downcache@0.0.8: npmlog "1.0.0" request "^2.34.0" -download@^4.1.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" - dependencies: - caw "^1.0.1" - concat-stream "^1.4.7" - each-async "^1.0.0" - filenamify "^1.0.1" - got "^5.0.0" - gulp-decompress "^1.2.0" - gulp-rename "^1.2.0" - is-url "^1.2.0" - object-assign "^4.0.1" - read-all-stream "^3.0.0" - readable-stream "^2.0.2" - stream-combiner2 "^1.1.1" - vinyl "^1.0.0" - vinyl-fs "^2.2.0" - ware "^1.2.0" - -duplexer2@^0.1.4, duplexer2@~0.1.0: +duplexer2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" dependencies: readable-stream "^2.0.2" -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" - -duplexify@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" - dependencies: - end-of-stream "1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -each-async@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" - dependencies: - onetime "^1.0.0" - set-immediate-shim "^1.0.0" - ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1551,26 +1384,14 @@ ejs@^2.3.1: version "2.5.2" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.2.tgz#21444ba09386f0c65b6eafb96a3d51bcb3be80d1" -end-of-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" - dependencies: - once "~1.3.0" - -end-of-stream@1.0.0: +entities@1.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" - dependencies: - once "~1.3.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - error-ex@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" @@ -1591,14 +1412,6 @@ es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0. es6-iterator "2" es6-symbol "~3.1" -es6-iterator@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-0.1.3.tgz#d6f58b8c4fc413c249b4baa19768f8e4d7c8944e" - dependencies: - d "~0.1.1" - es5-ext "~0.10.5" - es6-symbol "~2.0.1" - es6-iterator@2: version "2.0.0" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" @@ -1607,6 +1420,14 @@ es6-iterator@2: es5-ext "^0.10.7" es6-symbol "3" +es6-iterator@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-0.1.3.tgz#d6f58b8c4fc413c249b4baa19768f8e4d7c8944e" + dependencies: + d "~0.1.1" + es5-ext "~0.10.5" + es6-symbol "~2.0.1" + es6-map@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" @@ -1632,6 +1453,13 @@ es6-set@^0.1.4, es6-set@~0.1.3: es6-symbol "3" event-emitter "~0.3.4" +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-symbol@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-2.0.1.tgz#761b5c67cfd4f1d18afb234f691d678682cb3bf3" @@ -1639,13 +1467,6 @@ es6-symbol@~2.0.1: d "~0.1.1" es5-ext "~0.10.5" -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" - dependencies: - d "~0.1.1" - es5-ext "~0.10.11" - es6-weak-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" @@ -1664,11 +1485,11 @@ es6-weak-map@~0.1.4: es6-iterator "~0.1.3" es6-symbol "~2.0.1" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.6.0, escodegen@^1.8.0: +escodegen@^1.6.0, escodegen@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" dependencies: @@ -1792,9 +1613,9 @@ esprima@^2.0.0, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.1.tgz#02dbcc5ac3ece81070377f99158ec742ab5dda06" +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esrecurse@^4.1.0: version "4.1.0" @@ -1852,20 +1673,14 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -extend-shallow@^2.0.1: +extend@2.0.x: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.1.tgz#1ee8010689e7395ff9448241c98652bc759a8260" extend@^3.0.0, extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" -extend@2.0.x: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.1.tgz#1ee8010689e7395ff9448241c98652bc759a8260" - external-editor@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" @@ -1888,23 +1703,10 @@ eyes@0.1.x: version "0.1.8" resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" -fancy-log@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.2.0.tgz#d5a51b53e9ab22ca07d558f2b67ae55fdb5fcbd8" - dependencies: - chalk "^1.1.1" - time-stamp "^1.0.0" - fast-levenshtein@~2.0.4: version "2.0.5" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - figures@^1.3.5, figures@^1.4.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -1919,26 +1721,10 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-type@^3.1.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - filename-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" -filename-reserved-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" - -filenamify@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" - dependencies: - filename-reserved-regex "^1.0.0" - strip-outer "^1.0.0" - trim-repeated "^1.0.0" - fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -1960,10 +1746,6 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - first-chunk-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" @@ -2039,13 +1821,12 @@ fs-extra@^0.30.0, fs-extra@~0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" +fs-extra@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" - klaw "^1.0.0" fs-readdir-recursive@^1.0.0: version "1.0.0" @@ -2070,15 +1851,6 @@ fstream-ignore@~1.0.5: inherits "2" minimatch "^3.0.0" -fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - "fstream@>= 0.1.30 < 1": version "0.1.31" resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" @@ -2088,6 +1860,15 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: mkdirp "0.5" rimraf "2" +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -2133,12 +1914,6 @@ get-mongodb-version@0.0.1: mongodb "^2.0.39" which "^1.1.1" -get-proxy@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" - dependencies: - rc "^1.1.2" - get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -2177,27 +1952,18 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob-parent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.0.1.tgz#60021327cc963ddc3b5f085764f500479ecd82ff" +glob@7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" -glob-stream@^5.3.2: - version "5.3.5" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" - dependencies: - extend "^3.0.0" - glob "^5.0.3" - glob-parent "^3.0.0" - micromatch "^2.3.7" - ordered-read-streams "^0.3.0" - through2 "^0.6.0" - to-absolute-glob "^0.1.1" - unique-stream "^2.0.2" - -glob@^5.0.3, glob@^5.0.5: +glob@^5.0.5: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: @@ -2228,17 +1994,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - global@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df" @@ -2272,13 +2027,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -glogg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" - dependencies: - sparkles "^1.0.0" - -got@^5.0.0, got@^5.2.0: +got@^5.2.0: version "5.7.1" resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" dependencies: @@ -2298,7 +2047,11 @@ got@^5.0.0, got@^5.2.0: unzip-response "^1.0.2" url-parse-lax "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131" @@ -2308,10 +2061,6 @@ graceful-fs@~3.0.2: dependencies: natives "^1.1.0" -graceful-fs@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" - "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" @@ -2333,76 +2082,24 @@ gruntfile-editor@^1.0.0: ast-query "^1.0.1" lodash "^4.6.1" -gulp-decompress@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" +handlebars@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" dependencies: - archive-type "^3.0.0" - decompress "^3.0.0" - gulp-util "^3.0.1" - readable-stream "^2.0.2" - -gulp-rename@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" -gulp-sourcemaps@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" dependencies: - convert-source-map "^1.1.1" - graceful-fs "^4.1.2" - strip-bom "^2.0.0" - through2 "^2.0.0" - vinyl "^1.0.0" - -gulp-util@^3.0.1: - version "3.0.7" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.7.tgz#78925c4b8f8b49005ac01a011c557e6218941cbb" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^1.0.11" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - -handlebars@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.5.tgz#92c6ed6bb164110c50d4d8d0fbddc70806c6f8e7" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" has-ansi@^2.0.0: version "2.0.0" @@ -2418,12 +2115,6 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - has-unicode@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-1.0.1.tgz#c46fceea053eb8ec789bffbba25fca52dfdcf38e" @@ -2523,7 +2214,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: +inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2531,7 +2222,7 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@~1.3.0, ini@1.x.x: +ini@1.x.x, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -2582,12 +2273,6 @@ invariant@^2.2.0: dependencies: loose-envify "^1.0.0" -is-absolute@^0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" - dependencies: - is-relative "^0.1.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -2608,10 +2293,6 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-bzip2@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" - is-dotfile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" @@ -2622,7 +2303,7 @@ is-equal-shallow@^0.1.3: dependencies: is-primitive "^2.0.0" -is-extendable@^0.1.0, is-extendable@^0.1.1: +is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2630,10 +2311,6 @@ is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.0.tgz#33411a482b046bf95e6b0cb27ee2711af4cf15ad" - is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" @@ -2656,16 +2333,6 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-gzip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" - is-lower-case@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" @@ -2693,20 +2360,12 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" -is-natural-number@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" - is-number@^2.0.2, is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -2743,10 +2402,6 @@ is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" -is-relative@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" - is-resolvable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" @@ -2757,14 +2412,10 @@ is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" -is-stream@^1.0.0, is-stream@^1.0.1: +is-stream@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-tar@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -2775,30 +2426,18 @@ is-upper-case@^1.1.0: dependencies: upper-case "^1.1.0" -is-url@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" - is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -is-valid-glob@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" - -is-zip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" - -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" @@ -2809,17 +2448,10 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" -isstream@~0.1.2, isstream@0.1.x: +isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istextorbinary@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-1.0.2.tgz#ace19354d1a9a0173efeb1084ce0f87b0ad7decf" - dependencies: - binaryextensions "~1.0.0" - textextensions "~1.0.0" - istextorbinary@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.1.0.tgz#dbed2a6f51be2f7475b68f89465811141b758874" @@ -2928,12 +2560,6 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2970,14 +2596,6 @@ lodash._basecreate@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" @@ -2998,18 +2616,6 @@ lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -3053,12 +2659,6 @@ lodash.endswith@^4.0.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09" -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - lodash.find@^4.3.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" @@ -3075,10 +2675,6 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isequal@^4.0.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.4.0.tgz#6295768e98e14dc15ce8d362ef6340db82852031" - lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -3097,34 +2693,13 @@ lodash.startswith@^3.0.1: dependencies: lodash._root "^3.0.0" -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash@^3.10.1, lodash@^3.2.0, lodash@^3.6.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1: - version "4.16.6" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" log-symbols@^1.0.1: version "1.0.2" @@ -3255,13 +2830,7 @@ meow@^3.1.0, meow@^3.3.0, meow@^3.5.0: redent "^1.0.0" trim-newlines "^1.0.0" -merge-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.0.tgz#9cfd156fef35421e2b5403ce11dc6eb1962b026e" - dependencies: - readable-stream "^2.0.1" - -micromatch@^2.1.5, micromatch@^2.3.7: +micromatch@^2.1.5: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -3295,29 +2864,21 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -mkdirp@^0.3.5, mkdirp@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.1, mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.x.x: +mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -3329,6 +2890,10 @@ mkdirp@0.5.0: dependencies: minimist "0.0.8" +mkdirp@^0.3.5, mkdirp@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + "mobile-icon-resizer@git://github.com/bakery/mobile-icon-resizer.git": version "1.0.0" resolved "git://github.com/bakery/mobile-icon-resizer.git#0343c7eda274133dba7b683ac6ee6884b117a07f" @@ -3424,7 +2989,7 @@ mongodb-tools@mongodb-js/mongodb-tools: mongodb-core "2.0.10" rimraf "2.2.6" -mongodb-version-list@^0.0.3, mongodb-version-list@0.0.3: +mongodb-version-list@0.0.3, mongodb-version-list@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mongodb-version-list/-/mongodb-version-list-0.0.3.tgz#bbb261861f041fcfc5bc72b5fe2681788bd52cef" dependencies: @@ -3483,12 +3048,6 @@ multimatch@^2.0.0: arrify "^1.0.0" minimatch "^3.0.0" -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - dependencies: - duplexer2 "0.0.2" - mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" @@ -3572,6 +3131,14 @@ normalize-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" +npmlog@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-1.0.0.tgz#ed2f290b60316887c39e0da9f09f8d13847cef0f" + dependencies: + ansi "~0.3.0" + are-we-there-yet "~1.0.0" + gauge "~1.0.2" + npmlog@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.0.tgz#e094503961c70c1774eb76692080e8d578a9f88f" @@ -3581,14 +3148,6 @@ npmlog@^4.0.0: gauge "~2.6.0" set-blocking "~2.0.0" -npmlog@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-1.0.0.tgz#ed2f290b60316887c39e0da9f09f8d13847cef0f" - dependencies: - ansi "~0.3.0" - are-we-there-yet "~1.0.0" - gauge "~1.0.2" - nth-check@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" @@ -3619,11 +3178,7 @@ object-assign@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" @@ -3644,7 +3199,7 @@ once@^1.3.0: dependencies: wrappy "1" -once@~1.3.0, once@~1.3.3: +once@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: @@ -3654,13 +3209,6 @@ onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optimist@0.2: version "0.2.8" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.2.8.tgz#e981ab7e268b457948593b55674c099a815cac31" @@ -3674,6 +3222,13 @@ optimist@0.6.0: minimist "~0.0.1" wordwrap "~0.0.2" +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -3685,13 +3240,6 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -ordered-read-streams@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" - dependencies: - is-stream "^1.0.1" - readable-stream "^2.0.1" - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -3750,10 +3298,6 @@ path-case@^2.1.0: dependencies: no-case "^2.2.0" -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - path-exists@^2.0.0, path-exists@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -3776,10 +3320,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3902,7 +3442,7 @@ randomatic@^1.1.3: is-number "^2.0.2" kind-of "^3.0.2" -rc@^1.1.2, rc@~1.1.6: +rc@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" dependencies: @@ -3936,7 +3476,7 @@ read-all-stream@^3.0.0: pinkie-promise "^2.0.0" readable-stream "^2.0.0" -read-chunk@^1.0.0, read-chunk@^1.0.1: +read-chunk@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194" @@ -3955,9 +3495,18 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.1.tgz#c459a6687ad6195f936b959870776edef27a7655" +readable-stream@1.1, readable-stream@~1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -3976,16 +3525,7 @@ readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2. isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~2.0.0, readable-stream@~2.0.5: +readable-stream@~2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: @@ -3996,27 +3536,6 @@ readable-stream@~2.0.0, readable-stream@~2.0.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@~2.1.4, readable-stream@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -4123,13 +3642,6 @@ request@^2.34.0, request@^2.45.0, request@^2.65.0, request@^2.75.0: tough-cookie "~2.3.0" tunnel-agent "~0.4.1" -require_optional@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf" - dependencies: - resolve-from "^2.0.0" - semver "^5.1.0" - require-uncached@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -4137,6 +3649,13 @@ require-uncached@^1.0.2: caller-path "^0.1.0" resolve-from "^1.0.0" +require_optional@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf" + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" @@ -4162,7 +3681,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.0, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2, rimraf@2.x.x: +rimraf@2, rimraf@2.x.x, rimraf@^2.2.0, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@~2.5.1, rimraf@~2.5.4: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -4193,28 +3712,18 @@ rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" -samsam@~1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621" - -samsam@1.1.2: +samsam@1.1.2, samsam@~1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" -seek-bzip@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - dependencies: - commander "~2.8.1" +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19" -semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": +semver@^5.1.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -semver@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19" - sentence-case@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.0.tgz#d592fbed457fd1a59e3af0ee17e99f6fd70d7efd" @@ -4226,7 +3735,7 @@ set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" -set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: +set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" @@ -4234,9 +3743,9 @@ set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -shelljs@^0.7.0, shelljs@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" +shelljs@^0.7.0, shelljs@^0.7.5, shelljs@^0.7.7: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -4313,10 +3822,6 @@ source-map@~0.2.0: dependencies: amdefine ">=0.0.4" -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" - spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" @@ -4365,25 +3870,6 @@ stack-trace@0.0.x: version "0.0.9" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695" -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -4403,6 +3889,10 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -4413,13 +3903,6 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-bom-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" - dependencies: - first-chunk-stream "^1.0.0" - strip-bom "^2.0.0" - strip-bom-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" @@ -4437,17 +3920,6 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" -strip-dirs@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" - dependencies: - chalk "^1.0.0" - get-stdin "^4.0.1" - is-absolute "^0.1.5" - is-natural-number "^2.0.0" - minimist "^1.1.0" - sum-up "^1.0.1" - strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -4458,28 +3930,16 @@ strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" -strip-outer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8" - dependencies: - escape-string-regexp "^1.0.2" - -sum-up@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" - dependencies: - chalk "^1.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - supports-color@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + swap-case@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" @@ -4517,15 +3977,6 @@ tar-pack@~3.3.0: tar "~2.2.1" uid-number "~0.0.6" -tar-stream@^1.1.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - tar@~2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" @@ -4538,10 +3989,6 @@ text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -textextensions@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-1.0.2.tgz#65486393ee1f2bb039a60cbba05b0b68bd9501d2" - "textextensions@1 || 2": version "2.0.1" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.0.1.tgz#be8cf22d65379c151319f88f0335ad8f667abdca" @@ -4550,25 +3997,14 @@ throttleit@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -through2-filter@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^0.6.0, through2@^0.6.1, through2@^0.6.3: +through2@^0.6.3: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" dependencies: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0, through2@~2.0.0: +through2@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" dependencies: @@ -4582,16 +4018,16 @@ through2@~0.2.3: readable-stream "~1.1.9" xtend "~2.1.1" +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + tildify@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" dependencies: os-homedir "^1.0.0" -time-stamp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" - timed-out@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.0.0.tgz#ff88de96030ce960eabd42487db61d3add229273" @@ -4620,12 +4056,6 @@ tmp@^0.0.29: dependencies: os-tmpdir "~1.0.1" -to-absolute-glob@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" - dependencies: - extend-shallow "^2.0.1" - to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" @@ -4636,29 +4066,23 @@ tough-cookie@~2.3.0: dependencies: punycode "^1.4.1" -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - "traverse@>=0.3.0 <0.4": version "0.3.9" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - dependencies: - escape-string-regexp "^1.0.2" - tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" -tunnel-agent@^0.4.0, tunnel-agent@~0.4.1: +tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -4672,14 +4096,14 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - type-detect@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + typed-function@0.10.4: version "0.10.4" resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-0.10.4.tgz#1a015498d38eaf9c402fcce1022a0bd87b7418b2" @@ -4712,13 +4136,6 @@ underscore.string@^3.0.3: sprintf-js "^1.0.3" util-deprecate "^1.0.2" -unique-stream@^2.0.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" - dependencies: - json-stable-stringify "^1.0.0" - through2-filter "^2.0.0" - untildify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-1.0.0.tgz#4d8031d1806f4fbd7c42b0237aaf213686262635" @@ -4786,7 +4203,7 @@ util-deprecate@^1.0.2, util-deprecate@~1.0.1: dependencies: inherits "2.0.1" -utile@~0.2.1, utile@0.2.1: +utile@0.2.1, utile@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7" dependencies: @@ -4797,20 +4214,12 @@ utile@~0.2.1, utile@0.2.1: ncp "0.4.x" rimraf "2.x.x" -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - v8flags@^2.0.10: version "2.0.11" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" dependencies: user-home "^1.1.1" -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" - validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" @@ -4824,13 +4233,6 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" -vinyl-assign@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" - dependencies: - object-assign "^4.0.1" - readable-stream "^2.0.0" - vinyl-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" @@ -4842,44 +4244,7 @@ vinyl-file@^2.0.0: strip-bom-stream "^2.0.0" vinyl "^1.1.0" -vinyl-fs@^2.2.0: - version "2.4.4" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" - dependencies: - duplexify "^3.2.0" - glob-stream "^5.3.2" - graceful-fs "^4.0.0" - gulp-sourcemaps "1.6.0" - is-valid-glob "^0.3.0" - lazystream "^1.0.0" - lodash.isequal "^4.0.0" - merge-stream "^1.0.0" - mkdirp "^0.5.0" - object-assign "^4.0.0" - readable-stream "^2.0.4" - strip-bom "^2.0.0" - strip-bom-stream "^1.0.0" - through2 "^2.0.0" - through2-filter "^2.0.0" - vali-date "^1.0.0" - vinyl "^1.0.0" - -vinyl@^0.4.3: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^1.0.0, vinyl@^1.1.0: +vinyl@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" dependencies: @@ -4887,12 +4252,6 @@ vinyl@^1.0.0, vinyl@^1.1.0: clone-stats "^0.0.1" replace-ext "0.0.1" -ware@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" - dependencies: - wrap-fn "^0.1.0" - which@^1.1.1, which@^1.2.4, which@^1.2.9: version "1.2.11" resolved "https://registry.yarnpkg.com/which/-/which-1.2.11.tgz#c8b2eeea6b8c1659fa7c1dd4fdaabe9533dc5e8b" @@ -4909,7 +4268,7 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" -winston@0.8.0: +winston@0.8.0, winston@0.8.x: version "0.8.0" resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.0.tgz#61d0830fa699706212206b0a2b5ca69a93043668" dependencies: @@ -4920,17 +4279,9 @@ winston@0.8.0: pkginfo "0.3.x" stack-trace "0.0.x" -winston@0.8.x: - version "0.8.3" - resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0" - dependencies: - async "0.2.x" - colors "0.6.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - pkginfo "0.3.x" - stack-trace "0.0.x" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" "wordwrap@>=0.0.1 <0.1.0", wordwrap@~0.0.2: version "0.0.3" @@ -4940,16 +4291,6 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrap-fn@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" - dependencies: - co "3.1.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -4960,13 +4301,7 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" - -xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -4989,13 +4324,6 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yauzl@^2.2.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.7.0.tgz#e21d847868b496fc29eaec23ee87fdd33e9b2bce" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" - yeoman-assert@^2.0.0, yeoman-assert@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/yeoman-assert/-/yeoman-assert-2.2.1.tgz#524bff6b2a83d344a7a24ea825c5eb16504396f5" @@ -5004,8 +4332,8 @@ yeoman-assert@^2.0.0, yeoman-assert@^2.2.1: path-exists "^2.1.0" yeoman-environment@^1.1.0, yeoman-environment@^1.5.2, yeoman-environment@^1.6.1: - version "1.6.5" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-1.6.5.tgz#0db07ab315adecb6e5e3b55ad9ab2063b71a08e1" + version "1.6.6" + resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-1.6.6.tgz#cd85fa67d156060e440d7807d7ef7cf0d2d1d671" dependencies: chalk "^1.0.0" debug "^2.0.0" @@ -5020,49 +4348,6 @@ yeoman-environment@^1.1.0, yeoman-environment@^1.5.2, yeoman-environment@^1.6.1: text-table "^0.2.0" untildify "^2.0.0" -yeoman-generator@^0.23.0: - version "0.23.4" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-0.23.4.tgz#c87af73d5b0e5a94d8331c114c759901f67dfbc1" - dependencies: - async "^1.4.2" - chalk "^1.0.0" - class-extend "^0.1.0" - cli-table "^0.3.1" - cross-spawn "^3.0.0" - dargs "^4.0.0" - dateformat "^1.0.11" - debug "^2.1.0" - detect-conflict "^1.0.0" - download "^4.1.2" - error "^7.0.2" - find-up "^1.0.0" - github-username "^2.0.0" - glob "^7.0.3" - gruntfile-editor "^1.0.0" - html-wiring "^1.0.0" - istextorbinary "^1.0.2" - lodash "^4.11.1" - mem-fs-editor "^2.0.0" - mkdirp "^0.5.0" - nopt "^3.0.0" - path-exists "^2.0.0" - path-is-absolute "^1.0.0" - pretty-bytes "^3.0.1" - read-chunk "^1.0.1" - read-pkg-up "^1.0.1" - rimraf "^2.2.0" - run-async "^2.0.0" - shelljs "^0.7.0" - text-table "^0.2.0" - through2 "^2.0.0" - underscore.string "^3.0.3" - user-home "^2.0.0" - xdg-basedir "^2.0.0" - yeoman-assert "^2.0.0" - yeoman-environment "^1.1.0" - yeoman-test "^1.0.0" - yeoman-welcome "^1.0.0" - yeoman-generator@^0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-0.24.1.tgz#1ca74429d9c5c95db0b22859ec180a2599bc1f8e" @@ -5105,8 +4390,8 @@ yeoman-generator@^0.24.1: yeoman-welcome "^1.0.0" yeoman-test@^1.0.0, yeoman-test@^1.4.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/yeoman-test/-/yeoman-test-1.5.1.tgz#94578f77bd8b9a0cc1419d2776d1e829333cdc10" + version "1.6.0" + resolved "https://registry.yarnpkg.com/yeoman-test/-/yeoman-test-1.6.0.tgz#abff291733e16e8923d9eefc8691c632888bf948" dependencies: inquirer "^1.0.2" lodash "^4.3.0" @@ -5115,11 +4400,10 @@ yeoman-test@^1.0.0, yeoman-test@^1.4.0: rimraf "^2.4.4" sinon "^1.17.2" yeoman-environment "^1.5.2" - yeoman-generator "^0.23.0" + yeoman-generator "^0.24.1" yeoman-welcome@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/yeoman-welcome/-/yeoman-welcome-1.0.1.tgz#f6cf198fd4fba8a771672c26cdfb8a64795c84ec" dependencies: chalk "^1.0.0" - From c020ff2e0390870c824409c69454a8fbc553e0e3 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyy Date: Wed, 19 Apr 2017 18:05:04 +0100 Subject: [PATCH 10/11] check session token before sending it to make sure it works --- .baker/generators/app/templates/src/state/apollo.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.baker/generators/app/templates/src/state/apollo.js b/.baker/generators/app/templates/src/state/apollo.js index 4e999e0..0167d05 100644 --- a/.baker/generators/app/templates/src/state/apollo.js +++ b/.baker/generators/app/templates/src/state/apollo.js @@ -14,7 +14,12 @@ networkInterface.use([{ } getCurrentUser().then(user => { - req.options.headers.authorization = user && user.getSessionToken(); + const sessionToken = user && user.getSessionToken(); + + if (sessionToken) { + req.options.headers.authorization = sessionToken; + } + next(); }, error => { next(); From 9e4c0364525ccf389446bf5acc0c4edcf3313ac6 Mon Sep 17 00:00:00 2001 From: Philip Nuzhnyi Date: Thu, 20 Apr 2017 14:53:36 +0100 Subject: [PATCH 11/11] wire apollo middleware --- .baker/generators/app/templates/src/state/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.baker/generators/app/templates/src/state/index.js b/.baker/generators/app/templates/src/state/index.js index 1bfca50..055871a 100644 --- a/.baker/generators/app/templates/src/state/index.js +++ b/.baker/generators/app/templates/src/state/index.js @@ -5,6 +5,7 @@ import Parse from 'parse/react-native'; import createReducer from './reducers'; import sagas from '../sagas'; import Settings from '../settings'; +import apollo from './apollo'; const settings = Settings.load(); @@ -16,6 +17,7 @@ const sagaMiddleware = createSagaMiddleware(); function configureStore(initialState = {}) { const enhancers = [ applyMiddleware(sagaMiddleware), + applyMiddleware(apollo.middleware()) ]; if (__DEV__) {