├── src ├── simple │ ├── root.re │ ├── apollo │ │ └── apolloProvider.re │ ├── app.re │ ├── apolloClient.re │ ├── todoItem.re │ ├── todoInput.re │ ├── todoList.re │ ├── types.re │ ├── dataTodoContainer.re │ └── todoContainer.re ├── assets │ ├── index.html │ ├── todomvc-common │ │ └── base.css │ └── todomvc-app-css │ │ └── index.css └── apollo-server │ ├── index.js │ └── schema.js ├── .gitignore ├── bsconfig.json ├── webpack.config.js ├── package.json ├── README.md └── yarn-error.log /src/simple/root.re: -------------------------------------------------------------------------------- 1 | ReactDOMRe.renderToElementWithId "index"; 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | lib 3 | node_modules 4 | .merlin 5 | npm-debug.log 6 | -------------------------------------------------------------------------------- /src/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Todo App 6 | 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /src/simple/apollo/apolloProvider.re: -------------------------------------------------------------------------------- 1 | external apollo_provider : ReasonReact.reactClass = "ApolloProvider" [@@bs.module "react-apollo"]; 2 | 3 | let make ::client children => 4 | ReasonReact.wrapJsForReason reactClass::apollo_provider props::{"client": client} children; 5 | -------------------------------------------------------------------------------- /src/simple/app.re: -------------------------------------------------------------------------------- 1 | let component = ReasonReact.statelessComponent "ApolloProviderLink"; 2 | 3 | let make _children => { 4 | ...component, 5 | render: fun _self => { 6 | 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /src/simple/apolloClient.re: -------------------------------------------------------------------------------- 1 | open Types; 2 | 3 | external apollo_client : apolloClient => string = 4 | "ApolloClient" [@@bs.new] [@@bs.module "react-apollo"]; 5 | 6 | external create_network_interface : networkInterface => string = 7 | "createNetworkInterface" [@@bs.module "react-apollo"]; 8 | 9 | let networkInterfaceInstance = {"uri": "http://localhost:3010/graphql"}; 10 | 11 | let apolloClientInstance = {"networkInterface": create_network_interface networkInterfaceInstance}; 12 | let instance = apollo_client apolloClientInstance; -------------------------------------------------------------------------------- /src/apollo-server/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const bodyParser = require('body-parser'); 3 | const {graphqlExpress} = require('apollo-server-express'); 4 | const {schema} = require('./schema'); 5 | const cors = require('cors'); 6 | 7 | const PORT = 3010; 8 | 9 | const app = express(); 10 | 11 | app.use(cors()); 12 | 13 | // bodyParser is needed just for POST. 14 | app.use('/graphql', bodyParser.json(), graphqlExpress({ schema: schema })); 15 | 16 | app.listen(PORT, () => { 17 | console.log('Great, now open a new tab and run npm start'); 18 | }); -------------------------------------------------------------------------------- /src/simple/todoItem.re: -------------------------------------------------------------------------------- 1 | open Types; 2 | 3 | let component = ReasonReact.statelessComponent "Todo"; 4 | 5 | let make ::todo ::toggleTodo ::deleteTodo _children => { 6 | ...component, 7 | render: fun _self => 8 |
  • 9 |
    10 | toggleTodo ()) /> 11 | 12 |
    14 |
  • 15 | }; 16 | -------------------------------------------------------------------------------- /bsconfig.json: -------------------------------------------------------------------------------- 1 | /* This is the BuckleScript configuration file. Note that this is a comment; 2 | BuckleScript comes with a JSON parser that supports comments and trailing 3 | comma. If this screws with your editor highlighting, please tell us by filing 4 | an issue! */ 5 | { 6 | "name" : "my-first-react-app", 7 | "reason" : {"react-jsx" : 2}, 8 | "bs-dependencies": ["reason-react"], 9 | "bsc-flags": ["-bs-super-errors"], 10 | "sources": [ 11 | { 12 | "dir": "src", 13 | "subdirs": [ 14 | "simple", 15 | "simple/apollo" 16 | ] 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /src/simple/todoInput.re: -------------------------------------------------------------------------------- 1 | let valueFromEvent event :string => ( 2 | event |> ReactEventRe.Form.target |> ReactDOMRe.domElementToObj 3 | )##value; 4 | 5 | let component = ReasonReact.statefulComponent "Greeting"; 6 | 7 | let make ::addTodo _children => { 8 | ...component, 9 | initialState: fun () => "", 10 | render: fun {state: text, update} => 11 | ReasonReact.Update (valueFromEvent event))) 17 | onKeyDown=( 18 | update ( 19 | fun event _ => 20 | if (ReactEventRe.Keyboard.key event == "Enter") { 21 | addTodo text; 22 | ReasonReact.Update "" 23 | } else { 24 | ReasonReact.NoUpdate 25 | } 26 | ) 27 | ) 28 | /> 29 | }; 30 | -------------------------------------------------------------------------------- /src/simple/todoList.re: -------------------------------------------------------------------------------- 1 | open Types; 2 | 3 | let se = ReasonReact.stringToElement; 4 | 5 | let component = ReasonReact.statelessComponent "TodosList"; 6 | 7 | let make ::todos ::toggleTodo ::deleteTodo _children => { 8 | ...component, 9 | render: fun self => { 10 |
    11 | 31 |
    32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 3 | const CleanWebpackPlugin = require('clean-webpack-plugin'); 4 | 5 | module.exports = { 6 | entry: { 7 | root: './src/simple/root.re', 8 | static: [ 9 | './src/assets/todomvc-app-css/index.css', 10 | './src/assets/todomvc-common/base.css' 11 | ] 12 | }, 13 | output: { 14 | path: path.resolve(__dirname, 'bundledOutputs'), 15 | filename: '[name].js', 16 | }, 17 | devServer: { 18 | contentBase: './bundledOutputs' 19 | }, 20 | plugins: [ 21 | new CleanWebpackPlugin(['bundledOutputs']), 22 | new HtmlWebpackPlugin({ 23 | title: 'ReasonML graphQL', 24 | template: 'src/assets/index.html' 25 | }) 26 | ], 27 | module: { 28 | rules: [ 29 | // Set up Reason and OCaml files to use the loader 30 | { test: /\.(re|ml)$/, use: 'bs-loader' }, 31 | { test: /\.css$/, use: [ 'style-loader', 'css-loader' ]} 32 | ] 33 | }, 34 | resolve: { 35 | // Add .re and .ml to the list of extensions webpack recognizes 36 | extensions: ['.re', '.ml', '.js'] 37 | }, 38 | }; 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-first-react-app", 3 | "private": true, 4 | "version": "0.1.0", 5 | "description": "", 6 | "main": "index.js", 7 | "scripts": { 8 | "start": "webpack-dev-server --open", 9 | "start:server": "node src/apollo-server/", 10 | "build": "bsb -make-world -w", 11 | "clean": "bsb -clean-world" 12 | }, 13 | "keywords": [], 14 | "author": "", 15 | "license": "ISC", 16 | "dependencies": { 17 | "apollo-server-express": "^1.0.5", 18 | "body-parser": "^1.17.2", 19 | "cors": "^2.8.4", 20 | "express": "^4.15.3", 21 | "graphql-tag": "^2.4.2", 22 | "graphql-tools": "^1.1.0", 23 | "react": "^15.4.2", 24 | "react-apollo": "^1.4.8", 25 | "react-dom": "^15.4.2", 26 | "reason-react": ">=0.2.1", 27 | "todomvc-app-css": "^2.1.0", 28 | "todomvc-common": "^1.0.3" 29 | }, 30 | "devDependencies": { 31 | "bs-loader": "^1.5.8", 32 | "bs-platform": "^1.8.2", 33 | "clean-webpack-plugin": "^0.1.16", 34 | "css-loader": "^0.28.4", 35 | "html-webpack-plugin": "^2.30.0", 36 | "style-loader": "^0.18.2", 37 | "webpack": "^3.4.1", 38 | "webpack-dev-server": "^2.6.1" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### This repository uses plain GraphQL, Reason and Apollo. 2 | #### If you're looking for an easier way to use GraphQL, checkout the official [reason-apollo bindings](https://github.com/apollographql/reason-apollo) 3 | 4 | Have something you don't understand? Join us on [Discord](https://discord.gg/reasonml)! 5 | 6 | Run this project: 7 | 8 | ``` 9 | npm install 10 | npm run start:server 11 | npm start # in a new tab 12 | ``` 13 | 14 | Once your express server is running with `npm run start:server`, 15 | open a new tab and start the client with `npm start` 16 | this will run your client written in [ReasonML](https://reasonml.github.io/). 17 | Then modify whichever `.re` file in `src/simple/` and the page will reflect the changes automatically. 18 | 19 | You can see and modify the graphQL schema, running in express in `apollo-server/schema`. (install nodemon to automatically restart the server) 20 | 21 | The client is build using [ReasonReact](https://github.com/reasonml/reason-react). 22 | `dataTodoContainer.re` uses graphql from react-apollo to enhance ReasonML components with queries and mutations. 23 | `todoContainer.re` uses the query and mutations 24 | 25 | If you're looking for a very simple/basic example: https://github.com/Gregoirevda/graphql-reason-simple-example 26 | -------------------------------------------------------------------------------- /src/simple/types.re: -------------------------------------------------------------------------------- 1 | type todo = Js.t {. 2 | id: int, 3 | title: string, 4 | active: bool 5 | }; 6 | 7 | /* we give the query (under the hood, it's a string) an opaque type. This way nobody can accidentally use it as a string */ 8 | type query; 9 | 10 | type apolloConfig = Js.t {. name : string}; 11 | 12 | /* 13 | * annotate the function with [@bs] so that it's statically verified to be fully 14 | * applied at each callsite. Better perf from fewer curryings. See more info on 15 | * `[@bs]` in the BS manual 16 | */ 17 | type gql = (string => query) [@bs]; 18 | 19 | type wrapper = (ReasonReact.reactClass => ReasonReact.reactClass) [@bs]; 20 | 21 | /* we can't easily use the Js.t {. ...} format here, since some config fields are optional */ 22 | /* what's the props field exactly? */ 23 | type graphqlConfig; 24 | 25 | external graphqlConfig : 26 | name::string => 27 | alias::string? => 28 | skip::Js.boolean? => 29 | skip__func::'whateverTooLazy? => 30 | unit => 31 | graphqlConfig = 32 | "" [@@bs.obj]; 33 | 34 | type graphql = (query => wrapper) [@bs]; 35 | 36 | type graphqlWithConfig = (query => graphqlConfig => wrapper) [@bs]; 37 | 38 | type stuff = { 39 | state: string, 40 | noRetainedProps: string, 41 | componentSpec: string 42 | }; 43 | 44 | type networkInterface = Js.t {. uri : string}; 45 | 46 | type apolloClient = Js.t {. networkInterface : string}; 47 | -------------------------------------------------------------------------------- /src/apollo-server/schema.js: -------------------------------------------------------------------------------- 1 | // graphql-tools combines a schema string with resolvers. 2 | const {makeExecutableSchema} = require('graphql-tools'); 3 | 4 | let todos = [{ id: "1", active: true, title: "One"}, 5 | { id: "2", active: false, title: "Two"}]; 6 | 7 | // Construct a schema, using GraphQL schema language 8 | const typeDefs = ` 9 | input TodoInput { 10 | title: String! 11 | active: Boolean! 12 | } 13 | type Todo { 14 | id: ID! 15 | title: String! 16 | active: Boolean! 17 | } 18 | 19 | type Query { 20 | todos: [Todo] 21 | } 22 | 23 | type Mutation { 24 | deleteTodo(id: ID!): [Todo] 25 | toggleTodo(id: ID!): [Todo] 26 | addTodo(title: String!, active: Boolean!): [Todo] 27 | } 28 | `; 29 | 30 | // Provide resolver functions for your schema fields 31 | const resolvers = { 32 | Query: { 33 | todos: () => { 34 | return todos; 35 | }, 36 | }, 37 | Mutation: { 38 | deleteTodo: (_, {id}) => { 39 | console.log(todos, id); 40 | todos = todos.filter(todo => todo.id !== id); 41 | return todos; 42 | }, 43 | toggleTodo: (_, {id}) => { 44 | todos = todos.map(todo => 45 | todo.id === id ? Object.assign({}, todo, {active: !todo.active}) : todo 46 | ); 47 | return todos; 48 | }, 49 | addTodo: (_, {title, active}) => { 50 | todos = [ 51 | ...todos, { 52 | id: todos.reduce((id, todo) => parseInt(todo.id, 10) + 1, 1).toString(), 53 | title, 54 | active 55 | }]; 56 | return todos; 57 | } 58 | } 59 | }; 60 | 61 | exports.schema = makeExecutableSchema({ 62 | typeDefs, 63 | resolvers, 64 | }); 65 | 66 | -------------------------------------------------------------------------------- /src/assets/todomvc-common/base.css: -------------------------------------------------------------------------------- 1 | hr { 2 | margin: 20px 0; 3 | border: 0; 4 | border-top: 1px dashed #c5c5c5; 5 | border-bottom: 1px dashed #f7f7f7; 6 | } 7 | 8 | .learn a { 9 | font-weight: normal; 10 | text-decoration: none; 11 | color: #b83f45; 12 | } 13 | 14 | .learn a:hover { 15 | text-decoration: underline; 16 | color: #787e7e; 17 | } 18 | 19 | .learn h3, 20 | .learn h4, 21 | .learn h5 { 22 | margin: 10px 0; 23 | font-weight: 500; 24 | line-height: 1.2; 25 | color: #000; 26 | } 27 | 28 | .learn h3 { 29 | font-size: 24px; 30 | } 31 | 32 | .learn h4 { 33 | font-size: 18px; 34 | } 35 | 36 | .learn h5 { 37 | margin-bottom: 0; 38 | font-size: 14px; 39 | } 40 | 41 | .learn ul { 42 | padding: 0; 43 | margin: 0 0 30px 25px; 44 | } 45 | 46 | .learn li { 47 | line-height: 20px; 48 | } 49 | 50 | .learn p { 51 | font-size: 15px; 52 | font-weight: 300; 53 | line-height: 1.3; 54 | margin-top: 0; 55 | margin-bottom: 0; 56 | } 57 | 58 | #issue-count { 59 | display: none; 60 | } 61 | 62 | .quote { 63 | border: none; 64 | margin: 20px 0 60px 0; 65 | } 66 | 67 | .quote p { 68 | font-style: italic; 69 | } 70 | 71 | .quote p:before { 72 | content: '“'; 73 | font-size: 50px; 74 | opacity: .15; 75 | position: absolute; 76 | top: -20px; 77 | left: 3px; 78 | } 79 | 80 | .quote p:after { 81 | content: '”'; 82 | font-size: 50px; 83 | opacity: .15; 84 | position: absolute; 85 | bottom: -42px; 86 | right: 3px; 87 | } 88 | 89 | .quote footer { 90 | position: absolute; 91 | bottom: -40px; 92 | right: 0; 93 | } 94 | 95 | .quote footer img { 96 | border-radius: 3px; 97 | } 98 | 99 | .quote footer a { 100 | margin-left: 5px; 101 | vertical-align: middle; 102 | } 103 | 104 | .speech-bubble { 105 | position: relative; 106 | padding: 10px; 107 | background: rgba(0, 0, 0, .04); 108 | border-radius: 5px; 109 | } 110 | 111 | .speech-bubble:after { 112 | content: ''; 113 | position: absolute; 114 | top: 100%; 115 | right: 30px; 116 | border: 13px solid transparent; 117 | border-top-color: rgba(0, 0, 0, .04); 118 | } 119 | 120 | .learn-bar > .learn { 121 | position: absolute; 122 | width: 272px; 123 | top: 8px; 124 | left: -300px; 125 | padding: 10px; 126 | border-radius: 5px; 127 | background-color: rgba(255, 255, 255, .6); 128 | transition-property: left; 129 | transition-duration: 500ms; 130 | } 131 | 132 | @media (min-width: 899px) { 133 | .learn-bar { 134 | width: auto; 135 | padding-left: 300px; 136 | } 137 | 138 | .learn-bar > .learn { 139 | left: 8px; 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /src/simple/dataTodoContainer.re: -------------------------------------------------------------------------------- 1 | open Types; 2 | 3 | external gql : gql = "graphql-tag" [@@bs.module]; 4 | 5 | external graphql : graphql = "graphql" [@@bs.module "react-apollo"]; 6 | 7 | external graphqlWithConfig : graphqlWithConfig = "graphql" [@@bs.module "react-apollo"]; 8 | 9 | /* usage: graphqlWithConfig todos_query (graphqlConfig name::"foo" ()) */ 10 | let todos_query = 11 | gql {| 12 | query getAllTodos { 13 | todos { 14 | id 15 | title 16 | active 17 | } 18 | } 19 | |} [@bs]; 20 | 21 | let add_todo_mutation = 22 | gql 23 | {| 24 | mutation addTodo($title: String!, $active: Boolean!) { 25 | addTodo( 26 | title: $title, 27 | active: $active 28 | ) { 29 | id 30 | title 31 | active 32 | } 33 | } 34 | |} 35 | [@bs]; 36 | 37 | let toggle_todo_mutation = 38 | gql 39 | {| 40 | mutation toggleTodo($id: ID!) { 41 | toggleTodo(id: $id) { 42 | id 43 | title 44 | active 45 | } 46 | } 47 | |} 48 | [@bs]; 49 | 50 | let delete_todo_mutation = 51 | gql 52 | {| 53 | mutation deleteTodo($id: ID!) { 54 | deleteTodo(id: $id) { 55 | id 56 | title 57 | active 58 | } 59 | } 60 | |} 61 | [@bs]; 62 | 63 | 64 | let addTodoWrapper = graphqlWithConfig add_todo_mutation (graphqlConfig name::"addTodoMutation" ()) [@bs]; 65 | 66 | let wrappedAddTodoComponent: ReasonReact.reactClass = 67 | addTodoWrapper TodoContainer.jsComponent [@bs]; 68 | 69 | let queryWrapper = graphqlWithConfig todos_query (graphqlConfig name::"todosQuery"()) [@bs]; 70 | 71 | let wrappedQueryTodosComponent: ReasonReact.reactClass = 72 | queryWrapper wrappedAddTodoComponent [@bs]; 73 | 74 | let toggleTodoWrapper = graphqlWithConfig toggle_todo_mutation (graphqlConfig name::"toggleTodoMutation"()) [@bs]; 75 | 76 | let wrappedToggleTodoMutationComponent: ReasonReact.reactClass = 77 | toggleTodoWrapper wrappedQueryTodosComponent [@bs]; 78 | 79 | let deleteTodoWrapper = graphqlWithConfig delete_todo_mutation (graphqlConfig name::"deleteTodoMutation"()) [@bs]; 80 | 81 | let wrappedDeleteTodoMutationComponent: ReasonReact.reactClass = 82 | deleteTodoWrapper wrappedToggleTodoMutationComponent [@bs]; 83 | 84 | /* 85 | * this is unfortunate (but legit, and a supported use-case of ReasonReact). See 86 | * the comment in todoContainer, at the end. In the future, hopefully we can cut 87 | * out the js part in reason->js->js->reason */ 88 | let make children => 89 | ReasonReact.wrapJsForReason 90 | reactClass::wrappedDeleteTodoMutationComponent props::(Js.Obj.empty ()) children; 91 | -------------------------------------------------------------------------------- /src/simple/todoContainer.re: -------------------------------------------------------------------------------- 1 | open Types; 2 | 3 | type todoJS = Js.t { 4 | . 5 | active: bool, 6 | title: string 7 | }; 8 | type todoInput = Js.t { 9 | . 10 | todo: todoJS 11 | }; 12 | type mutation = Js.t { 13 | . 14 | variables: todoInput 15 | }; 16 | 17 | type response = Js.t {. 18 | todos: list todo, 19 | loading : bool 20 | }; 21 | 22 | type propsType = { 23 | data: response 24 | }; 25 | 26 | let se = ReasonReact.stringToElement; 27 | 28 | let lastTodoId = ref 0; 29 | 30 | let component = ReasonReact.statefulComponent "Page"; 31 | 32 | let make ::todosQuery ::addTodoMutation ::toggleTodoMutation ::deleteTodoMutation _children => { 33 | ...component, 34 | render: fun _self => { 35 | let nonNullTodos = if(todosQuery##loading) { [] } else { Array.to_list todosQuery##todos }; 36 | let numOfItems = List.length nonNullTodos; 37 |
    38 |

    (ReasonReact.stringToElement "Todos")

    39 | { 42 | let mutation = { 43 | "variables": { 44 | "title": text, 45 | "active": Js.true_ 46 | } 47 | }; 48 | addTodoMutation mutation; 49 | todosQuery##refetch (); 50 | } 51 | ) 52 | /> 53 | { 57 | let mutation = { 58 | "variables": { 59 | "id": id 60 | } 61 | }; 62 | toggleTodoMutation mutation; 63 | todosQuery##refetch (); 64 | } 65 | ) 66 | deleteTodo=( 67 | fun id => { 68 | let mutation = { 69 | "variables": { 70 | "id": id 71 | } 72 | }; 73 | deleteTodoMutation mutation; 74 | todosQuery##refetch (); 75 | } 76 | ) 77 | /> 78 |
    (se ("Amount of todos: " ^ string_of_int numOfItems))
    79 |
    80 | } 81 | }; 82 | 83 | /* 84 | * Why are we exposing this JS interop, even though this file's only used by the 85 | * Reason side? Because the higher-order function returned by the `graphql` call 86 | * (wrapper, in dataTodoContainer) asks as an input the backing ReactJS class, 87 | * which Reason circumvents, and only exposes when some JS calls really needs 88 | * it. Remember that a ReasonReact "class" isn't a ReactJS class. 89 | */ 90 | let jsComponent = ReasonReact.wrapReasonForJs ::component (fun props => { 91 | make 92 | addTodoMutation::props##addTodoMutation 93 | todosQuery::props##todosQuery 94 | toggleTodoMutation::props##toggleTodoMutation 95 | deleteTodoMutation::props##deleteTodoMutation [||]; 96 | } 97 | 98 | ); 99 | -------------------------------------------------------------------------------- /src/assets/todomvc-app-css/index.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | button { 8 | margin: 0; 9 | padding: 0; 10 | border: 0; 11 | background: none; 12 | font-size: 100%; 13 | vertical-align: baseline; 14 | font-family: inherit; 15 | font-weight: inherit; 16 | color: inherit; 17 | -webkit-appearance: none; 18 | appearance: none; 19 | -webkit-font-smoothing: antialiased; 20 | -moz-osx-font-smoothing: grayscale; 21 | } 22 | 23 | body { 24 | font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; 25 | line-height: 1.4em; 26 | background: #f5f5f5; 27 | color: #4d4d4d; 28 | min-width: 230px; 29 | max-width: 550px; 30 | margin: 0 auto; 31 | -webkit-font-smoothing: antialiased; 32 | -moz-osx-font-smoothing: grayscale; 33 | font-weight: 300; 34 | } 35 | 36 | :focus { 37 | outline: 0; 38 | } 39 | 40 | .hidden { 41 | display: none; 42 | } 43 | 44 | .todoapp { 45 | background: #fff; 46 | margin: 130px 0 40px 0; 47 | position: relative; 48 | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 49 | 0 25px 50px 0 rgba(0, 0, 0, 0.1); 50 | } 51 | 52 | .todoapp input::-webkit-input-placeholder { 53 | font-style: italic; 54 | font-weight: 300; 55 | color: #e6e6e6; 56 | } 57 | 58 | .todoapp input::-moz-placeholder { 59 | font-style: italic; 60 | font-weight: 300; 61 | color: #e6e6e6; 62 | } 63 | 64 | .todoapp input::input-placeholder { 65 | font-style: italic; 66 | font-weight: 300; 67 | color: #e6e6e6; 68 | } 69 | 70 | .todoapp h1 { 71 | position: absolute; 72 | top: -155px; 73 | width: 100%; 74 | font-size: 100px; 75 | font-weight: 100; 76 | text-align: center; 77 | color: rgba(175, 47, 47, 0.15); 78 | -webkit-text-rendering: optimizeLegibility; 79 | -moz-text-rendering: optimizeLegibility; 80 | text-rendering: optimizeLegibility; 81 | } 82 | 83 | .new-todo, 84 | .edit { 85 | position: relative; 86 | margin: 0; 87 | width: 100%; 88 | font-size: 24px; 89 | font-family: inherit; 90 | font-weight: inherit; 91 | line-height: 1.4em; 92 | border: 0; 93 | color: inherit; 94 | padding: 6px; 95 | border: 1px solid #999; 96 | box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2); 97 | box-sizing: border-box; 98 | -webkit-font-smoothing: antialiased; 99 | -moz-osx-font-smoothing: grayscale; 100 | } 101 | 102 | .new-todo { 103 | padding: 16px 16px 16px 60px; 104 | border: none; 105 | background: rgba(0, 0, 0, 0.003); 106 | box-shadow: inset 0 -2px 1px rgba(0,0,0,0.03); 107 | } 108 | 109 | .main { 110 | position: relative; 111 | z-index: 2; 112 | border-top: 1px solid #e6e6e6; 113 | } 114 | 115 | .toggle-all { 116 | text-align: center; 117 | border: none; /* Mobile Safari */ 118 | opacity: 0; 119 | position: absolute; 120 | } 121 | 122 | .toggle-all + label { 123 | width: 60px; 124 | height: 34px; 125 | font-size: 0; 126 | position: absolute; 127 | top: -52px; 128 | left: -13px; 129 | -webkit-transform: rotate(90deg); 130 | transform: rotate(90deg); 131 | } 132 | 133 | .toggle-all + label:before { 134 | content: '❯'; 135 | font-size: 22px; 136 | color: #e6e6e6; 137 | padding: 10px 27px 10px 27px; 138 | } 139 | 140 | .toggle-all:checked + label:before { 141 | color: #737373; 142 | } 143 | 144 | .todo-list { 145 | margin: 0; 146 | padding: 0; 147 | list-style: none; 148 | } 149 | 150 | .todo-list li { 151 | position: relative; 152 | font-size: 24px; 153 | border-bottom: 1px solid #ededed; 154 | } 155 | 156 | .todo-list li:last-child { 157 | border-bottom: none; 158 | } 159 | 160 | .todo-list li.editing { 161 | border-bottom: none; 162 | padding: 0; 163 | } 164 | 165 | .todo-list li.editing .edit { 166 | display: block; 167 | width: 506px; 168 | padding: 12px 16px; 169 | margin: 0 0 0 43px; 170 | } 171 | 172 | .todo-list li.editing .view { 173 | display: none; 174 | } 175 | 176 | .todo-list li .toggle { 177 | text-align: center; 178 | width: 40px; 179 | /* auto, since non-WebKit browsers doesn't support input styling */ 180 | height: auto; 181 | position: absolute; 182 | top: 0; 183 | bottom: 0; 184 | margin: auto 0; 185 | border: none; /* Mobile Safari */ 186 | -webkit-appearance: none; 187 | appearance: none; 188 | } 189 | 190 | .todo-list li .toggle { 191 | opacity: 0; 192 | } 193 | 194 | .todo-list li .toggle + label { 195 | /* 196 | Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433 197 | IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/ 198 | */ 199 | background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E'); 200 | background-repeat: no-repeat; 201 | background-position: center left; 202 | } 203 | 204 | .todo-list li .toggle:checked + label { 205 | background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E'); 206 | } 207 | 208 | .todo-list li label { 209 | word-break: break-all; 210 | padding: 15px 15px 15px 60px; 211 | display: block; 212 | line-height: 1.2; 213 | transition: color 0.4s; 214 | } 215 | 216 | .todo-list li.completed label { 217 | color: #d9d9d9; 218 | text-decoration: line-through; 219 | } 220 | 221 | .todo-list li .destroy { 222 | display: none; 223 | position: absolute; 224 | top: 0; 225 | right: 10px; 226 | bottom: 0; 227 | width: 40px; 228 | height: 40px; 229 | margin: auto 0; 230 | font-size: 30px; 231 | color: #cc9a9a; 232 | margin-bottom: 11px; 233 | transition: color 0.2s ease-out; 234 | } 235 | 236 | .todo-list li .destroy:hover { 237 | color: #af5b5e; 238 | } 239 | 240 | .todo-list li .destroy:after { 241 | content: '×'; 242 | } 243 | 244 | .todo-list li:hover .destroy { 245 | display: block; 246 | } 247 | 248 | .todo-list li .edit { 249 | display: none; 250 | } 251 | 252 | .todo-list li.editing:last-child { 253 | margin-bottom: -1px; 254 | } 255 | 256 | .footer { 257 | color: #777; 258 | padding: 10px 15px; 259 | height: 20px; 260 | text-align: center; 261 | border-top: 1px solid #e6e6e6; 262 | } 263 | 264 | .footer:before { 265 | content: ''; 266 | position: absolute; 267 | right: 0; 268 | bottom: 0; 269 | left: 0; 270 | height: 50px; 271 | overflow: hidden; 272 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 273 | 0 8px 0 -3px #f6f6f6, 274 | 0 9px 1px -3px rgba(0, 0, 0, 0.2), 275 | 0 16px 0 -6px #f6f6f6, 276 | 0 17px 2px -6px rgba(0, 0, 0, 0.2); 277 | } 278 | 279 | .todo-count { 280 | float: left; 281 | text-align: left; 282 | } 283 | 284 | .todo-count strong { 285 | font-weight: 300; 286 | } 287 | 288 | .filters { 289 | margin: 0; 290 | padding: 0; 291 | list-style: none; 292 | position: absolute; 293 | right: 0; 294 | left: 0; 295 | } 296 | 297 | .filters li { 298 | display: inline; 299 | } 300 | 301 | .filters li a { 302 | color: inherit; 303 | margin: 3px; 304 | padding: 3px 7px; 305 | text-decoration: none; 306 | border: 1px solid transparent; 307 | border-radius: 3px; 308 | } 309 | 310 | .filters li a:hover { 311 | border-color: rgba(175, 47, 47, 0.1); 312 | } 313 | 314 | .filters li a.selected { 315 | border-color: rgba(175, 47, 47, 0.2); 316 | } 317 | 318 | .clear-completed, 319 | html .clear-completed:active { 320 | float: right; 321 | position: relative; 322 | line-height: 20px; 323 | text-decoration: none; 324 | cursor: pointer; 325 | } 326 | 327 | .clear-completed:hover { 328 | text-decoration: underline; 329 | } 330 | 331 | .info { 332 | margin: 65px auto 0; 333 | color: #bfbfbf; 334 | font-size: 10px; 335 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 336 | text-align: center; 337 | } 338 | 339 | .info p { 340 | line-height: 1; 341 | } 342 | 343 | .info a { 344 | color: inherit; 345 | text-decoration: none; 346 | font-weight: 400; 347 | } 348 | 349 | .info a:hover { 350 | text-decoration: underline; 351 | } 352 | 353 | /* 354 | Hack to remove background from Mobile Safari. 355 | Can't use it globally since it destroys checkboxes in Firefox 356 | */ 357 | @media screen and (-webkit-min-device-pixel-ratio:0) { 358 | .toggle-all, 359 | .todo-list li .toggle { 360 | background: none; 361 | } 362 | 363 | .todo-list li .toggle { 364 | height: 40px; 365 | } 366 | } 367 | 368 | @media (max-width: 430px) { 369 | .footer { 370 | height: 50px; 371 | } 372 | 373 | .filters { 374 | bottom: 10px; 375 | } 376 | } 377 | -------------------------------------------------------------------------------- /yarn-error.log: -------------------------------------------------------------------------------- 1 | Arguments: 2 | /usr/local/Cellar/node/8.2.1/bin/node /usr/local/bin/yarn 3 | 4 | PATH: 5 | /Users/greg/.nvm/versions/node/v7.0.0/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 6 | 7 | Yarn version: 8 | 0.23.4 9 | 10 | Node version: 11 | 8.2.1 12 | 13 | Platform: 14 | darwin x64 15 | 16 | npm manifest: 17 | { 18 | "name": "my-first-react-app", 19 | "private": true, 20 | "version": "0.1.0", 21 | "description": "", 22 | "main": "index.js", 23 | "scripts": { 24 | "test": "echo \"Error: no test specified\" && exit 1", 25 | "start": "bsb -make-world -w", 26 | "build": "webpack-dev-server --content-base bundledOutputs/", 27 | "clean": "bsb -clean-world" 28 | }, 29 | "keywords": [], 30 | "author": "", 31 | "license": "ISC", 32 | "dependencies": { 33 | "graphql-tag": "^2.4.2", 34 | "react": "^15.4.2", 35 | "react-apollo": "^1.4.8", 36 | "react-dom": "^15.4.2", 37 | "reason-react": ">=0.2.1", 38 | "todomvc-app-css": "^2.1.0", 39 | "todomvc-common": "^1.0.3" 40 | }, 41 | "devDependencies": { 42 | "bs-platform": "^1.8.2" 43 | } 44 | } 45 | 46 | yarn manifest: 47 | No manifest 48 | 49 | Lockfile: 50 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 51 | # yarn lockfile v1 52 | 53 | 54 | "@types/async@^2.0.31": 55 | version "2.0.40" 56 | resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.40.tgz#ac02de68e66c004a61b7cb16df8b1db3a254cca9" 57 | 58 | "@types/graphql@^0.9.0": 59 | version "0.9.4" 60 | resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.9.4.tgz#cdeb6bcbef9b6c584374b81aa7f48ecf3da404fa" 61 | 62 | "@types/isomorphic-fetch@0.0.34": 63 | version "0.0.34" 64 | resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz#3c3483e606c041378438e951464f00e4e60706d6" 65 | 66 | abbrev@1: 67 | version "1.1.0" 68 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 69 | 70 | accepts@~1.3.3: 71 | version "1.3.3" 72 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 73 | dependencies: 74 | mime-types "~2.1.11" 75 | negotiator "0.6.1" 76 | 77 | acorn@^3.0.0: 78 | version "3.3.0" 79 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 80 | 81 | ajv@^4.9.1: 82 | version "4.11.8" 83 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 84 | dependencies: 85 | co "^4.6.0" 86 | json-stable-stringify "^1.0.1" 87 | 88 | align-text@^0.1.1, align-text@^0.1.3: 89 | version "0.1.4" 90 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 91 | dependencies: 92 | kind-of "^3.0.2" 93 | longest "^1.0.1" 94 | repeat-string "^1.5.2" 95 | 96 | amdefine@>=0.0.4: 97 | version "1.0.1" 98 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 99 | 100 | ansi-regex@^2.0.0: 101 | version "2.1.1" 102 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 103 | 104 | anymatch@^1.3.0: 105 | version "1.3.0" 106 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 107 | dependencies: 108 | arrify "^1.0.0" 109 | micromatch "^2.1.5" 110 | 111 | apollo-client@^1.4.0: 112 | version "1.8.1" 113 | resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-1.8.1.tgz#17481cc15dc787202684c4a6fdaa80ba84568a10" 114 | dependencies: 115 | graphql "^0.10.0" 116 | graphql-anywhere "^3.0.1" 117 | graphql-tag "^2.0.0" 118 | redux "^3.4.0" 119 | symbol-observable "^1.0.2" 120 | whatwg-fetch "^2.0.0" 121 | optionalDependencies: 122 | "@types/async" "^2.0.31" 123 | "@types/graphql" "^0.9.0" 124 | "@types/isomorphic-fetch" "0.0.34" 125 | 126 | aproba@^1.0.3: 127 | version "1.1.2" 128 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" 129 | 130 | are-we-there-yet@~1.1.2: 131 | version "1.1.4" 132 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 133 | dependencies: 134 | delegates "^1.0.0" 135 | readable-stream "^2.0.6" 136 | 137 | arr-diff@^2.0.0: 138 | version "2.0.0" 139 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 140 | dependencies: 141 | arr-flatten "^1.0.1" 142 | 143 | arr-flatten@^1.0.1: 144 | version "1.1.0" 145 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 146 | 147 | array-flatten@1.1.1: 148 | version "1.1.1" 149 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 150 | 151 | array-unique@^0.2.1: 152 | version "0.2.1" 153 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 154 | 155 | arrify@^1.0.0: 156 | version "1.0.1" 157 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 158 | 159 | asap@~2.0.3: 160 | version "2.0.6" 161 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 162 | 163 | asn1@~0.2.3: 164 | version "0.2.3" 165 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 166 | 167 | assert-plus@1.0.0, assert-plus@^1.0.0: 168 | version "1.0.0" 169 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 170 | 171 | assert-plus@^0.2.0: 172 | version "0.2.0" 173 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 174 | 175 | assert@^1.1.1: 176 | version "1.4.1" 177 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" 178 | dependencies: 179 | util "0.10.3" 180 | 181 | async-each@^1.0.0: 182 | version "1.0.1" 183 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 184 | 185 | async@^0.9.0: 186 | version "0.9.2" 187 | resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" 188 | 189 | async@^1.3.0: 190 | version "1.5.2" 191 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 192 | 193 | async@~0.2.6: 194 | version "0.2.10" 195 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" 196 | 197 | asynckit@^0.4.0: 198 | version "0.4.0" 199 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 200 | 201 | aws-sign2@~0.6.0: 202 | version "0.6.0" 203 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 204 | 205 | aws4@^1.2.1: 206 | version "1.6.0" 207 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 208 | 209 | balanced-match@^1.0.0: 210 | version "1.0.0" 211 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 212 | 213 | base64-js@^1.0.2: 214 | version "1.2.1" 215 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" 216 | 217 | batch@0.6.1: 218 | version "0.6.1" 219 | resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" 220 | 221 | bcrypt-pbkdf@^1.0.0: 222 | version "1.0.1" 223 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 224 | dependencies: 225 | tweetnacl "^0.14.3" 226 | 227 | big.js@^3.1.3: 228 | version "3.1.3" 229 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" 230 | 231 | binary-extensions@^1.0.0: 232 | version "1.8.0" 233 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 234 | 235 | block-stream@*: 236 | version "0.0.9" 237 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 238 | dependencies: 239 | inherits "~2.0.0" 240 | 241 | boom@2.x.x: 242 | version "2.10.1" 243 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 244 | dependencies: 245 | hoek "2.x.x" 246 | 247 | brace-expansion@^1.1.7: 248 | version "1.1.8" 249 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 250 | dependencies: 251 | balanced-match "^1.0.0" 252 | concat-map "0.0.1" 253 | 254 | braces@^1.8.2: 255 | version "1.8.5" 256 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 257 | dependencies: 258 | expand-range "^1.8.1" 259 | preserve "^0.2.0" 260 | repeat-element "^1.1.2" 261 | 262 | browserify-aes@0.4.0: 263 | version "0.4.0" 264 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" 265 | dependencies: 266 | inherits "^2.0.1" 267 | 268 | browserify-zlib@^0.1.4: 269 | version "0.1.4" 270 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" 271 | dependencies: 272 | pako "~0.2.0" 273 | 274 | bs-platform@^1.8.2: 275 | version "1.8.2" 276 | resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-1.8.2.tgz#2aba1cfc73e21feaa8902d67b5ddbec975938554" 277 | 278 | buffer@^4.9.0: 279 | version "4.9.1" 280 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 281 | dependencies: 282 | base64-js "^1.0.2" 283 | ieee754 "^1.1.4" 284 | isarray "^1.0.0" 285 | 286 | builtin-status-codes@^3.0.0: 287 | version "3.0.0" 288 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 289 | 290 | bytes@2.5.0: 291 | version "2.5.0" 292 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" 293 | 294 | camelcase@^1.0.2: 295 | version "1.2.1" 296 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 297 | 298 | caseless@~0.12.0: 299 | version "0.12.0" 300 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 301 | 302 | center-align@^0.1.1: 303 | version "0.1.3" 304 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 305 | dependencies: 306 | align-text "^0.1.3" 307 | lazy-cache "^1.0.3" 308 | 309 | chokidar@^1.0.0: 310 | version "1.7.0" 311 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 312 | dependencies: 313 | anymatch "^1.3.0" 314 | async-each "^1.0.0" 315 | glob-parent "^2.0.0" 316 | inherits "^2.0.1" 317 | is-binary-path "^1.0.0" 318 | is-glob "^2.0.0" 319 | path-is-absolute "^1.0.0" 320 | readdirp "^2.0.0" 321 | optionalDependencies: 322 | fsevents "^1.0.0" 323 | 324 | cliui@^2.1.0: 325 | version "2.1.0" 326 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 327 | dependencies: 328 | center-align "^0.1.1" 329 | right-align "^0.1.1" 330 | wordwrap "0.0.2" 331 | 332 | clone@^1.0.2: 333 | version "1.0.2" 334 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" 335 | 336 | co@^4.6.0: 337 | version "4.6.0" 338 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 339 | 340 | code-point-at@^1.0.0: 341 | version "1.1.0" 342 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 343 | 344 | combined-stream@^1.0.5, combined-stream@~1.0.5: 345 | version "1.0.5" 346 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 347 | dependencies: 348 | delayed-stream "~1.0.0" 349 | 350 | compressible@~2.0.10: 351 | version "2.0.11" 352 | resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" 353 | dependencies: 354 | mime-db ">= 1.29.0 < 2" 355 | 356 | compression@^1.5.2: 357 | version "1.7.0" 358 | resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" 359 | dependencies: 360 | accepts "~1.3.3" 361 | bytes "2.5.0" 362 | compressible "~2.0.10" 363 | debug "2.6.8" 364 | on-headers "~1.0.1" 365 | safe-buffer "5.1.1" 366 | vary "~1.1.1" 367 | 368 | concat-map@0.0.1: 369 | version "0.0.1" 370 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 371 | 372 | connect-history-api-fallback@^1.3.0: 373 | version "1.3.0" 374 | resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" 375 | 376 | console-browserify@^1.1.0: 377 | version "1.1.0" 378 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 379 | dependencies: 380 | date-now "^0.1.4" 381 | 382 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 383 | version "1.1.0" 384 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 385 | 386 | constants-browserify@^1.0.0: 387 | version "1.0.0" 388 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 389 | 390 | content-disposition@0.5.2: 391 | version "0.5.2" 392 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 393 | 394 | content-type@~1.0.2: 395 | version "1.0.2" 396 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" 397 | 398 | cookie-signature@1.0.6: 399 | version "1.0.6" 400 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 401 | 402 | cookie@0.3.1: 403 | version "0.3.1" 404 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 405 | 406 | core-js@^1.0.0: 407 | version "1.2.7" 408 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 409 | 410 | core-util-is@~1.0.0: 411 | version "1.0.2" 412 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 413 | 414 | create-react-class@^15.0.0, create-react-class@^15.6.0: 415 | version "15.6.0" 416 | resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" 417 | dependencies: 418 | fbjs "^0.8.9" 419 | loose-envify "^1.3.1" 420 | object-assign "^4.1.1" 421 | 422 | cryptiles@2.x.x: 423 | version "2.0.5" 424 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 425 | dependencies: 426 | boom "2.x.x" 427 | 428 | crypto-browserify@3.3.0: 429 | version "3.3.0" 430 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" 431 | dependencies: 432 | browserify-aes "0.4.0" 433 | pbkdf2-compat "2.0.1" 434 | ripemd160 "0.2.0" 435 | sha.js "2.2.6" 436 | 437 | dashdash@^1.12.0: 438 | version "1.14.1" 439 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 440 | dependencies: 441 | assert-plus "^1.0.0" 442 | 443 | date-now@^0.1.4: 444 | version "0.1.4" 445 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 446 | 447 | debug@2.6.7: 448 | version "2.6.7" 449 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" 450 | dependencies: 451 | ms "2.0.0" 452 | 453 | debug@2.6.8, debug@^2.2.0, debug@^2.6.6: 454 | version "2.6.8" 455 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" 456 | dependencies: 457 | ms "2.0.0" 458 | 459 | decamelize@^1.0.0: 460 | version "1.2.0" 461 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 462 | 463 | deep-extend@~0.4.0: 464 | version "0.4.2" 465 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 466 | 467 | delayed-stream@~1.0.0: 468 | version "1.0.0" 469 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 470 | 471 | delegates@^1.0.0: 472 | version "1.0.0" 473 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 474 | 475 | depd@1.1.0: 476 | version "1.1.0" 477 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" 478 | 479 | depd@~1.1.0: 480 | version "1.1.1" 481 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 482 | 483 | destroy@~1.0.4: 484 | version "1.0.4" 485 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 486 | 487 | domain-browser@^1.1.1: 488 | version "1.1.7" 489 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" 490 | 491 | ecc-jsbn@~0.1.1: 492 | version "0.1.1" 493 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 494 | dependencies: 495 | jsbn "~0.1.0" 496 | 497 | ee-first@1.1.1: 498 | version "1.1.1" 499 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 500 | 501 | emojis-list@^2.0.0: 502 | version "2.1.0" 503 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 504 | 505 | encodeurl@~1.0.1: 506 | version "1.0.1" 507 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 508 | 509 | encoding@^0.1.11: 510 | version "0.1.12" 511 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 512 | dependencies: 513 | iconv-lite "~0.4.13" 514 | 515 | enhanced-resolve@~0.9.0: 516 | version "0.9.1" 517 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" 518 | dependencies: 519 | graceful-fs "^4.1.2" 520 | memory-fs "^0.2.0" 521 | tapable "^0.1.8" 522 | 523 | errno@^0.1.3: 524 | version "0.1.4" 525 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" 526 | dependencies: 527 | prr "~0.0.0" 528 | 529 | escape-html@~1.0.3: 530 | version "1.0.3" 531 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 532 | 533 | etag@~1.8.0: 534 | version "1.8.0" 535 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" 536 | 537 | eventemitter3@1.x.x: 538 | version "1.2.0" 539 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" 540 | 541 | events@^1.0.0: 542 | version "1.1.1" 543 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" 544 | 545 | eventsource@0.1.6: 546 | version "0.1.6" 547 | resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" 548 | dependencies: 549 | original ">=0.0.5" 550 | 551 | expand-brackets@^0.1.4: 552 | version "0.1.5" 553 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 554 | dependencies: 555 | is-posix-bracket "^0.1.0" 556 | 557 | expand-range@^1.8.1: 558 | version "1.8.2" 559 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 560 | dependencies: 561 | fill-range "^2.1.0" 562 | 563 | express@^4.13.3: 564 | version "4.15.3" 565 | resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" 566 | dependencies: 567 | accepts "~1.3.3" 568 | array-flatten "1.1.1" 569 | content-disposition "0.5.2" 570 | content-type "~1.0.2" 571 | cookie "0.3.1" 572 | cookie-signature "1.0.6" 573 | debug "2.6.7" 574 | depd "~1.1.0" 575 | encodeurl "~1.0.1" 576 | escape-html "~1.0.3" 577 | etag "~1.8.0" 578 | finalhandler "~1.0.3" 579 | fresh "0.5.0" 580 | merge-descriptors "1.0.1" 581 | methods "~1.1.2" 582 | on-finished "~2.3.0" 583 | parseurl "~1.3.1" 584 | path-to-regexp "0.1.7" 585 | proxy-addr "~1.1.4" 586 | qs "6.4.0" 587 | range-parser "~1.2.0" 588 | send "0.15.3" 589 | serve-static "1.12.3" 590 | setprototypeof "1.0.3" 591 | statuses "~1.3.1" 592 | type-is "~1.6.15" 593 | utils-merge "1.0.0" 594 | vary "~1.1.1" 595 | 596 | extend@~3.0.0: 597 | version "3.0.1" 598 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 599 | 600 | extglob@^0.3.1: 601 | version "0.3.2" 602 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 603 | dependencies: 604 | is-extglob "^1.0.0" 605 | 606 | extsprintf@1.0.2: 607 | version "1.0.2" 608 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 609 | 610 | faye-websocket@^0.10.0: 611 | version "0.10.0" 612 | resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" 613 | dependencies: 614 | websocket-driver ">=0.5.1" 615 | 616 | faye-websocket@~0.11.0: 617 | version "0.11.1" 618 | resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" 619 | dependencies: 620 | websocket-driver ">=0.5.1" 621 | 622 | fbjs@^0.8.9: 623 | version "0.8.12" 624 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 625 | dependencies: 626 | core-js "^1.0.0" 627 | isomorphic-fetch "^2.1.1" 628 | loose-envify "^1.0.0" 629 | object-assign "^4.1.0" 630 | promise "^7.1.1" 631 | setimmediate "^1.0.5" 632 | ua-parser-js "^0.7.9" 633 | 634 | filename-regex@^2.0.0: 635 | version "2.0.1" 636 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 637 | 638 | fill-range@^2.1.0: 639 | version "2.2.3" 640 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 641 | dependencies: 642 | is-number "^2.1.0" 643 | isobject "^2.0.0" 644 | randomatic "^1.1.3" 645 | repeat-element "^1.1.2" 646 | repeat-string "^1.5.2" 647 | 648 | finalhandler@~1.0.3: 649 | version "1.0.3" 650 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89" 651 | dependencies: 652 | debug "2.6.7" 653 | encodeurl "~1.0.1" 654 | escape-html "~1.0.3" 655 | on-finished "~2.3.0" 656 | parseurl "~1.3.1" 657 | statuses "~1.3.1" 658 | unpipe "~1.0.0" 659 | 660 | for-in@^1.0.1: 661 | version "1.0.2" 662 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 663 | 664 | for-own@^0.1.4: 665 | version "0.1.5" 666 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 667 | dependencies: 668 | for-in "^1.0.1" 669 | 670 | forever-agent@~0.6.1: 671 | version "0.6.1" 672 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 673 | 674 | form-data@~2.1.1: 675 | version "2.1.4" 676 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 677 | dependencies: 678 | asynckit "^0.4.0" 679 | combined-stream "^1.0.5" 680 | mime-types "^2.1.12" 681 | 682 | forwarded@~0.1.0: 683 | version "0.1.0" 684 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" 685 | 686 | fresh@0.5.0: 687 | version "0.5.0" 688 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" 689 | 690 | fs.realpath@^1.0.0: 691 | version "1.0.0" 692 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 693 | 694 | fsevents@^1.0.0: 695 | version "1.1.2" 696 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" 697 | dependencies: 698 | nan "^2.3.0" 699 | node-pre-gyp "^0.6.36" 700 | 701 | fstream-ignore@^1.0.5: 702 | version "1.0.5" 703 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 704 | dependencies: 705 | fstream "^1.0.0" 706 | inherits "2" 707 | minimatch "^3.0.0" 708 | 709 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 710 | version "1.0.11" 711 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 712 | dependencies: 713 | graceful-fs "^4.1.2" 714 | inherits "~2.0.0" 715 | mkdirp ">=0.5 0" 716 | rimraf "2" 717 | 718 | gauge@~2.7.3: 719 | version "2.7.4" 720 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 721 | dependencies: 722 | aproba "^1.0.3" 723 | console-control-strings "^1.0.0" 724 | has-unicode "^2.0.0" 725 | object-assign "^4.1.0" 726 | signal-exit "^3.0.0" 727 | string-width "^1.0.1" 728 | strip-ansi "^3.0.1" 729 | wide-align "^1.1.0" 730 | 731 | getpass@^0.1.1: 732 | version "0.1.7" 733 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 734 | dependencies: 735 | assert-plus "^1.0.0" 736 | 737 | glob-base@^0.3.0: 738 | version "0.3.0" 739 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 740 | dependencies: 741 | glob-parent "^2.0.0" 742 | is-glob "^2.0.0" 743 | 744 | glob-parent@^2.0.0: 745 | version "2.0.0" 746 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 747 | dependencies: 748 | is-glob "^2.0.0" 749 | 750 | glob@^7.0.5: 751 | version "7.1.2" 752 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 753 | dependencies: 754 | fs.realpath "^1.0.0" 755 | inflight "^1.0.4" 756 | inherits "2" 757 | minimatch "^3.0.4" 758 | once "^1.3.0" 759 | path-is-absolute "^1.0.0" 760 | 761 | graceful-fs@^4.1.2: 762 | version "4.1.11" 763 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 764 | 765 | graphql-anywhere@^3.0.0, graphql-anywhere@^3.0.1: 766 | version "3.1.0" 767 | resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-3.1.0.tgz#3ea0d8e8646b5cee68035016a9a7557c15c21e96" 768 | 769 | graphql-tag@^2.0.0, graphql-tag@^2.4.2: 770 | version "2.4.2" 771 | resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.4.2.tgz#6a63297d8522d03a2b72d26f1b239aab343840cd" 772 | 773 | graphql@^0.10.0: 774 | version "0.10.5" 775 | resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.5.tgz#c9be17ca2bdfdbd134077ffd9bbaa48b8becd298" 776 | dependencies: 777 | iterall "^1.1.0" 778 | 779 | har-schema@^1.0.5: 780 | version "1.0.5" 781 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 782 | 783 | har-validator@~4.2.1: 784 | version "4.2.1" 785 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 786 | dependencies: 787 | ajv "^4.9.1" 788 | har-schema "^1.0.5" 789 | 790 | has-flag@^1.0.0: 791 | version "1.0.0" 792 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 793 | 794 | has-unicode@^2.0.0: 795 | version "2.0.1" 796 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 797 | 798 | hawk@~3.1.3: 799 | version "3.1.3" 800 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 801 | dependencies: 802 | boom "2.x.x" 803 | cryptiles "2.x.x" 804 | hoek "2.x.x" 805 | sntp "1.x.x" 806 | 807 | hoek@2.x.x: 808 | version "2.16.3" 809 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 810 | 811 | hoist-non-react-statics@^2.2.0: 812 | version "2.2.1" 813 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.2.1.tgz#a7e41c760121d0abfc7a2339b331d29a26389e52" 814 | 815 | http-errors@~1.6.1: 816 | version "1.6.1" 817 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" 818 | dependencies: 819 | depd "1.1.0" 820 | inherits "2.0.3" 821 | setprototypeof "1.0.3" 822 | statuses ">= 1.3.1 < 2" 823 | 824 | http-proxy-middleware@~0.17.1: 825 | version "0.17.4" 826 | resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" 827 | dependencies: 828 | http-proxy "^1.16.2" 829 | is-glob "^3.1.0" 830 | lodash "^4.17.2" 831 | micromatch "^2.3.11" 832 | 833 | http-proxy@^1.16.2: 834 | version "1.16.2" 835 | resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" 836 | dependencies: 837 | eventemitter3 "1.x.x" 838 | requires-port "1.x.x" 839 | 840 | http-signature@~1.1.0: 841 | version "1.1.1" 842 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 843 | dependencies: 844 | assert-plus "^0.2.0" 845 | jsprim "^1.2.2" 846 | sshpk "^1.7.0" 847 | 848 | https-browserify@0.0.1: 849 | version "0.0.1" 850 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" 851 | 852 | iconv-lite@~0.4.13: 853 | version "0.4.18" 854 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" 855 | 856 | ieee754@^1.1.4: 857 | version "1.1.8" 858 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 859 | 860 | indexof@0.0.1: 861 | version "0.0.1" 862 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 863 | 864 | inflight@^1.0.4: 865 | version "1.0.6" 866 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 867 | dependencies: 868 | once "^1.3.0" 869 | wrappy "1" 870 | 871 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: 872 | version "2.0.3" 873 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 874 | 875 | inherits@2.0.1: 876 | version "2.0.1" 877 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 878 | 879 | ini@~1.3.0: 880 | version "1.3.4" 881 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 882 | 883 | interpret@^0.6.4: 884 | version "0.6.6" 885 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" 886 | 887 | invariant@^2.2.1: 888 | version "2.2.2" 889 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 890 | dependencies: 891 | loose-envify "^1.0.0" 892 | 893 | ipaddr.js@1.4.0: 894 | version "1.4.0" 895 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" 896 | 897 | is-binary-path@^1.0.0: 898 | version "1.0.1" 899 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 900 | dependencies: 901 | binary-extensions "^1.0.0" 902 | 903 | is-buffer@^1.1.5: 904 | version "1.1.5" 905 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 906 | 907 | is-dotfile@^1.0.0: 908 | version "1.0.3" 909 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 910 | 911 | is-equal-shallow@^0.1.3: 912 | version "0.1.3" 913 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 914 | dependencies: 915 | is-primitive "^2.0.0" 916 | 917 | is-extendable@^0.1.1: 918 | version "0.1.1" 919 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 920 | 921 | is-extglob@^1.0.0: 922 | version "1.0.0" 923 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 924 | 925 | is-extglob@^2.1.0: 926 | version "2.1.1" 927 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 928 | 929 | is-fullwidth-code-point@^1.0.0: 930 | version "1.0.0" 931 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 932 | dependencies: 933 | number-is-nan "^1.0.0" 934 | 935 | is-glob@^2.0.0, is-glob@^2.0.1: 936 | version "2.0.1" 937 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 938 | dependencies: 939 | is-extglob "^1.0.0" 940 | 941 | is-glob@^3.1.0: 942 | version "3.1.0" 943 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 944 | dependencies: 945 | is-extglob "^2.1.0" 946 | 947 | is-number@^2.1.0: 948 | version "2.1.0" 949 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 950 | dependencies: 951 | kind-of "^3.0.2" 952 | 953 | is-number@^3.0.0: 954 | version "3.0.0" 955 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 956 | dependencies: 957 | kind-of "^3.0.2" 958 | 959 | is-posix-bracket@^0.1.0: 960 | version "0.1.1" 961 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 962 | 963 | is-primitive@^2.0.0: 964 | version "2.0.0" 965 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 966 | 967 | is-stream@^1.0.1: 968 | version "1.1.0" 969 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 970 | 971 | is-typedarray@~1.0.0: 972 | version "1.0.0" 973 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 974 | 975 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 976 | version "1.0.0" 977 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 978 | 979 | isobject@^2.0.0: 980 | version "2.1.0" 981 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 982 | dependencies: 983 | isarray "1.0.0" 984 | 985 | isomorphic-fetch@^2.1.1: 986 | version "2.2.1" 987 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 988 | dependencies: 989 | node-fetch "^1.0.1" 990 | whatwg-fetch ">=0.10.0" 991 | 992 | isstream@~0.1.2: 993 | version "0.1.2" 994 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 995 | 996 | iterall@^1.1.0: 997 | version "1.1.1" 998 | resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.1.tgz#f7f0af11e9a04ec6426260f5019d9fcca4d50214" 999 | 1000 | js-tokens@^3.0.0: 1001 | version "3.0.2" 1002 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1003 | 1004 | jsbn@~0.1.0: 1005 | version "0.1.1" 1006 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1007 | 1008 | json-schema@0.2.3: 1009 | version "0.2.3" 1010 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1011 | 1012 | json-stable-stringify@^1.0.1: 1013 | version "1.0.1" 1014 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1015 | dependencies: 1016 | jsonify "~0.0.0" 1017 | 1018 | json-stringify-safe@~5.0.1: 1019 | version "5.0.1" 1020 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1021 | 1022 | json3@^3.3.2: 1023 | version "3.3.2" 1024 | resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" 1025 | 1026 | json5@^0.5.0: 1027 | version "0.5.1" 1028 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1029 | 1030 | jsonify@~0.0.0: 1031 | version "0.0.0" 1032 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1033 | 1034 | jsprim@^1.2.2: 1035 | version "1.4.0" 1036 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 1037 | dependencies: 1038 | assert-plus "1.0.0" 1039 | extsprintf "1.0.2" 1040 | json-schema "0.2.3" 1041 | verror "1.3.6" 1042 | 1043 | kind-of@^3.0.2: 1044 | version "3.2.2" 1045 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1046 | dependencies: 1047 | is-buffer "^1.1.5" 1048 | 1049 | kind-of@^4.0.0: 1050 | version "4.0.0" 1051 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1052 | dependencies: 1053 | is-buffer "^1.1.5" 1054 | 1055 | lazy-cache@^1.0.3: 1056 | version "1.0.4" 1057 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 1058 | 1059 | loader-utils@^0.2.11: 1060 | version "0.2.17" 1061 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" 1062 | dependencies: 1063 | big.js "^3.1.3" 1064 | emojis-list "^2.0.0" 1065 | json5 "^0.5.0" 1066 | object-assign "^4.0.1" 1067 | 1068 | lodash-es@^4.2.1: 1069 | version "4.17.4" 1070 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" 1071 | 1072 | lodash.flatten@^4.2.0: 1073 | version "4.4.0" 1074 | resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 1075 | 1076 | lodash.isequal@^4.1.1: 1077 | version "4.5.0" 1078 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 1079 | 1080 | lodash.isobject@^3.0.2: 1081 | version "3.0.2" 1082 | resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" 1083 | 1084 | lodash.pick@^4.4.0: 1085 | version "4.4.0" 1086 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" 1087 | 1088 | lodash@^4.17.2, lodash@^4.2.1: 1089 | version "4.17.4" 1090 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1091 | 1092 | longest@^1.0.1: 1093 | version "1.0.1" 1094 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 1095 | 1096 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: 1097 | version "1.3.1" 1098 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1099 | dependencies: 1100 | js-tokens "^3.0.0" 1101 | 1102 | media-typer@0.3.0: 1103 | version "0.3.0" 1104 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1105 | 1106 | memory-fs@^0.2.0: 1107 | version "0.2.0" 1108 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" 1109 | 1110 | memory-fs@~0.3.0: 1111 | version "0.3.0" 1112 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" 1113 | dependencies: 1114 | errno "^0.1.3" 1115 | readable-stream "^2.0.1" 1116 | 1117 | memory-fs@~0.4.1: 1118 | version "0.4.1" 1119 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 1120 | dependencies: 1121 | errno "^0.1.3" 1122 | readable-stream "^2.0.1" 1123 | 1124 | merge-descriptors@1.0.1: 1125 | version "1.0.1" 1126 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1127 | 1128 | methods@~1.1.2: 1129 | version "1.1.2" 1130 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1131 | 1132 | micromatch@^2.1.5, micromatch@^2.3.11: 1133 | version "2.3.11" 1134 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1135 | dependencies: 1136 | arr-diff "^2.0.0" 1137 | array-unique "^0.2.1" 1138 | braces "^1.8.2" 1139 | expand-brackets "^0.1.4" 1140 | extglob "^0.3.1" 1141 | filename-regex "^2.0.0" 1142 | is-extglob "^1.0.0" 1143 | is-glob "^2.0.1" 1144 | kind-of "^3.0.2" 1145 | normalize-path "^2.0.1" 1146 | object.omit "^2.0.0" 1147 | parse-glob "^3.0.4" 1148 | regex-cache "^0.4.2" 1149 | 1150 | "mime-db@>= 1.29.0 < 2": 1151 | version "1.29.0" 1152 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" 1153 | 1154 | mime-db@~1.27.0: 1155 | version "1.27.0" 1156 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 1157 | 1158 | mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: 1159 | version "2.1.15" 1160 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 1161 | dependencies: 1162 | mime-db "~1.27.0" 1163 | 1164 | mime@1.3.4, mime@^1.3.4: 1165 | version "1.3.4" 1166 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" 1167 | 1168 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 1169 | version "3.0.4" 1170 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1171 | dependencies: 1172 | brace-expansion "^1.1.7" 1173 | 1174 | minimist@0.0.8, minimist@~0.0.1: 1175 | version "0.0.8" 1176 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1177 | 1178 | minimist@^1.2.0: 1179 | version "1.2.0" 1180 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1181 | 1182 | "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: 1183 | version "0.5.1" 1184 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1185 | dependencies: 1186 | minimist "0.0.8" 1187 | 1188 | ms@2.0.0: 1189 | version "2.0.0" 1190 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1191 | 1192 | nan@^2.3.0: 1193 | version "2.6.2" 1194 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" 1195 | 1196 | negotiator@0.6.1: 1197 | version "0.6.1" 1198 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1199 | 1200 | node-fetch@^1.0.1: 1201 | version "1.7.1" 1202 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" 1203 | dependencies: 1204 | encoding "^0.1.11" 1205 | is-stream "^1.0.1" 1206 | 1207 | node-libs-browser@^0.7.0: 1208 | version "0.7.0" 1209 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" 1210 | dependencies: 1211 | assert "^1.1.1" 1212 | browserify-zlib "^0.1.4" 1213 | buffer "^4.9.0" 1214 | console-browserify "^1.1.0" 1215 | constants-browserify "^1.0.0" 1216 | crypto-browserify "3.3.0" 1217 | domain-browser "^1.1.1" 1218 | events "^1.0.0" 1219 | https-browserify "0.0.1" 1220 | os-browserify "^0.2.0" 1221 | path-browserify "0.0.0" 1222 | process "^0.11.0" 1223 | punycode "^1.2.4" 1224 | querystring-es3 "^0.2.0" 1225 | readable-stream "^2.0.5" 1226 | stream-browserify "^2.0.1" 1227 | stream-http "^2.3.1" 1228 | string_decoder "^0.10.25" 1229 | timers-browserify "^2.0.2" 1230 | tty-browserify "0.0.0" 1231 | url "^0.11.0" 1232 | util "^0.10.3" 1233 | vm-browserify "0.0.4" 1234 | 1235 | node-pre-gyp@^0.6.36: 1236 | version "0.6.36" 1237 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" 1238 | dependencies: 1239 | mkdirp "^0.5.1" 1240 | nopt "^4.0.1" 1241 | npmlog "^4.0.2" 1242 | rc "^1.1.7" 1243 | request "^2.81.0" 1244 | rimraf "^2.6.1" 1245 | semver "^5.3.0" 1246 | tar "^2.2.1" 1247 | tar-pack "^3.4.0" 1248 | 1249 | nopt@^4.0.1: 1250 | version "4.0.1" 1251 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1252 | dependencies: 1253 | abbrev "1" 1254 | osenv "^0.1.4" 1255 | 1256 | normalize-path@^2.0.1: 1257 | version "2.1.1" 1258 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1259 | dependencies: 1260 | remove-trailing-separator "^1.0.1" 1261 | 1262 | npmlog@^4.0.2: 1263 | version "4.1.2" 1264 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1265 | dependencies: 1266 | are-we-there-yet "~1.1.2" 1267 | console-control-strings "~1.1.0" 1268 | gauge "~2.7.3" 1269 | set-blocking "~2.0.0" 1270 | 1271 | number-is-nan@^1.0.0: 1272 | version "1.0.1" 1273 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1274 | 1275 | oauth-sign@~0.8.1: 1276 | version "0.8.2" 1277 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1278 | 1279 | object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: 1280 | version "4.1.1" 1281 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1282 | 1283 | object.omit@^2.0.0: 1284 | version "2.0.1" 1285 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1286 | dependencies: 1287 | for-own "^0.1.4" 1288 | is-extendable "^0.1.1" 1289 | 1290 | on-finished@~2.3.0: 1291 | version "2.3.0" 1292 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1293 | dependencies: 1294 | ee-first "1.1.1" 1295 | 1296 | on-headers@~1.0.1: 1297 | version "1.0.1" 1298 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" 1299 | 1300 | once@^1.3.0, once@^1.3.3: 1301 | version "1.4.0" 1302 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1303 | dependencies: 1304 | wrappy "1" 1305 | 1306 | open@0.0.5: 1307 | version "0.0.5" 1308 | resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" 1309 | 1310 | optimist@~0.6.0, optimist@~0.6.1: 1311 | version "0.6.1" 1312 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 1313 | dependencies: 1314 | minimist "~0.0.1" 1315 | wordwrap "~0.0.2" 1316 | 1317 | original@>=0.0.5: 1318 | version "1.0.0" 1319 | resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" 1320 | dependencies: 1321 | url-parse "1.0.x" 1322 | 1323 | os-browserify@^0.2.0: 1324 | version "0.2.1" 1325 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" 1326 | 1327 | os-homedir@^1.0.0: 1328 | version "1.0.2" 1329 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1330 | 1331 | os-tmpdir@^1.0.0: 1332 | version "1.0.2" 1333 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1334 | 1335 | osenv@^0.1.4: 1336 | version "0.1.4" 1337 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1338 | dependencies: 1339 | os-homedir "^1.0.0" 1340 | os-tmpdir "^1.0.0" 1341 | 1342 | pako@~0.2.0: 1343 | version "0.2.9" 1344 | resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" 1345 | 1346 | parse-glob@^3.0.4: 1347 | version "3.0.4" 1348 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1349 | dependencies: 1350 | glob-base "^0.3.0" 1351 | is-dotfile "^1.0.0" 1352 | is-extglob "^1.0.0" 1353 | is-glob "^2.0.0" 1354 | 1355 | parseurl@~1.3.1: 1356 | version "1.3.1" 1357 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" 1358 | 1359 | path-browserify@0.0.0: 1360 | version "0.0.0" 1361 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" 1362 | 1363 | path-is-absolute@^1.0.0: 1364 | version "1.0.1" 1365 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1366 | 1367 | path-to-regexp@0.1.7: 1368 | version "0.1.7" 1369 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1370 | 1371 | pbkdf2-compat@2.0.1: 1372 | version "2.0.1" 1373 | resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" 1374 | 1375 | performance-now@^0.2.0: 1376 | version "0.2.0" 1377 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 1378 | 1379 | preserve@^0.2.0: 1380 | version "0.2.0" 1381 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1382 | 1383 | process-nextick-args@~1.0.6: 1384 | version "1.0.7" 1385 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1386 | 1387 | process@^0.11.0: 1388 | version "0.11.10" 1389 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 1390 | 1391 | promise@^7.1.1: 1392 | version "7.3.1" 1393 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" 1394 | dependencies: 1395 | asap "~2.0.3" 1396 | 1397 | prop-types@^15.5.10, prop-types@^15.5.8: 1398 | version "15.5.10" 1399 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" 1400 | dependencies: 1401 | fbjs "^0.8.9" 1402 | loose-envify "^1.3.1" 1403 | 1404 | proxy-addr@~1.1.4: 1405 | version "1.1.5" 1406 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" 1407 | dependencies: 1408 | forwarded "~0.1.0" 1409 | ipaddr.js "1.4.0" 1410 | 1411 | prr@~0.0.0: 1412 | version "0.0.0" 1413 | resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" 1414 | 1415 | punycode@1.3.2: 1416 | version "1.3.2" 1417 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 1418 | 1419 | punycode@^1.2.4, punycode@^1.4.1: 1420 | version "1.4.1" 1421 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1422 | 1423 | qs@6.4.0, qs@~6.4.0: 1424 | version "6.4.0" 1425 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 1426 | 1427 | querystring-es3@^0.2.0: 1428 | version "0.2.1" 1429 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 1430 | 1431 | querystring@0.2.0: 1432 | version "0.2.0" 1433 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 1434 | 1435 | querystringify@0.0.x: 1436 | version "0.0.4" 1437 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" 1438 | 1439 | querystringify@~1.0.0: 1440 | version "1.0.0" 1441 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" 1442 | 1443 | randomatic@^1.1.3: 1444 | version "1.1.7" 1445 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 1446 | dependencies: 1447 | is-number "^3.0.0" 1448 | kind-of "^4.0.0" 1449 | 1450 | range-parser@^1.0.3, range-parser@~1.2.0: 1451 | version "1.2.0" 1452 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1453 | 1454 | rc@^1.1.7: 1455 | version "1.2.1" 1456 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 1457 | dependencies: 1458 | deep-extend "~0.4.0" 1459 | ini "~1.3.0" 1460 | minimist "^1.2.0" 1461 | strip-json-comments "~2.0.1" 1462 | 1463 | react-apollo@^1.4.8: 1464 | version "1.4.8" 1465 | resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-1.4.8.tgz#b510f207b08ce4bd1e3adbd46a3ede68e3af27e7" 1466 | dependencies: 1467 | apollo-client "^1.4.0" 1468 | graphql-anywhere "^3.0.0" 1469 | graphql-tag "^2.0.0" 1470 | hoist-non-react-statics "^2.2.0" 1471 | invariant "^2.2.1" 1472 | lodash.flatten "^4.2.0" 1473 | lodash.isequal "^4.1.1" 1474 | lodash.isobject "^3.0.2" 1475 | lodash.pick "^4.4.0" 1476 | object-assign "^4.0.1" 1477 | prop-types "^15.5.8" 1478 | 1479 | react-dom@^15.4.2: 1480 | version "15.6.1" 1481 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" 1482 | dependencies: 1483 | fbjs "^0.8.9" 1484 | loose-envify "^1.1.0" 1485 | object-assign "^4.1.0" 1486 | prop-types "^15.5.10" 1487 | 1488 | react@^15.4.2: 1489 | version "15.6.1" 1490 | resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" 1491 | dependencies: 1492 | create-react-class "^15.6.0" 1493 | fbjs "^0.8.9" 1494 | loose-envify "^1.1.0" 1495 | object-assign "^4.1.0" 1496 | prop-types "^15.5.10" 1497 | 1498 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6: 1499 | version "2.3.3" 1500 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1501 | dependencies: 1502 | core-util-is "~1.0.0" 1503 | inherits "~2.0.3" 1504 | isarray "~1.0.0" 1505 | process-nextick-args "~1.0.6" 1506 | safe-buffer "~5.1.1" 1507 | string_decoder "~1.0.3" 1508 | util-deprecate "~1.0.1" 1509 | 1510 | readdirp@^2.0.0: 1511 | version "2.1.0" 1512 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1513 | dependencies: 1514 | graceful-fs "^4.1.2" 1515 | minimatch "^3.0.2" 1516 | readable-stream "^2.0.2" 1517 | set-immediate-shim "^1.0.1" 1518 | 1519 | reason-react@>=0.2.1: 1520 | version "0.2.3" 1521 | resolved "https://registry.yarnpkg.com/reason-react/-/reason-react-0.2.3.tgz#7a2654b9bf85b25ccd53ae6bd84d3f33238220ae" 1522 | dependencies: 1523 | create-react-class "^15.0.0" 1524 | 1525 | redux@^3.4.0: 1526 | version "3.7.2" 1527 | resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" 1528 | dependencies: 1529 | lodash "^4.2.1" 1530 | lodash-es "^4.2.1" 1531 | loose-envify "^1.1.0" 1532 | symbol-observable "^1.0.3" 1533 | 1534 | regex-cache@^0.4.2: 1535 | version "0.4.3" 1536 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 1537 | dependencies: 1538 | is-equal-shallow "^0.1.3" 1539 | is-primitive "^2.0.0" 1540 | 1541 | remove-trailing-separator@^1.0.1: 1542 | version "1.0.2" 1543 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" 1544 | 1545 | repeat-element@^1.1.2: 1546 | version "1.1.2" 1547 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1548 | 1549 | repeat-string@^1.5.2: 1550 | version "1.6.1" 1551 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1552 | 1553 | request@^2.81.0: 1554 | version "2.81.0" 1555 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 1556 | dependencies: 1557 | aws-sign2 "~0.6.0" 1558 | aws4 "^1.2.1" 1559 | caseless "~0.12.0" 1560 | combined-stream "~1.0.5" 1561 | extend "~3.0.0" 1562 | forever-agent "~0.6.1" 1563 | form-data "~2.1.1" 1564 | har-validator "~4.2.1" 1565 | hawk "~3.1.3" 1566 | http-signature "~1.1.0" 1567 | is-typedarray "~1.0.0" 1568 | isstream "~0.1.2" 1569 | json-stringify-safe "~5.0.1" 1570 | mime-types "~2.1.7" 1571 | oauth-sign "~0.8.1" 1572 | performance-now "^0.2.0" 1573 | qs "~6.4.0" 1574 | safe-buffer "^5.0.1" 1575 | stringstream "~0.0.4" 1576 | tough-cookie "~2.3.0" 1577 | tunnel-agent "^0.6.0" 1578 | uuid "^3.0.0" 1579 | 1580 | requires-port@1.0.x, requires-port@1.x.x: 1581 | version "1.0.0" 1582 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 1583 | 1584 | right-align@^0.1.1: 1585 | version "0.1.3" 1586 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 1587 | dependencies: 1588 | align-text "^0.1.1" 1589 | 1590 | rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: 1591 | version "2.6.1" 1592 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 1593 | dependencies: 1594 | glob "^7.0.5" 1595 | 1596 | ripemd160@0.2.0: 1597 | version "0.2.0" 1598 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" 1599 | 1600 | safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1601 | version "5.1.1" 1602 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1603 | 1604 | semver@^5.3.0: 1605 | version "5.3.0" 1606 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1607 | 1608 | send@0.15.3: 1609 | version "0.15.3" 1610 | resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309" 1611 | dependencies: 1612 | debug "2.6.7" 1613 | depd "~1.1.0" 1614 | destroy "~1.0.4" 1615 | encodeurl "~1.0.1" 1616 | escape-html "~1.0.3" 1617 | etag "~1.8.0" 1618 | fresh "0.5.0" 1619 | http-errors "~1.6.1" 1620 | mime "1.3.4" 1621 | ms "2.0.0" 1622 | on-finished "~2.3.0" 1623 | range-parser "~1.2.0" 1624 | statuses "~1.3.1" 1625 | 1626 | serve-index@^1.7.2: 1627 | version "1.9.0" 1628 | resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" 1629 | dependencies: 1630 | accepts "~1.3.3" 1631 | batch "0.6.1" 1632 | debug "2.6.8" 1633 | escape-html "~1.0.3" 1634 | http-errors "~1.6.1" 1635 | mime-types "~2.1.15" 1636 | parseurl "~1.3.1" 1637 | 1638 | serve-static@1.12.3: 1639 | version "1.12.3" 1640 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2" 1641 | dependencies: 1642 | encodeurl "~1.0.1" 1643 | escape-html "~1.0.3" 1644 | parseurl "~1.3.1" 1645 | send "0.15.3" 1646 | 1647 | set-blocking@~2.0.0: 1648 | version "2.0.0" 1649 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1650 | 1651 | set-immediate-shim@^1.0.1: 1652 | version "1.0.1" 1653 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1654 | 1655 | setimmediate@^1.0.4, setimmediate@^1.0.5: 1656 | version "1.0.5" 1657 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1658 | 1659 | setprototypeof@1.0.3: 1660 | version "1.0.3" 1661 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1662 | 1663 | sha.js@2.2.6: 1664 | version "2.2.6" 1665 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" 1666 | 1667 | signal-exit@^3.0.0: 1668 | version "3.0.2" 1669 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1670 | 1671 | sntp@1.x.x: 1672 | version "1.0.9" 1673 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1674 | dependencies: 1675 | hoek "2.x.x" 1676 | 1677 | sockjs-client@^1.0.3: 1678 | version "1.1.4" 1679 | resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" 1680 | dependencies: 1681 | debug "^2.6.6" 1682 | eventsource "0.1.6" 1683 | faye-websocket "~0.11.0" 1684 | inherits "^2.0.1" 1685 | json3 "^3.3.2" 1686 | url-parse "^1.1.8" 1687 | 1688 | sockjs@^0.3.15: 1689 | version "0.3.18" 1690 | resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" 1691 | dependencies: 1692 | faye-websocket "^0.10.0" 1693 | uuid "^2.0.2" 1694 | 1695 | source-list-map@~0.1.7: 1696 | version "0.1.8" 1697 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" 1698 | 1699 | source-map@~0.4.1: 1700 | version "0.4.4" 1701 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 1702 | dependencies: 1703 | amdefine ">=0.0.4" 1704 | 1705 | source-map@~0.5.1: 1706 | version "0.5.6" 1707 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 1708 | 1709 | sshpk@^1.7.0: 1710 | version "1.13.1" 1711 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 1712 | dependencies: 1713 | asn1 "~0.2.3" 1714 | assert-plus "^1.0.0" 1715 | dashdash "^1.12.0" 1716 | getpass "^0.1.1" 1717 | optionalDependencies: 1718 | bcrypt-pbkdf "^1.0.0" 1719 | ecc-jsbn "~0.1.1" 1720 | jsbn "~0.1.0" 1721 | tweetnacl "~0.14.0" 1722 | 1723 | "statuses@>= 1.3.1 < 2", statuses@~1.3.1: 1724 | version "1.3.1" 1725 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 1726 | 1727 | stream-browserify@^2.0.1: 1728 | version "2.0.1" 1729 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" 1730 | dependencies: 1731 | inherits "~2.0.1" 1732 | readable-stream "^2.0.2" 1733 | 1734 | stream-cache@~0.0.1: 1735 | version "0.0.2" 1736 | resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" 1737 | 1738 | stream-http@^2.3.1: 1739 | version "2.7.2" 1740 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" 1741 | dependencies: 1742 | builtin-status-codes "^3.0.0" 1743 | inherits "^2.0.1" 1744 | readable-stream "^2.2.6" 1745 | to-arraybuffer "^1.0.0" 1746 | xtend "^4.0.0" 1747 | 1748 | string-width@^1.0.1, string-width@^1.0.2: 1749 | version "1.0.2" 1750 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1751 | dependencies: 1752 | code-point-at "^1.0.0" 1753 | is-fullwidth-code-point "^1.0.0" 1754 | strip-ansi "^3.0.0" 1755 | 1756 | string_decoder@^0.10.25: 1757 | version "0.10.31" 1758 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1759 | 1760 | string_decoder@~1.0.3: 1761 | version "1.0.3" 1762 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 1763 | dependencies: 1764 | safe-buffer "~5.1.0" 1765 | 1766 | stringstream@~0.0.4: 1767 | version "0.0.5" 1768 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1769 | 1770 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1771 | version "3.0.1" 1772 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1773 | dependencies: 1774 | ansi-regex "^2.0.0" 1775 | 1776 | strip-json-comments@~2.0.1: 1777 | version "2.0.1" 1778 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1779 | 1780 | supports-color@^3.1.0, supports-color@^3.1.1: 1781 | version "3.2.3" 1782 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 1783 | dependencies: 1784 | has-flag "^1.0.0" 1785 | 1786 | symbol-observable@^1.0.2, symbol-observable@^1.0.3: 1787 | version "1.0.4" 1788 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" 1789 | 1790 | tapable@^0.1.8, tapable@~0.1.8: 1791 | version "0.1.10" 1792 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" 1793 | 1794 | tar-pack@^3.4.0: 1795 | version "3.4.0" 1796 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 1797 | dependencies: 1798 | debug "^2.2.0" 1799 | fstream "^1.0.10" 1800 | fstream-ignore "^1.0.5" 1801 | once "^1.3.3" 1802 | readable-stream "^2.1.4" 1803 | rimraf "^2.5.1" 1804 | tar "^2.2.1" 1805 | uid-number "^0.0.6" 1806 | 1807 | tar@^2.2.1: 1808 | version "2.2.1" 1809 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1810 | dependencies: 1811 | block-stream "*" 1812 | fstream "^1.0.2" 1813 | inherits "2" 1814 | 1815 | timers-browserify@^2.0.2: 1816 | version "2.0.2" 1817 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" 1818 | dependencies: 1819 | setimmediate "^1.0.4" 1820 | 1821 | to-arraybuffer@^1.0.0: 1822 | version "1.0.1" 1823 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 1824 | 1825 | todomvc-app-css@^2.1.0: 1826 | version "2.1.0" 1827 | resolved "https://registry.yarnpkg.com/todomvc-app-css/-/todomvc-app-css-2.1.0.tgz#b6f2716d339afa2e5f799347d2a48b05396242a5" 1828 | 1829 | todomvc-common@^1.0.3: 1830 | version "1.0.3" 1831 | resolved "https://registry.yarnpkg.com/todomvc-common/-/todomvc-common-1.0.3.tgz#cba1868109caa401b908ebf77794cc1014b74873" 1832 | 1833 | tough-cookie@~2.3.0: 1834 | version "2.3.2" 1835 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 1836 | dependencies: 1837 | punycode "^1.4.1" 1838 | 1839 | tty-browserify@0.0.0: 1840 | version "0.0.0" 1841 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 1842 | 1843 | tunnel-agent@^0.6.0: 1844 | version "0.6.0" 1845 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1846 | dependencies: 1847 | safe-buffer "^5.0.1" 1848 | 1849 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1850 | version "0.14.5" 1851 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1852 | 1853 | type-is@~1.6.15: 1854 | version "1.6.15" 1855 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 1856 | dependencies: 1857 | media-typer "0.3.0" 1858 | mime-types "~2.1.15" 1859 | 1860 | ua-parser-js@^0.7.9: 1861 | version "0.7.14" 1862 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" 1863 | 1864 | uglify-js@~2.7.3: 1865 | version "2.7.5" 1866 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" 1867 | dependencies: 1868 | async "~0.2.6" 1869 | source-map "~0.5.1" 1870 | uglify-to-browserify "~1.0.0" 1871 | yargs "~3.10.0" 1872 | 1873 | uglify-to-browserify@~1.0.0: 1874 | version "1.0.2" 1875 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 1876 | 1877 | uid-number@^0.0.6: 1878 | version "0.0.6" 1879 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1880 | 1881 | unpipe@~1.0.0: 1882 | version "1.0.0" 1883 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1884 | 1885 | url-parse@1.0.x: 1886 | version "1.0.5" 1887 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" 1888 | dependencies: 1889 | querystringify "0.0.x" 1890 | requires-port "1.0.x" 1891 | 1892 | url-parse@^1.1.8: 1893 | version "1.1.9" 1894 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" 1895 | dependencies: 1896 | querystringify "~1.0.0" 1897 | requires-port "1.0.x" 1898 | 1899 | url@^0.11.0: 1900 | version "0.11.0" 1901 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 1902 | dependencies: 1903 | punycode "1.3.2" 1904 | querystring "0.2.0" 1905 | 1906 | util-deprecate@~1.0.1: 1907 | version "1.0.2" 1908 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1909 | 1910 | util@0.10.3, util@^0.10.3: 1911 | version "0.10.3" 1912 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 1913 | dependencies: 1914 | inherits "2.0.1" 1915 | 1916 | utils-merge@1.0.0: 1917 | version "1.0.0" 1918 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" 1919 | 1920 | uuid@^2.0.2: 1921 | version "2.0.3" 1922 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 1923 | 1924 | uuid@^3.0.0: 1925 | version "3.1.0" 1926 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 1927 | 1928 | vary@~1.1.1: 1929 | version "1.1.1" 1930 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" 1931 | 1932 | verror@1.3.6: 1933 | version "1.3.6" 1934 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 1935 | dependencies: 1936 | extsprintf "1.0.2" 1937 | 1938 | vm-browserify@0.0.4: 1939 | version "0.0.4" 1940 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" 1941 | dependencies: 1942 | indexof "0.0.1" 1943 | 1944 | watchpack@^0.2.1: 1945 | version "0.2.9" 1946 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" 1947 | dependencies: 1948 | async "^0.9.0" 1949 | chokidar "^1.0.0" 1950 | graceful-fs "^4.1.2" 1951 | 1952 | webpack-core@~0.6.9: 1953 | version "0.6.9" 1954 | resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" 1955 | dependencies: 1956 | source-list-map "~0.1.7" 1957 | source-map "~0.4.1" 1958 | 1959 | webpack-dev-middleware@^1.10.2: 1960 | version "1.11.0" 1961 | resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz#09691d0973a30ad1f82ac73a12e2087f0a4754f9" 1962 | dependencies: 1963 | memory-fs "~0.4.1" 1964 | mime "^1.3.4" 1965 | path-is-absolute "^1.0.0" 1966 | range-parser "^1.0.3" 1967 | 1968 | webpack-dev-server@v1.16.4: 1969 | version "1.16.4" 1970 | resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-1.16.4.tgz#9a5b8e86aafa2c478e8a24d29ddb282ac696ef50" 1971 | dependencies: 1972 | compression "^1.5.2" 1973 | connect-history-api-fallback "^1.3.0" 1974 | express "^4.13.3" 1975 | http-proxy-middleware "~0.17.1" 1976 | open "0.0.5" 1977 | optimist "~0.6.1" 1978 | serve-index "^1.7.2" 1979 | sockjs "^0.3.15" 1980 | sockjs-client "^1.0.3" 1981 | stream-cache "~0.0.1" 1982 | strip-ansi "^3.0.0" 1983 | supports-color "^3.1.1" 1984 | webpack-dev-middleware "^1.10.2" 1985 | 1986 | webpack@^1.14.0: 1987 | version "1.15.0" 1988 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" 1989 | dependencies: 1990 | acorn "^3.0.0" 1991 | async "^1.3.0" 1992 | clone "^1.0.2" 1993 | enhanced-resolve "~0.9.0" 1994 | interpret "^0.6.4" 1995 | loader-utils "^0.2.11" 1996 | memory-fs "~0.3.0" 1997 | mkdirp "~0.5.0" 1998 | node-libs-browser "^0.7.0" 1999 | optimist "~0.6.0" 2000 | supports-color "^3.1.0" 2001 | tapable "~0.1.8" 2002 | uglify-js "~2.7.3" 2003 | watchpack "^0.2.1" 2004 | webpack-core "~0.6.9" 2005 | 2006 | websocket-driver@>=0.5.1: 2007 | version "0.6.5" 2008 | resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" 2009 | dependencies: 2010 | websocket-extensions ">=0.1.1" 2011 | 2012 | websocket-extensions@>=0.1.1: 2013 | version "0.1.1" 2014 | resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" 2015 | 2016 | whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.0: 2017 | version "2.0.3" 2018 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 2019 | 2020 | wide-align@^1.1.0: 2021 | version "1.1.2" 2022 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 2023 | dependencies: 2024 | string-width "^1.0.2" 2025 | 2026 | window-size@0.1.0: 2027 | version "0.1.0" 2028 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 2029 | 2030 | wordwrap@0.0.2: 2031 | version "0.0.2" 2032 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 2033 | 2034 | wordwrap@~0.0.2: 2035 | version "0.0.3" 2036 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 2037 | 2038 | wrappy@1: 2039 | version "1.0.2" 2040 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2041 | 2042 | xtend@^4.0.0: 2043 | version "4.0.1" 2044 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 2045 | 2046 | yargs@~3.10.0: 2047 | version "3.10.0" 2048 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 2049 | dependencies: 2050 | camelcase "^1.0.2" 2051 | cliui "^2.1.0" 2052 | decamelize "^1.0.0" 2053 | window-size "0.1.0" 2054 | 2055 | Trace: 2056 | Error: ENOENT: no such file or directory, stat '/Users/greg/dev/fun/my-first-react-app/node_modules/bs-platform' 2057 | --------------------------------------------------------------------------------