diff --git a/.circleci/config.yml b/.circleci/config.yml index fa1ce80a4..780fb98b8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,10 +1,11 @@ version: 2 jobs: - playground-build: docker: - - image: circleci/node:8 + # - image: circleci/node:8 + - image: circleci/node:10 + steps: - checkout - run: yarn show-versions @@ -13,7 +14,7 @@ jobs: electron-build: macos: - xcode: "9.0" + xcode: '9.4.1' steps: - checkout - run: | diff --git a/.travis.yml b/.travis.yml index 6d7dc084e..ba8ece7e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,9 @@ os: osx osx_image: xcode9.2 language: node_js -node_js: "8" +node_js: + - "8" + - "10" cache: directories: diff --git a/README.md b/README.md index e7d880b37..5cb110ff4 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@

-[![npm version](https://badge.fury.io/js/graphql-playground-react.svg)](https://badge.fury.io/js/graphql-playground-react) [![Build Status](https://travis-ci.org/prismagraphql/graphql-playground.svg?branch=master)](https://travis-ci.org/prismagraphql/graphql-playground) [![CircleCI](https://circleci.com/gh/prismagraphql/graphql-playground.svg?style=shield)](https://circleci.com/gh/prismagraphql/graphql-playground) +[![npm version](https://badge.fury.io/js/graphql-playground-react.svg)](https://badge.fury.io/js/graphql-playground-react) [![CircleCI](https://circleci.com/gh/prisma/graphql-playground.svg?style=shield)](https://circleci.com/gh/prisma/graphql-playground) GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).
-**You can download the [desktop app](https://github.com/graphcool/graphql-playground/releases) or use the web version at graphqlbin.com: [Demo](https://www.graphqlbin.com/RVIn)** +**You can download the [desktop app](https://github.com/prisma/graphql-playground/releases) or use the web version at graphqlbin.com: [Demo](https://www.graphqlbin.com/RVIn)** [![](https://i.imgur.com/AE5W6OW.png)](https://www.graphqlbin.com/RVIn) @@ -103,6 +103,7 @@ interface ISettings { interface Tab { endpoint: string query: string + name?: string variables?: string responses?: string[] headers?: { [key: string]: string } diff --git a/packages/graphql-playground-electron/package.json b/packages/graphql-playground-electron/package.json index 49d287a6d..b0b1c7f40 100644 --- a/packages/graphql-playground-electron/package.json +++ b/packages/graphql-playground-electron/package.json @@ -4,7 +4,7 @@ "homepage": "https://github.com/graphcool/graphql-playground", "repository": "graphcool/graphql-playground", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration)", - "version": "1.6.1", + "version": "1.8.0", "author": { "name": "Graphcool", "email": "hello@graph.cool", @@ -94,11 +94,11 @@ "graphcool-styles": "0.2.7", "graphcool-ui": "^0.0.14", "graphql": "^0.13.2", - "graphql-config": "^2.0.1", + "graphql-config": "^2.1.0", "graphql-config-extension-graphcool": "1.0.8", - "graphql-config-extension-prisma": "^0.0.12", - "graphql-playground-html": "^1.5.6", - "graphql-playground-react": "1.7.0", + "graphql-config-extension-prisma": "^0.2.2", + "graphql-playground-html": "^1.6.0", + "graphql-playground-react": "1.7.8", "immutable": "4.0.0-rc.9", "js-yaml": "^3.11.0", "lodash.merge": "^4.6.1", @@ -137,7 +137,7 @@ "babili-webpack-plugin": "0.1.2", "concurrently": "3.5.1", "css-loader": "0.28.11", - "electron": "2.0.2", + "electron": "2.0.11", "electron-builder": "20.15.1", "electron-devtools-installer": "2.2.4", "extract-text-webpack-plugin": "3.0.2", @@ -165,7 +165,7 @@ "tslint": "5.10.0", "tslint-graphcool-frontend": "0.0.3", "tslint-loader": "3.6.0", - "typescript": "2.8.3", + "typescript": "3.0.1", "url-loader": "0.6.2", "wait-on": "2.1.0", "webpack": "3.10.0", diff --git a/packages/graphql-playground-electron/src/renderer/components/App.tsx b/packages/graphql-playground-electron/src/renderer/components/App.tsx index 3813a81c4..d85e3eb3f 100644 --- a/packages/graphql-playground-electron/src/renderer/components/App.tsx +++ b/packages/graphql-playground-electron/src/renderer/components/App.tsx @@ -128,7 +128,8 @@ class App extends React.Component { return { endpoint: args.endpoint, subscriptionsEndpoint: args['subscriptions-endpoint'], - platformToken: args['platform-token'] || localStorage.platformToken, + platformToken: + args['platform-token'] || localStorage.getItem('platformToken'), env: args.env, } } @@ -648,14 +649,17 @@ const mapStateToProps = createStructuredSelector({ endpoint: getEndpoint, }) -export default connect(mapStateToProps, { - openSettingsTab, - selectNextTab, - selectPrevTab, - closeSelectedTab, - refetchSchema, - newSession, - saveFile, - newFileTab, - selectAppHistoryItem, -})(App) +export default connect( + mapStateToProps, + { + openSettingsTab, + selectNextTab, + selectPrevTab, + closeSelectedTab, + refetchSchema, + newSession, + saveFile, + newFileTab, + selectAppHistoryItem, + }, +)(App) diff --git a/packages/graphql-playground-electron/yarn.lock b/packages/graphql-playground-electron/yarn.lock index 9798071e7..1fdf1966d 100644 --- a/packages/graphql-playground-electron/yarn.lock +++ b/packages/graphql-playground-electron/yarn.lock @@ -16,6 +16,12 @@ dependencies: "@babel/highlight" "7.0.0-beta.49" +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + dependencies: + "@babel/types" "^7.0.0" + "@babel/highlight@7.0.0-beta.49": version "7.0.0-beta.49" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.49.tgz#96bdc6b43e13482012ba6691b1018492d39622cc" @@ -24,6 +30,24 @@ esutils "^2.0.2" js-tokens "^3.0.0" +"@babel/types@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@emotion/is-prop-valid@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz#68ad02831da41213a2089d2cab4e8ac8b30cbd85" + dependencies: + "@emotion/memoize" "^0.6.6" + +"@emotion/memoize@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz#004b98298d04c7ca3b4f50ca2035d4f60d2eed1b" + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" @@ -765,6 +789,13 @@ babel-plugin-react-transform@^2.0.2: dependencies: lodash "^4.6.1" +"babel-plugin-styled-components@>= 1": + version "1.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.8.0.tgz#9dd054c8e86825203449a852a5746f29f2dab857" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + lodash "^4.17.10" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -1193,7 +1224,7 @@ babel-register@^6.11.6, babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@6.26.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -1369,6 +1400,12 @@ boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" +boom@7.x.x: + version "7.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-7.2.0.tgz#2bff24a55565767fde869ec808317eb10c48e966" + dependencies: + hoek "5.x.x" + boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -1512,13 +1549,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.3: - version "5.1.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz#c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - builder-util-runtime@4.2.1, builder-util-runtime@^4.2.1, builder-util-runtime@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.2.1.tgz#0caa358f1331d70680010141ca591952b69b35bc" @@ -1853,7 +1883,7 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -codemirror-graphql@^0.6.11, "codemirror-graphql@github:timsuchanek/codemirror-graphql#details-fix": +codemirror-graphql@^0.6.11, codemirror-graphql@timsuchanek/codemirror-graphql#details-fix: version "0.6.12" resolved "https://codeload.github.com/timsuchanek/codemirror-graphql/tar.gz/801ec32683c38d6dc0f8f7bc19014a111edc9ebd" dependencies: @@ -2141,6 +2171,12 @@ crypt@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" +cryptiles@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.2.tgz#363c9ab5c859da9d2d6fb901b64d980966181184" + dependencies: + boom "7.x.x" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2188,17 +2224,6 @@ css-loader@0.28.11: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - css-select@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -2216,9 +2241,9 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" -css-to-react-native@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.2.0.tgz#d524ef7f39a2747a8914e86563669ba35b7cf2e7" +css-to-react-native@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.2.2.tgz#c077d0f7bf3e6c915a539e7325821c9dd01f9965" dependencies: css-color-keywords "^1.0.0" fbjs "^0.8.5" @@ -2806,9 +2831,9 @@ electron-updater@2.21.10: semver "^5.5.0" source-map-support "^0.5.5" -electron@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-2.0.2.tgz#b77e05f83419cc5ec921a2d21f35b55e4bfc3d68" +electron@2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/electron/-/electron-2.0.11.tgz#8e352a83ec607471e82d323a2adc7e7b53698e79" dependencies: "@types/node" "^8.0.24" electron-download "^3.0.1" @@ -3507,12 +3532,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -generic-names@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" - dependencies: - loader-utils "^0.2.16" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3631,25 +3650,7 @@ graphcool-styles@0.2.7: object-assign "^4.1.0" webpack-dev-server "^1.16.2" -graphcool-styles@^0.1.31: - version "0.1.43" - resolved "https://registry.yarnpkg.com/graphcool-styles/-/graphcool-styles-0.1.43.tgz#da6b72118c890923ef5c4a964405aa3e4541dc82" - dependencies: - html-webpack-plugin "^2.24.1" - interactive "^0.1.9" - object-assign "^4.1.0" - react-dom "^15.3.2" - webpack-dev-server "^1.16.2" - -graphcool-tmp-ui@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/graphcool-tmp-ui/-/graphcool-tmp-ui-0.0.11.tgz#86cfaf0754394419642cc2542a2b5f8a48245659" - dependencies: - classnames "^2.2.5" - graphcool-styles "^0.1.31" - react-modal "^1.6.5" - -graphcool-ui@0.0.14, graphcool-ui@^0.0.14: +graphcool-ui@^0.0.14: version "0.0.14" resolved "https://registry.yarnpkg.com/graphcool-ui/-/graphcool-ui-0.0.14.tgz#f3c83f4fef2c862ee899618cb6654af2c8f638b6" dependencies: @@ -3690,12 +3691,12 @@ graphql-config-extension-graphcool@1.0.8: graphcool-yml "0.4.15" graphql-config "^2.0.1" -graphql-config-extension-prisma@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.0.12.tgz#c591a2dd3d45eb4b039a39b5d4a6ea7ca7d8e05a" +graphql-config-extension-prisma@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/graphql-config-extension-prisma/-/graphql-config-extension-prisma-0.2.2.tgz#88d6b741279ceb4330be465e5272c0dc4736a3e5" dependencies: graphql-config "^2.0.1" - prisma-yml "1.0.50" + prisma-yml "1.0.95" graphql-config@1.1.4: version "1.1.4" @@ -3728,6 +3729,16 @@ graphql-config@^2.0.1: lodash "^4.17.4" minimatch "^3.0.4" +graphql-config@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.1.0.tgz#f07107ac44b661282d2002497de588f01aa92c9d" + dependencies: + graphql-import "^0.4.4" + graphql-request "^1.5.0" + js-yaml "^3.10.0" + lodash "^4.17.4" + minimatch "^3.0.4" + graphql-import@^0.1.7: version "0.1.9" resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.1.9.tgz#9161f4f7ea92337b60fd40e22e64d3a68c212729" @@ -3772,41 +3783,36 @@ graphql-language-service-utils@^1.1.0: graphql-config "1.1.4" graphql-language-service-types "^1.1.0" -graphql-playground-html@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.5.6.tgz#b5185a3b6e744e40dd8c5263bb5b5f6a2cff40b0" +graphql-playground-html@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#6ec4d54325ab2e5352506fdb89eb37c3fc718bf8" dependencies: graphql-config "2.0.0" -graphql-playground-react@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/graphql-playground-react/-/graphql-playground-react-1.7.0.tgz#397d57cb232819747f3d56ed48103a87a92b1edf" +graphql-playground-react@1.7.8: + version "1.7.8" + resolved "https://registry.yarnpkg.com/graphql-playground-react/-/graphql-playground-react-1.7.8.tgz#0165001cf157d5b848aa6f038a314ea11d259231" dependencies: apollo-link "^1.0.7" apollo-link-http "^1.3.2" apollo-link-ws "1.0.8" calculate-size "^1.1.1" - classnames "^2.2.5" codemirror "^5.38.0" codemirror-graphql timsuchanek/codemirror-graphql#details-fix copy-to-clipboard "^3.0.8" + cryptiles "4.1.2" cuid "^1.3.8" - graphcool-styles "0.2.7" - graphcool-tmp-ui "^0.0.11" - graphcool-ui "0.0.14" graphiql "^0.11.2" graphql "^0.11.7" - immutable "4.0.0-rc.9" + immutable "^4.0.0-rc.9" isomorphic-fetch "^2.2.1" js-yaml "^3.10.0" json-stable-stringify "^1.0.1" keycode "^2.1.9" - lodash "^4.17.4" + lodash "^4.17.11" lodash.debounce "^4.0.8" markdown-it "^8.4.1" marked "^0.3.19" - polished "^1.9.0" - postcss-modules "^1.1.0" prettier "^1.13.0" prop-types "^15.6.0" query-string "5" @@ -3821,6 +3827,7 @@ graphql-playground-react@1.7.0: react-modal "^3.1.11" react-redux "^5.0.6" react-router-dom "^4.2.2" + react-sortable-hoc "^0.8.3" react-transition-group "^2.2.1" react-virtualized "^9.12.0" redux "^3.7.2" @@ -3832,10 +3839,7 @@ graphql-playground-react@1.7.0: redux-saga "^0.16.0" reselect "^3.0.1" seamless-immutable "^7.0.1" - styled-components "^3.1.6" - styled-jsx "^2.2.1" - styled-jsx-postcss timsuchanek/styled-jsx-postcss#build3 - styled-theming "^2.2.0" + styled-components "^4.0.0" subscriptions-transport-ws "^0.9.5" utility-types "^1.0.0" webpack-bundle-analyzer "^2.9.2" @@ -3995,6 +3999,10 @@ hoek@4.x.x: version "4.2.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" +hoek@5.x.x: + version "5.0.4" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da" + hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" @@ -4160,7 +4168,7 @@ iconv-lite@^0.4.23, iconv-lite@^0.4.4, iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: +icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -4190,6 +4198,10 @@ immutable@4.0.0-rc.9: version "4.0.0-rc.9" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.9.tgz#1e6e0094e649013ec3742d2b5aeeca5eeda4f0bf" +immutable@^4.0.0-rc.9: + version "4.0.0-rc.10" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.10.tgz#0c97cd272bbae51861cb2311edbbe548b2fc4ef7" + import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" @@ -5215,6 +5227,10 @@ lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -5341,6 +5357,10 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +memoize-one@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.2.tgz#3fb8db695aa14ab9c0f1644e1585a8806adc1aee" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -6143,7 +6163,7 @@ pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" -polished@1.9.2, polished@^1.9.0: +polished@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/polished/-/polished-1.9.2.tgz#d705cac66f3a3ed1bd38aad863e2c1e269baf6b6" @@ -6316,48 +6336,33 @@ postcss-minify-selectors@^2.0.4: postcss "^5.0.14" postcss-selector-parser "^2.0.0" -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - dependencies: - postcss "^6.0.1" - postcss-modules-extract-imports@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@1.2.0, postcss-modules-local-by-default@^1.2.0: +postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@1.1.0, postcss-modules-scope@^1.1.0: +postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@1.3.0, postcss-modules-values@^1.3.0: +postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-modules@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-1.1.0.tgz#c9f94f76ff6addf7c35b842e69ed442118156bb0" - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^1.0.2" - postcss "^6.0.1" - string-hash "^1.1.1" - postcss-normalize-charset@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" @@ -6444,14 +6449,6 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16, postcss@^5.2.8: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" @@ -6506,13 +6503,13 @@ pretty-format@^22.4.0, pretty-format@^22.4.3: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -prisma-json-schema@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/prisma-json-schema/-/prisma-json-schema-0.0.4.tgz#4ecee29c351e382fb833dad83a38c62961380458" +prisma-json-schema@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/prisma-json-schema/-/prisma-json-schema-0.1.2.tgz#2ad1cad7858d42bb8b32d3a31e9d3d9a7318d2e0" -prisma-yml@1.0.50: - version "1.0.50" - resolved "https://registry.yarnpkg.com/prisma-yml/-/prisma-yml-1.0.50.tgz#c85de8fa55efc6cac59083496bc038278be04076" +prisma-yml@1.0.95: + version "1.0.95" + resolved "https://registry.yarnpkg.com/prisma-yml/-/prisma-yml-1.0.95.tgz#0b025336b068eb029d25fc1357a39994fe26b89f" dependencies: ajv "5" bluebird "^3.5.1" @@ -6528,7 +6525,7 @@ prisma-yml@1.0.50: json-stable-stringify "^1.0.1" jsonwebtoken "^8.1.0" lodash "^4.17.4" - prisma-json-schema "0.0.4" + prisma-json-schema "0.1.2" replaceall "^0.1.6" scuid "^1.0.2" yaml-ast-parser "^0.0.40" @@ -6744,15 +6741,6 @@ react-dom-factories@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.2.tgz#eb7705c4db36fb501b3aa38ff759616aa0ff96e0" -react-dom@^15.3.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" - react-dom@^16.3.1, react-dom@^16.4.0: version "16.4.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.0.tgz#099f067dd5827ce36a29eaf9a6cdc7cbf6216b1e" @@ -6853,6 +6841,14 @@ react-side-effect@^1.1.0: exenv "^1.2.1" shallowequal "^1.0.1" +react-sortable-hoc@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-0.8.3.tgz#8537e8ab8d6bad6829885755a0f847817ed78648" + dependencies: + babel-runtime "^6.11.6" + invariant "^2.2.1" + prop-types "^15.5.7" + react-test-renderer@16.4.0: version "16.4.0" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.4.0.tgz#0dbe0e24263e94e1830c7afb1f403707fad313a3" @@ -7777,7 +7773,7 @@ string-hash@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.1.tgz#8e85bed291e0763b8f6809d9c3368fea048db3dc" -string-hash@1.1.3, string-hash@^1.1.1: +string-hash@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" @@ -7863,20 +7859,18 @@ style-loader@0.20.1: loader-utils "^1.1.0" schema-utils "^0.4.3" -styled-components@^3.1.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-3.3.0.tgz#335b1b2b673b416cd5ec012010e237ed1f877fe9" +styled-components@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.0.0.tgz#bd37d79408246302051cd63f52a3539f70aa3197" dependencies: - buffer "^5.0.3" - css-to-react-native "^2.0.3" - fbjs "^0.8.16" - hoist-non-react-statics "^2.5.0" - is-plain-object "^2.0.1" + "@emotion/is-prop-valid" "^0.6.8" + babel-plugin-styled-components ">= 1" + css-to-react-native "^2.2.2" + memoize-one "^4.0.0" prop-types "^15.5.4" react-is "^16.3.1" stylis "^3.5.0" stylis-rule-sheet "^0.0.10" - supports-color "^3.2.3" "styled-jsx-postcss@git+https://github.com/timsuchanek/styled-jsx-postcss#build3": version "0.2.0" @@ -7889,19 +7883,7 @@ styled-components@^3.1.6: postcss-load-plugins "^2.2.0" styled-jsx "^0.5.7" -"styled-jsx-postcss@github:timsuchanek/styled-jsx-postcss#build3": - version "0.2.0" - uid "677ee0fb7f9138047a00e03c8c3e44adbb33cf2a" - resolved "https://codeload.github.com/timsuchanek/styled-jsx-postcss/tar.gz/677ee0fb7f9138047a00e03c8c3e44adbb33cf2a" - dependencies: - babel-traverse "^6.21.0" - babylon "^6.14.1" - deasync "^0.1.9" - postcss "^5.2.8" - postcss-load-plugins "^2.2.0" - styled-jsx "^0.5.7" - -styled-jsx@2.2.6, styled-jsx@^2.2.1: +styled-jsx@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-2.2.6.tgz#7e826279e1ef718213ef9cc42ac7370b5008449d" dependencies: @@ -7926,10 +7908,6 @@ styled-jsx@^0.5.7: source-map "0.5.6" string-hash "1.1.1" -styled-theming@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/styled-theming/-/styled-theming-2.2.0.tgz#3084e43d40eaab4bc11ebafd3de04e3622fee37e" - stylis-rule-sheet@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.8.tgz#b0d0a126c945b1f3047447a3aae0647013e8d166" @@ -8110,6 +8088,10 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -8288,9 +8270,9 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170" +typescript@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" ua-parser-js@^0.7.9: version "0.7.18" diff --git a/packages/graphql-playground-html/package.json b/packages/graphql-playground-html/package.json index eb517de7a..16b2765b3 100644 --- a/packages/graphql-playground-html/package.json +++ b/packages/graphql-playground-html/package.json @@ -1,6 +1,6 @@ { "name": "graphql-playground-html", - "version": "1.6.0", + "version": "1.6.4", "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-html", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", "contributors": [ @@ -26,7 +26,6 @@ ], "devDependencies": { "@types/node": "9.4.6", - "graphql-config": "1.1.7", "rimraf": "2.6.2", "typescript": "2.6.2" }, @@ -35,6 +34,6 @@ "definition": "dist/index.d.ts" }, "dependencies": { - "graphql-config": "2.0.0" + "graphql-config": "2.2.1" } } diff --git a/packages/graphql-playground-html/src/render-playground-page.ts b/packages/graphql-playground-html/src/render-playground-page.ts index 9437a17dd..553ddfa36 100644 --- a/packages/graphql-playground-html/src/render-playground-page.ts +++ b/packages/graphql-playground-html/src/render-playground-page.ts @@ -54,6 +54,7 @@ export interface IntrospectionResult { export interface RenderPageOptions extends MiddlewareOptions { version: string + cdnUrl?: string env?: any } @@ -67,15 +68,15 @@ export interface Tab { const loading = getLoadingMarkup() -const getCdnMarkup = options => ` - - - ` diff --git a/packages/graphql-playground-html/withAnimation.html b/packages/graphql-playground-html/withAnimation.html index 6a2194b0c..cb9bdd798 100644 --- a/packages/graphql-playground-html/withAnimation.html +++ b/packages/graphql-playground-html/withAnimation.html @@ -536,5 +536,5 @@ }) }) - - \ No newline at end of file + + diff --git a/packages/graphql-playground-html/yarn.lock b/packages/graphql-playground-html/yarn.lock index 307bd76a9..4d43a6975 100644 --- a/packages/graphql-playground-html/yarn.lock +++ b/packages/graphql-playground-html/yarn.lock @@ -27,18 +27,12 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -cross-fetch@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-1.1.1.tgz#dede6865ae30f37eae62ac90ebb7bdac002b05a0" +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" dependencies: - node-fetch "1.7.3" - whatwg-fetch "2.0.3" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" + node-fetch "2.1.2" + whatwg-fetch "2.0.4" esprima@^4.0.0: version "4.0.0" @@ -59,38 +53,28 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -graphql-config@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" +graphql-config@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.2.1.tgz#5fd0ec77ac7428ca5fb2026cf131be10151a0cb2" dependencies: - graphql-import "^0.4.0" - graphql-request "^1.4.0" + graphql-import "^0.7.1" + graphql-request "^1.5.0" js-yaml "^3.10.0" lodash "^4.17.4" minimatch "^3.0.4" -graphql-import@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.0.tgz#84c1b2dfde1c9af26525bd87a6d2f84a63853501" +graphql-import@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" dependencies: - graphql "^0.12.3" lodash "^4.17.4" + resolve-from "^4.0.0" -graphql-request@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.4.1.tgz#0772743cfac8dfdd4d69d36106a96c9bdd191ce8" - dependencies: - cross-fetch "1.1.1" - -graphql@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.3.tgz#11668458bbe28261c0dcb6e265f515ba79f6ce07" +graphql-request@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" dependencies: - iterall "1.1.3" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + cross-fetch "2.2.2" inflight@^1.0.4: version "1.0.6" @@ -103,14 +87,6 @@ inherits@2: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -iterall@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9" - js-yaml@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" @@ -128,12 +104,9 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -node-fetch@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" +node-fetch@2.1.2: + version "2.1.2" + resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" once@^1.3.0: version "1.4.0" @@ -145,6 +118,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + rimraf@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" @@ -159,9 +136,9 @@ typescript@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" -whatwg-fetch@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" wrappy@1: version "1.0.2" diff --git a/packages/graphql-playground-middleware-express/package.json b/packages/graphql-playground-middleware-express/package.json index f944b5186..f53f38bf3 100644 --- a/packages/graphql-playground-middleware-express/package.json +++ b/packages/graphql-playground-middleware-express/package.json @@ -1,6 +1,6 @@ { "name": "graphql-playground-middleware-express", - "version": "1.7.1", + "version": "1.7.6", "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-middleware-express", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", "contributors": [ @@ -14,7 +14,7 @@ "files": [ "dist" ], - "playgroundVersion": "1.7.1", + "playgroundVersion": "1.7.8", "scripts": { "build": "rimraf dist && tsc", "prepare": "npm run build" @@ -34,7 +34,7 @@ "typescript": "2.6.2" }, "dependencies": { - "graphql-playground-html": "1.6.0" + "graphql-playground-html": "1.6.4" }, "typings": "dist/index.d.ts", "typescript": { diff --git a/packages/graphql-playground-middleware-express/yarn.lock b/packages/graphql-playground-middleware-express/yarn.lock index 13fb913b3..e24048bd6 100644 --- a/packages/graphql-playground-middleware-express/yarn.lock +++ b/packages/graphql-playground-middleware-express/yarn.lock @@ -27,18 +27,12 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -cross-fetch@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-1.1.1.tgz#dede6865ae30f37eae62ac90ebb7bdac002b05a0" +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" dependencies: - node-fetch "1.7.3" - whatwg-fetch "2.0.3" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" + node-fetch "2.1.2" + whatwg-fetch "2.0.4" esprima@^4.0.0: version "4.0.0" @@ -59,44 +53,34 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -graphql-config@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" +graphql-config@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.2.1.tgz#5fd0ec77ac7428ca5fb2026cf131be10151a0cb2" dependencies: - graphql-import "^0.4.0" - graphql-request "^1.4.0" + graphql-import "^0.7.1" + graphql-request "^1.5.0" js-yaml "^3.10.0" lodash "^4.17.4" minimatch "^3.0.4" -graphql-import@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.1.tgz#ef1c047d6250bc8c009b12b64c26924ac4f4716c" +graphql-import@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" dependencies: - graphql "^0.12.3" lodash "^4.17.4" + resolve-from "^4.0.0" -graphql-playground-html@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#6ec4d54325ab2e5352506fdb89eb37c3fc718bf8" - dependencies: - graphql-config "2.0.0" - -graphql-request@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.4.1.tgz#0772743cfac8dfdd4d69d36106a96c9bdd191ce8" +graphql-playground-html@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.4.tgz#be7c5a6213d67aeedf03d90b7e7d55fec4d42212" dependencies: - cross-fetch "1.1.1" + graphql-config "2.2.1" -graphql@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.3.tgz#11668458bbe28261c0dcb6e265f515ba79f6ce07" +graphql-request@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" dependencies: - iterall "1.1.3" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + cross-fetch "2.2.2" inflight@^1.0.4: version "1.0.6" @@ -109,14 +93,6 @@ inherits@2: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -iterall@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9" - js-yaml@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" @@ -134,12 +110,9 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -node-fetch@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" +node-fetch@2.1.2: + version "2.1.2" + resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" once@^1.3.0: version "1.4.0" @@ -151,6 +124,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + rimraf@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" @@ -165,9 +142,9 @@ typescript@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" -whatwg-fetch@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" wrappy@1: version "1.0.2" diff --git a/packages/graphql-playground-middleware-hapi/examples/basic/package-lock.json b/packages/graphql-playground-middleware-hapi/examples/basic/package-lock.json deleted file mode 100644 index 29217ecc1..000000000 --- a/packages/graphql-playground-middleware-hapi/examples/basic/package-lock.json +++ /dev/null @@ -1,957 +0,0 @@ -{ - "name": "hapi", - "version": "2.0.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@saeris/graphql-playground-middleware-hapi": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@saeris/graphql-playground-middleware-hapi/-/graphql-playground-middleware-hapi-2.0.5.tgz", - "integrity": "sha1-DrR8IFccD0v/R/KwYK9klFp0f+0=", - "requires": { - "graphql-playground-html": "1.4.2", - "graphql-playground-middleware": "1.2.1-beta.6" - } - }, - "@types/graphql": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.11.7.tgz", - "integrity": "sha512-+6UMNcBeLR/G/yMIFXVA6XJhfDlPO7x6cb7ooiyN12Q6GE1l3KbupZoWBMV2Uw3F2q+i+IiaHx9rIKwLADw+7A==" - }, - "@types/lodash": { - "version": "4.14.92", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.92.tgz", - "integrity": "sha512-cdvY1fyUGYgG7/i07a/sR5PnD6+Z+ljUrD0CNVf0qj645VvEdLNtZPjvCp4siPy3rQ/KRXMfUATIqi3+9x57Sw==" - }, - "@types/zen-observable": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.3.tgz", - "integrity": "sha512-aDvGDAHcVfUqNmd8q4//cHAP+HGxsbChbBbuk3+kMVk5TTxfWLpQWvVN3+UPjohLnwMYN7jr6BWNn2cYNqdm7g==" - }, - "accept": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", - "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", - "requires": { - "boom": "7.1.1", - "hoek": "5.0.2" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ammo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", - "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", - "requires": { - "boom": "6.0.0", - "hoek": "5.0.2" - }, - "dependencies": { - "boom": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", - "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", - "requires": { - "hoek": "5.0.2" - } - } - } - }, - "apollo-cache-control": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.0.7.tgz", - "integrity": "sha512-DoMTr3uTC5Cx9ukSO63wlzHD15C37FwZuoOZEu+m/UTzVFKQ4PnlBKzwZ0H2+iIwcdSulV0xte6Z3wBe9lHAOA==", - "requires": { - "graphql-extensions": "0.0.5" - } - }, - "apollo-link": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.0.7.tgz", - "integrity": "sha512-oHzvpIDEy4UCNdbOw42wtOK1zOzdMrt4ulYyon24zT24MjicezTmXqJh2mR6whTl8RiUDLDY4ByusdKKXdcqHw==", - "requires": { - "@types/zen-observable": "0.5.3", - "apollo-utilities": "1.0.3", - "zen-observable": "0.6.1" - } - }, - "apollo-server-core": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-1.3.2.tgz", - "integrity": "sha1-82hVo+vcLXe4ucRUOAvx1wYQX/w=", - "requires": { - "apollo-cache-control": "0.0.7", - "apollo-tracing": "0.1.1", - "graphql-extensions": "0.0.5" - } - }, - "apollo-server-hapi": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-server-hapi/-/apollo-server-hapi-1.3.2.tgz", - "integrity": "sha1-uK+QHlfRz91kZ0XFxVhxOKZg+Ps=", - "requires": { - "apollo-server-core": "1.3.2", - "apollo-server-module-graphiql": "1.3.2", - "boom": "7.1.1" - } - }, - "apollo-server-module-graphiql": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-server-module-graphiql/-/apollo-server-module-graphiql-1.3.2.tgz", - "integrity": "sha1-Cp5MSN7OOvkE/uMz+V97mBczXKc=" - }, - "apollo-tracing": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.1.1.tgz", - "integrity": "sha512-OrL0SYpmwNs6R339y7Is6PppOkyooMB1iLSN+HAp1FdBycQ88SqVV5Dqjxb4Du+TrMyyJLHfR5BAENZSFQyWGQ==", - "requires": { - "graphql-extensions": "0.0.5" - } - }, - "apollo-utilities": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.3.tgz", - "integrity": "sha512-wNKf0GAXfvnmZFYVl1YIzZ6LDSUe+zo4SKd2kbzi7YquNZUuSwJnG1FfEphvfwRRTI2dnpcGZEq26I7uUBrWNw==" - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "b64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/b64/-/b64-4.0.0.tgz", - "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" - }, - "big-time": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.0.tgz", - "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==" - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "boom": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.1.1.tgz", - "integrity": "sha512-qwEARHTliqgEQiVkzKkkbLt3q0vRPIW60VRZ8zRnbjsm7INkPe9NxfAYDDYLZOdhxyUHa1gIe639Cx7t6RH/4A==", - "requires": { - "hoek": "5.0.2" - } - }, - "bounce": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", - "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", - "requires": { - "boom": "7.1.1", - "hoek": "5.0.2" - } - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "call": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", - "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", - "requires": { - "boom": "7.1.1", - "hoek": "5.0.2" - } - }, - "catbox": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", - "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", - "requires": { - "boom": "7.1.1", - "bounce": "1.2.0", - "hoek": "5.0.2", - "joi": "13.1.0" - } - }, - "catbox-memory": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", - "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", - "requires": { - "big-time": "2.0.0", - "boom": "7.1.1", - "hoek": "5.0.2" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "content": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/content/-/content-4.0.3.tgz", - "integrity": "sha512-BrMfT1xXZHaXyPT/sneXc3IQzh8uL15JWV1R5tU0xo4sBGjF7BN+IRi9WoQLSbfNEs7bJ3E69rjxBKg/RL7lOQ==", - "requires": { - "boom": "7.1.1" - } - }, - "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" - }, - "cross-fetch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-1.1.1.tgz", - "integrity": "sha512-+VJE04+UfxxmBfcnmAu/lKor53RUCx/1ilOti4p+JgrnLQ4AZZIRoe2OEd76VaHyWQmQxqKnV+TaqjHC4r0HWw==", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - } - }, - "cryptiles": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", - "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", - "requires": { - "boom": "7.1.1" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" - }, - "ecdsa-sig-formatter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", - "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", - "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" - } - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } - }, - "es6-promise": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz", - "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ==" - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" - }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "2.0.0" - } - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graphcool-json-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/graphcool-json-schema/-/graphcool-json-schema-1.2.0.tgz", - "integrity": "sha512-OOltel1a2z+aJgdyGx7TmX3gPterUMObZBWrt6UT1pKj8YjH+jDmM/mBIm4rIKBaweNZn+Rff/pm0A93Aw5row==" - }, - "graphcool-yml": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/graphcool-yml/-/graphcool-yml-0.2.2.tgz", - "integrity": "sha512-8wYwtmsGoVdGu9dMsZv5I1BV1FPgVS84mGKpY8SPC7yGfVwYquh2Scr8KHVsNq3oe29JerL0yp7rJ9zXI/KQiQ==", - "requires": { - "ajv": "5.5.2", - "bluebird": "3.5.1", - "debug": "3.1.0", - "dotenv": "4.0.0", - "fs-extra": "4.0.3", - "graphcool-json-schema": "1.2.0", - "isomorphic-fetch": "2.2.1", - "js-yaml": "3.10.0", - "json-stable-stringify": "1.0.1", - "jsonwebtoken": "8.1.0", - "lodash": "4.17.4", - "replaceall": "0.1.6", - "scuid": "1.0.2", - "yaml-ast-parser": "0.0.40" - } - }, - "graphql": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.12.3.tgz", - "integrity": "sha512-Hn9rdu4zacplKXNrLCvR8YFiTGnbM4Zw/UH8FDmzBDsH7ou40lSNH4tIlsxcYnz2TGNVJCpu1WxCM23yd6kzhA==", - "requires": { - "iterall": "1.1.3" - } - }, - "graphql-config": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-1.1.4.tgz", - "integrity": "sha512-OwDrKrYc1h7HHhEVInQrKInl7/ZgfT4ftjjBJDahBiiHi/mEstnn0mVlSb7B06SF+PZt/FgkE3q+RX+rqavvWQ==", - "requires": { - "graphql": "0.12.3", - "graphql-import": "0.1.9", - "graphql-request": "1.4.1", - "js-yaml": "3.10.0", - "minimatch": "3.0.4", - "rimraf": "2.6.2" - } - }, - "graphql-config-extension-graphcool": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graphql-config-extension-graphcool/-/graphql-config-extension-graphcool-1.0.1.tgz", - "integrity": "sha512-MfGsw8FlNHTUnDXDG0xYcbOVhByNBoUEfzdtxHCdueGoMRgCIjqOKDaktqspLVQmE3KcL3SD/wR6KdWnOWxi7A==", - "requires": { - "graphcool-yml": "0.2.2", - "graphql-config": "1.1.4" - } - }, - "graphql-extensions": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.0.5.tgz", - "integrity": "sha512-IbgYhKIyI60Nio/uJjkkiXaOZ2fI8ynAyzcA/okD0iuKzBdWX4Tn6tidMLgd16Bf2v3TtNnyXnN0F2BJDs6e4A==", - "requires": { - "core-js": "2.5.3", - "source-map-support": "0.5.0" - } - }, - "graphql-import": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.1.9.tgz", - "integrity": "sha512-syHe1DlzOQScChjU21J/dSAcOh7T2ikr/5QGw1TQCzLR96WQ+95Suitt7TjcT3NA1/uBq/hc70MgxvJrFWdWAg==", - "requires": { - "@types/graphql": "0.11.7", - "@types/lodash": "4.14.92", - "graphql": "0.12.3", - "lodash": "4.17.4" - } - }, - "graphql-playground-html": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.4.2.tgz", - "integrity": "sha512-K5jqgI3gT9pKwYNCxsvefmaMZxzZity+5giMxf+2Enq3bKrYVGWGA5c1iVSK2XFSa32cr2CXF1yJ4tUkeNRYNA==", - "requires": { - "dotenv": "4.0.0", - "graphql-config": "1.1.4", - "graphql-config-extension-graphcool": "1.0.1" - } - }, - "graphql-playground-middleware": { - "version": "1.2.1-beta.6", - "resolved": "https://registry.npmjs.org/graphql-playground-middleware/-/graphql-playground-middleware-1.2.1-beta.6.tgz", - "integrity": "sha512-0NU8d6VKphOeGWl1FHTUDI2WSMwGTJ7siEANQpNRAx7QD88ilHx9Ce5zsMjy5091EgiHftVKPPM+6wNPd/uS/g==", - "requires": { - "find-up": "2.1.0" - } - }, - "graphql-request": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.4.1.tgz", - "integrity": "sha1-B3J0PPrI391NadNhBqlsm90ZHOg=", - "requires": { - "cross-fetch": "1.1.1" - } - }, - "graphql-subscriptions": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.5.6.tgz", - "integrity": "sha512-LQW9cg0/L/yBMEJFsQwKhDCJifPGh8oWZz29Tzq4DVEwwS65O0Om0YGB1FbK/hP9/lINdEk91khHAKJv3OLGxQ==", - "requires": { - "es6-promise": "4.2.2", - "iterall": "1.1.3" - } - }, - "graphql-tools": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-2.16.0.tgz", - "integrity": "sha512-DWsqzwjuE1Uo9YprcGPWSvqZsLriw+FvBljYq+QgptpiZKABIQoi/4uAMwKWQZfJHcxfgIO5wjkCuKNmRpPP4A==", - "requires": { - "apollo-link": "1.0.7", - "apollo-utilities": "1.0.3", - "deprecated-decorator": "0.1.6", - "graphql-subscriptions": "0.5.6", - "uuid": "3.1.0" - } - }, - "hapi": { - "version": "17.2.0", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.0.tgz", - "integrity": "sha512-zw2tqNimjT+qglgUNGNpeweHJ5To1xUcJcfGKsG5dWiTzwkEZtmtHJ8mBIvxuuZ3Buu4xkAGj0yWrrR95FVqQQ==", - "requires": { - "accept": "3.0.2", - "ammo": "3.0.0", - "boom": "7.1.1", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.1", - "heavy": "6.1.0", - "hoek": "5.0.2", - "joi": "13.1.0", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.4", - "statehood": "6.0.5", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" - } - }, - "heavy": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.0.tgz", - "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", - "requires": { - "boom": "7.1.1", - "hoek": "5.0.2", - "joi": "13.1.0" - } - }, - "hoek": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.2.tgz", - "integrity": "sha512-NA10UYP9ufCtY2qYGkZktcQXwVyYK4zK0gkaFSB96xhtlo6V8tKXdQgx8eHolQTRemaW0uLn8BhjhwqrOU+QLQ==" - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "iron": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", - "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", - "requires": { - "boom": "7.1.1", - "cryptiles": "4.1.1", - "hoek": "5.0.2" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "isemail": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.0.0.tgz", - "integrity": "sha512-rz0ng/c+fX+zACpLgDB8fnUQ845WSU06f4hlhk4K8TJxmR6f5hyvitu9a9JdMD7aq/P4E0XdG1uaab2OiXgHlA==", - "requires": { - "punycode": "2.1.0" - } - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - } - }, - "iterall": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", - "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==" - }, - "joi": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.0.tgz", - "integrity": "sha512-x6pGmDYI6hwNi3skP6irQqRaJntzeaWmZ4rsnjc/NTlf6P5Gp3Aw/O8REe8oLJ6wPhrzd9K3RW1m3Yz/Hx4Weg==", - "requires": { - "hoek": "5.0.2", - "isemail": "3.0.0", - "topo": "3.0.0" - } - }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "0.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonwebtoken": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.1.0.tgz", - "integrity": "sha1-xjl80uX9WD1lwAeoPce7eOaYK4M=", - "requires": { - "jws": "3.1.4", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.0.0", - "xtend": "4.0.1" - } - }, - "jwa": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", - "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", - "requires": { - "base64url": "2.0.0", - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9", - "safe-buffer": "5.1.1" - } - }, - "jws": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", - "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", - "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "mime-db": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.32.0.tgz", - "integrity": "sha512-+ZWo/xZN40Tt6S+HyakUxnSOgff+JEdaneLWIm0Z6LmpCn5DMcZntLyUY5c/rTDog28LhXLKOUZKoTxTCAdBVw==" - }, - "mimos": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", - "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", - "requires": { - "hoek": "5.0.2", - "mime-db": "1.32.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nigel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", - "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", - "requires": { - "hoek": "5.0.2", - "vise": "3.0.0" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "1.2.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "pez": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.1.tgz", - "integrity": "sha512-0c/SoW5MY7lPdc5U1Q/ixyjLZbluGWJonHVmn4mKwSq7vgO9+a9WzoCopHubIwkot6Q+fevNVElaA+1M9SqHrA==", - "requires": { - "b64": "4.0.0", - "boom": "7.1.1", - "content": "4.0.3", - "hoek": "5.0.2", - "nigel": "3.0.0" - } - }, - "podium": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", - "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", - "requires": { - "hoek": "5.0.2", - "joi": "13.1.0" - } - }, - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" - }, - "replaceall": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", - "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=" - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "scuid": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.0.2.tgz", - "integrity": "sha512-WTsfws/YBICcWYnxcqSkaxGvJpDgaiwvZdU1OVl6R955off61f3hO+pdUWfbso6Dg7rwPP0JsPDeIHwxTfyCUA==" - }, - "shot": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.4.tgz", - "integrity": "sha512-V8wHSJSNqt8ZIgdbTQCFIrp5BwBH+tsFLNBL1REmkFN/0PJdmzUBQscZqsbdSvdLc+Qxq7J5mcwzai66vs3ozA==", - "requires": { - "hoek": "5.0.2", - "joi": "13.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", - "requires": { - "source-map": "0.6.1" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "statehood": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", - "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", - "requires": { - "boom": "7.1.1", - "bounce": "1.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.2", - "iron": "5.0.4", - "joi": "13.1.0" - } - }, - "subtext": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", - "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", - "requires": { - "boom": "7.1.1", - "content": "4.0.3", - "hoek": "5.0.2", - "pez": "4.0.1", - "wreck": "14.0.2" - } - }, - "teamwork": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.1.tgz", - "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==" - }, - "topo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", - "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", - "requires": { - "hoek": "5.0.2" - } - }, - "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "vise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", - "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", - "requires": { - "hoek": "5.0.2" - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "wreck": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", - "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", - "requires": { - "boom": "7.1.1", - "hoek": "5.0.2" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yaml-ast-parser": { - "version": "0.0.40", - "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.40.tgz", - "integrity": "sha1-CFNtTnPTIrHJziB6uN1w4E0grm4=" - }, - "zen-observable": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.6.1.tgz", - "integrity": "sha512-DKjFTL7siVLIUMZOFZ0alqMEdTsXPUxoCZzrvB2tdWEVN/6606Qh1nCfSTCAOZMrtcPzzFI3BXmwBKLAew52NA==" - } - } -} diff --git a/packages/graphql-playground-middleware-hapi/package-lock.json b/packages/graphql-playground-middleware-hapi/package-lock.json deleted file mode 100644 index 50946d463..000000000 --- a/packages/graphql-playground-middleware-hapi/package-lock.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "name": "graphql-playground-middleware-hapi", - "version": "1.5.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/node": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.0.tgz", - "integrity": "sha512-zkYho6/4wZyX6o9UQ8rd0ReEaiEYNNCqYFIAACe2Tf9DrYlgzWW27OigYHnnztnnZQwVRpwWmZKegFmDpinIsA==", - "dev": true - }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "cross-fetch": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-1.1.1.tgz", - "integrity": "sha512-+VJE04+UfxxmBfcnmAu/lKor53RUCx/1ilOti4p+JgrnLQ4AZZIRoe2OEd76VaHyWQmQxqKnV+TaqjHC4r0HWw==", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - } - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graphql": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.12.3.tgz", - "integrity": "sha512-Hn9rdu4zacplKXNrLCvR8YFiTGnbM4Zw/UH8FDmzBDsH7ou40lSNH4tIlsxcYnz2TGNVJCpu1WxCM23yd6kzhA==", - "requires": { - "iterall": "1.1.3" - } - }, - "graphql-playground-html": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.5.2.tgz", - "integrity": "sha512-ioxUVezhYuP/qS840sug7agID6+bdZH4HEMPAGOVNou/aNQJbglaFxXbbUuARgCdeHbiQqDV+ZYWzSec/8oLyA==", - "requires": { - "graphql-config": "1.1.7" - }, - "dependencies": { - "graphql-config": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-1.1.7.tgz", - "integrity": "sha512-RJIgwbS43Mik0kqANtcOtGL7Por8TPrK2t8Y+X284eVifialSqyprvZqoAxR4E/LSFIrCWS1txHSHGujx3fS9w==", - "requires": { - "graphql": "0.12.3", - "graphql-import": "0.4.1", - "graphql-request": "1.4.1", - "js-yaml": "3.10.0", - "minimatch": "3.0.4" - } - }, - "graphql-import": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.4.1.tgz", - "integrity": "sha512-Tf+qLmlaKZsB5lo1wV45F5PHjFGiYzJgazuPOitDc7lLdyh94C67MiGiNQp2hDvkH5Wwg8v+qLFv2fQGLWzquA==", - "requires": { - "graphql": "0.12.3", - "lodash": "4.17.4" - } - } - } - }, - "graphql-request": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.4.1.tgz", - "integrity": "sha1-B3J0PPrI391NadNhBqlsm90ZHOg=", - "requires": { - "cross-fetch": "1.1.1" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "iterall": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", - "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==" - }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.8" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "typescript": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", - "dev": true - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/packages/graphql-playground-middleware-hapi/package.json b/packages/graphql-playground-middleware-hapi/package.json index 8caf72e6b..d03913559 100644 --- a/packages/graphql-playground-middleware-hapi/package.json +++ b/packages/graphql-playground-middleware-hapi/package.json @@ -1,6 +1,6 @@ { "name": "graphql-playground-middleware-hapi", - "version": "1.7.1", + "version": "1.7.5", "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-middleware-hapi", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", "contributors": [ @@ -15,7 +15,7 @@ "files": [ "dist" ], - "playgroundVersion": "1.7.1", + "playgroundVersion": "1.7.8", "scripts": { "build": "rimraf dist && tsc", "prepare": "npm run build" @@ -40,6 +40,6 @@ "definition": "dist/index.d.ts" }, "dependencies": { - "graphql-playground-html": "1.6.0" + "graphql-playground-html": "1.6.3" } } diff --git a/packages/graphql-playground-middleware-hapi/yarn.lock b/packages/graphql-playground-middleware-hapi/yarn.lock index 13fb913b3..659dacba0 100644 --- a/packages/graphql-playground-middleware-hapi/yarn.lock +++ b/packages/graphql-playground-middleware-hapi/yarn.lock @@ -76,9 +76,9 @@ graphql-import@^0.4.0: graphql "^0.12.3" lodash "^4.17.4" -graphql-playground-html@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#6ec4d54325ab2e5352506fdb89eb37c3fc718bf8" +graphql-playground-html@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.3.tgz#4fb0db36016241f5355e4afe125f8c2f1dab7f50" dependencies: graphql-config "2.0.0" diff --git a/packages/graphql-playground-middleware-koa/package.json b/packages/graphql-playground-middleware-koa/package.json index d8d029f67..52c981b3f 100644 --- a/packages/graphql-playground-middleware-koa/package.json +++ b/packages/graphql-playground-middleware-koa/package.json @@ -1,6 +1,6 @@ { "name": "graphql-playground-middleware-koa", - "version": "1.6.2", + "version": "1.6.6", "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-middleware-koa", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", "contributors": [ @@ -14,7 +14,7 @@ "files": [ "dist" ], - "playgroundVersion": "1.7.1", + "playgroundVersion": "1.7.8", "scripts": { "build": "rimraf dist && tsc", "prepare": "npm run build" @@ -40,6 +40,6 @@ "definition": "dist/index.d.ts" }, "dependencies": { - "graphql-playground-html": "1.6.0" + "graphql-playground-html": "1.6.3" } } diff --git a/packages/graphql-playground-middleware-koa/yarn.lock b/packages/graphql-playground-middleware-koa/yarn.lock index c4619f627..8e2ced6cb 100644 --- a/packages/graphql-playground-middleware-koa/yarn.lock +++ b/packages/graphql-playground-middleware-koa/yarn.lock @@ -148,9 +148,9 @@ graphql-import@^0.4.0: graphql "^0.12.3" lodash "^4.17.4" -graphql-playground-html@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#6ec4d54325ab2e5352506fdb89eb37c3fc718bf8" +graphql-playground-html@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.3.tgz#4fb0db36016241f5355e4afe125f8c2f1dab7f50" dependencies: graphql-config "2.0.0" diff --git a/packages/graphql-playground-middleware-lambda/package.json b/packages/graphql-playground-middleware-lambda/package.json index 794b96819..257d2f709 100644 --- a/packages/graphql-playground-middleware-lambda/package.json +++ b/packages/graphql-playground-middleware-lambda/package.json @@ -1,6 +1,6 @@ { "name": "graphql-playground-middleware-lambda", - "version": "1.7.1", + "version": "1.7.6", "homepage": "https://github.com/graphcool/graphql-playground/tree/master/packages/graphql-playground-middleware-lambada", "description": "GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).", "contributors": [ @@ -14,7 +14,7 @@ "files": [ "dist" ], - "playgroundVersion": "1.7.1", + "playgroundVersion": "1.7.8", "scripts": { "build": "rimraf dist && tsc", "prepare": "npm run build" @@ -39,6 +39,6 @@ "definition": "dist/index.d.ts" }, "dependencies": { - "graphql-playground-html": "1.6.0" + "graphql-playground-html": "1.6.4" } } diff --git a/packages/graphql-playground-middleware-lambda/yarn.lock b/packages/graphql-playground-middleware-lambda/yarn.lock index 13fb913b3..e24048bd6 100644 --- a/packages/graphql-playground-middleware-lambda/yarn.lock +++ b/packages/graphql-playground-middleware-lambda/yarn.lock @@ -27,18 +27,12 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -cross-fetch@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-1.1.1.tgz#dede6865ae30f37eae62ac90ebb7bdac002b05a0" +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" dependencies: - node-fetch "1.7.3" - whatwg-fetch "2.0.3" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" + node-fetch "2.1.2" + whatwg-fetch "2.0.4" esprima@^4.0.0: version "4.0.0" @@ -59,44 +53,34 @@ glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -graphql-config@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.0.0.tgz#daf69091055c6f675d63893a2d14c48f3fec3327" +graphql-config@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.2.1.tgz#5fd0ec77ac7428ca5fb2026cf131be10151a0cb2" dependencies: - graphql-import "^0.4.0" - graphql-request "^1.4.0" + graphql-import "^0.7.1" + graphql-request "^1.5.0" js-yaml "^3.10.0" lodash "^4.17.4" minimatch "^3.0.4" -graphql-import@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.4.1.tgz#ef1c047d6250bc8c009b12b64c26924ac4f4716c" +graphql-import@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" dependencies: - graphql "^0.12.3" lodash "^4.17.4" + resolve-from "^4.0.0" -graphql-playground-html@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#6ec4d54325ab2e5352506fdb89eb37c3fc718bf8" - dependencies: - graphql-config "2.0.0" - -graphql-request@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.4.1.tgz#0772743cfac8dfdd4d69d36106a96c9bdd191ce8" +graphql-playground-html@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.4.tgz#be7c5a6213d67aeedf03d90b7e7d55fec4d42212" dependencies: - cross-fetch "1.1.1" + graphql-config "2.2.1" -graphql@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.12.3.tgz#11668458bbe28261c0dcb6e265f515ba79f6ce07" +graphql-request@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" dependencies: - iterall "1.1.3" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + cross-fetch "2.2.2" inflight@^1.0.4: version "1.0.6" @@ -109,14 +93,6 @@ inherits@2: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -iterall@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9" - js-yaml@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" @@ -134,12 +110,9 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -node-fetch@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" +node-fetch@2.1.2: + version "2.1.2" + resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" once@^1.3.0: version "1.4.0" @@ -151,6 +124,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + rimraf@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" @@ -165,9 +142,9 @@ typescript@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" -whatwg-fetch@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" wrappy@1: version "1.0.2" diff --git a/packages/graphql-playground-react/.babelrc b/packages/graphql-playground-react/.babelrc index 05fe874bc..449e589e4 100644 --- a/packages/graphql-playground-react/.babelrc +++ b/packages/graphql-playground-react/.babelrc @@ -1,4 +1,4 @@ { "presets": ["es2015", "es2016", "react"], - "plugins": ["styled-jsx-postcss/babel", "babel-plugin-styled-components"] + "plugins": ["babel-plugin-styled-components"] } diff --git a/packages/graphql-playground-react/config/webpack.config.dev.js b/packages/graphql-playground-react/config/webpack.config.dev.js index 5c41c774d..9c70abedf 100644 --- a/packages/graphql-playground-react/config/webpack.config.dev.js +++ b/packages/graphql-playground-react/config/webpack.config.dev.js @@ -1,6 +1,5 @@ 'use strict' -const autoprefixer = require('autoprefixer') const path = require('path') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') @@ -35,7 +34,7 @@ module.exports = { index: [ require.resolve('./polyfills'), require.resolve('react-dev-utils/webpackHotDevClient'), - paths.appIndexJs, + paths.appIndexJs ], // middleware: [ // require.resolve('./polyfills'), @@ -45,8 +44,8 @@ module.exports = { localDev: [ require.resolve('./polyfills'), require.resolve('react-dev-utils/webpackHotDevClient'), - paths.localDevIndexJs, - ], + paths.localDevIndexJs + ] }, output: { // Next line is not used in dev but WebpackDevServer crashes without it: @@ -63,7 +62,7 @@ module.exports = { publicPath: publicPath, // Point sourcemap entries to original disk location (format as URL on Windows) devtoolModuleFilenameTemplate: info => - path.resolve(info.absoluteResourcePath).replace(/\\/g, '/'), + path.resolve(info.absoluteResourcePath).replace(/\\/g, '/') }, resolve: { // This allows you to set a fallback for where Webpack should look for modules. @@ -72,7 +71,7 @@ module.exports = { // https://github.com/facebookincubator/create-react-app/issues/253 modules: ['node_modules', paths.appNodeModules].concat( // It is guaranteed to exist because we tweak it in `env.js` - process.env.NODE_PATH.split(path.delimiter).filter(Boolean), + process.env.NODE_PATH.split(path.delimiter).filter(Boolean) ), // These are the reasonable defaults supported by the Node ecosystem. // We also include JSX as a common component filename extension to support @@ -89,12 +88,12 @@ module.exports = { '.js', '.json', '.web.jsx', - '.jsx', + '.jsx' ], alias: { // Support React Native Web // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - 'react-native': 'react-native-web', + 'react-native': 'react-native-web' }, plugins: [ // Prevents users from importing files from outside of src/ (or node_modules/). @@ -102,8 +101,8 @@ module.exports = { // To fix this, we prevent you from importing files out of src/ -- if you'd like to, // please link the files into your node_modules/ and let module-resolution kick in. // Make sure your source files are compiled, as they will not be processed in any way. - new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]), - ], + new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]) + ] }, module: { strictExportPresence: true, @@ -118,13 +117,13 @@ module.exports = { test: /\.(ts|tsx)$/, loader: require.resolve('tslint-loader'), enforce: 'pre', - include: paths.appSrc, + include: paths.appSrc }, { test: /\.js$/, loader: require.resolve('source-map-loader'), enforce: 'pre', - include: paths.appSrc, + include: paths.appSrc }, { // "oneOf" will traverse all following loaders until one will @@ -139,8 +138,8 @@ module.exports = { loader: require.resolve('url-loader'), options: { limit: 10000, - name: 'static/media/[name].[hash:8].[ext]', - }, + name: 'static/media/[name].[hash:8].[ext]' + } }, // Compile .tsx? { @@ -148,14 +147,13 @@ module.exports = { include: paths.appSrc, use: [ { - loader: require.resolve('babel-loader'), + loader: require.resolve('babel-loader') }, { - loader: require.resolve('ts-loader'), - }, - ], + loader: require.resolve('ts-loader') + } + ] }, - // "postcss" loader applies autoprefixer to our CSS. // "css" loader resolves paths in CSS and adds assets as dependencies. // "style" loader turns CSS into JS modules that inject + + - - -
- -
Loading - GraphQL Playground -
-
- -
- - - + }) + + + + \ No newline at end of file diff --git a/packages/graphql-playground-react/src/__snapshots__/index.test.tsx.snap b/packages/graphql-playground-react/src/__snapshots__/index.test.tsx.snap new file mode 100644 index 000000000..0b17cfa6f --- /dev/null +++ b/packages/graphql-playground-react/src/__snapshots__/index.test.tsx.snap @@ -0,0 +1,832 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`test MiddleWareApp passed default headers 1`] = ` +
+
+
+
+
+
+
+
+
+
+ New Tab +
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+ + + + +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + Query Variables + + + HTTP Headers (1) + +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+ Hit the Play Button to get a response here +
+
+
+ + Tracing + +
+
+
+ This GraphQL server doesn’t support tracing. See the following page for instructions: +
+ https://github.com/apollographql/apollo-tracing +
+
+
+
+
+
+
+
+ Schema +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`; + +exports[`test MiddleWareApp with tabs 1`] = ` +
+
+
+
+
+
+
+
+
+
+ New Tab +
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+ + + + +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + Query Variables + + + HTTP Headers + +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+ Hit the Play Button to get a response here +
+
+
+ + Tracing + +
+
+
+ This GraphQL server doesn’t support tracing. See the following page for instructions: +
+ https://github.com/apollographql/apollo-tracing +
+
+
+
+
+
+
+
+ Schema +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`; + +exports[`test MiddleWareApp without tabs 1`] = ` +
+
+
+
+
+
+
+
+
+
+ New Tab +
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+ + + + +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + Query Variables + + + HTTP Headers + +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+ Hit the Play Button to get a response here +
+
+
+ + Tracing + +
+
+
+ This GraphQL server doesn’t support tracing. See the following page for instructions: +
+ https://github.com/apollographql/apollo-tracing +
+
+
+
+
+
+
+
+ Schema +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`; diff --git a/packages/graphql-playground-react/src/components/Button.tsx b/packages/graphql-playground-react/src/components/Button.tsx index e0ad60c1a..6a2abb488 100644 --- a/packages/graphql-playground-react/src/components/Button.tsx +++ b/packages/graphql-playground-react/src/components/Button.tsx @@ -1,287 +1,67 @@ import * as React from 'react' -import * as cn from 'classnames' -import { Icon, $v } from 'graphcool-styles' +import { styled } from '../styled' +import { FullArrowRightIcon } from './Icons' export interface Props { + purple?: boolean hideArrow?: boolean - primary?: boolean - button?: boolean - green?: boolean - white?: boolean - gray?: boolean - greenOnWhite?: boolean - arrowToBottom?: boolean - arrowToLeft?: boolean children?: any - className?: string - wrap?: boolean onClick?: (e?: any) => void } -export function A({ - hideArrow, - primary, - button, - green, - white, - gray, - greenOnWhite, - arrowToBottom, - arrowToLeft, - children, - className, - wrap, - onClick, -}: Props) { - return ( -
- - { -
- {children ? children : 'Learn more'} - {!hideArrow && ( - - )} -
- } -
- ) +interface ButtonProps { + purple?: boolean } -export function Button({ - hideArrow, - primary, - green, - white, - greenOnWhite, - arrowToBottom, - arrowToLeft, - children, - className, - wrap, - onClick, -}: Props) { - return ( - - {children || null} - - ) -} +export const ButtonBox = styled('div')` + display: flex; + align-items: center; + + padding: 6px 16px; + border-radius: 2px; + background: ${p => (p.purple ? 'rgb(218, 27, 127)' : '#2a7ed2')}; + color: ${p => p.theme.colours.white}; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2); + text-transform: uppercase; + font-weight: 600; + font-size: 14px; + letter-spacing: 1px; + white-space: nowrap; + + transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; + cursor: pointer; + &:hover { + background: ${p => (p.purple ? 'rgb(164, 3, 111)' : '#3f8ad7')}; + transform: ${p => + p.purple ? 'translate3D(0, 0, 0)' : 'translate3D(0, -1px, 0)'}; + svg { + animation: move 1s ease infinite; + } + } + + svg { + margin-left: 10px; + fill: ${p => p.theme.colours.white}; + } + + @keyframes move { + 0% { + transform: translate3D(0, 0, 0); + } + + 50% { + transform: translate3D(3px, 0, 0); + } + + 100% { + transform: translate3D(0, 0, 0); + } + } +` diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopup.tsx b/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopup.tsx deleted file mode 100644 index 07eee48df..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopup.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import * as React from 'react' -import CodeGenerationPopupCode from './CodeGenerationPopupCode' -import CodeGenerationPopupHeader from './CodeGenerationPopupHeader' -import CodeGenerationPopupEnvironmentChooser from './CodeGenerationPopupEnvironmentChooser' -import CodeGenerationPopupClientChooser from './CodeGenerationPopupClientChooser' -import { modalStyle } from '../../constants' -import * as Modal from 'react-modal' -import { Environment, GraphQLClient } from '../../types' -import { withTheme, LocalThemeInterface } from '../Theme' - -export interface Props { - query: string - isOpen: boolean - onRequestClose: () => void - endpointUrl: string -} - -export interface State { - selectedClient: GraphQLClient - selectedEnv: Environment -} - -class CodeGenerationPopup extends React.Component< - Props & LocalThemeInterface, - State -> { - constructor(props) { - super(props) - this.state = { - selectedEnv: 'Browser', - selectedClient: 'graphql-request', - } - } - - componentWillMount() { - Modal.setAppElement('body') - } - - render() { - const { query, endpointUrl, localTheme } = this.props - const { selectedEnv } = this.state - const queryActive = - Boolean(query) && query.length > 0 && query.includes('query') - const clients = - selectedEnv === 'Cli' ? ['curl'] : ['graphql-request', 'fetch'] - - let customModalStyle = modalStyle - if (localTheme === 'light') { - customModalStyle = { - ...modalStyle, - overlay: { - ...modalStyle.overlay, - backgroundColor: 'rgba(255,255,255,0.9)', - }, - } - } - - return ( - - -
-
- -
- - -
- -
-
-
- ) - } - - private handleSetClient = (client: GraphQLClient) => { - this.setState({ selectedClient: client } as State) - } - - private handleSetEnvironment = (env: Environment) => { - const { selectedClient } = this.state - if (env === 'Cli') { - this.setState({ selectedEnv: env, selectedClient: 'curl' } as State) - } else { - this.setState({ - selectedEnv: env, - selectedClient: selectedClient === 'curl' ? 'fetch' : selectedClient, - } as State) - } - } -} - -export default withTheme(CodeGenerationPopup) diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupClientChooser.tsx b/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupClientChooser.tsx deleted file mode 100644 index cccac9003..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupClientChooser.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import * as React from 'react' -import { $p } from 'graphcool-styles' -import * as cx from 'classnames' -import calculateSize from 'calculate-size' -import { Environment } from '../../types' - -export interface Props { - environment: Environment - clients: string[] - setClient: (env: any) => void - client: string -} - -/* tslint:disable */ - -const Chooser = (props: Props) => ( -
- -
-

Client

-
-
- {props.clients.map(env => { - const { width } = calculateSize(env.toUpperCase(), { - fontSize: '14px', - fontWeight: '600', - }) - - return ( -
props.setClient(env)} - style={{ width: width + 10 }} - key={env} - > -
-
- {env} -
-
-
- ) - })} -
-
-
-
-) - -export default Chooser diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupCode.tsx b/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupCode.tsx deleted file mode 100644 index f6c6e9cf9..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupCode.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import * as React from 'react' -import * as cx from 'classnames' -import { $p } from 'graphcool-styles' -import { CodeGenerator } from './codeGeneration' -import { GraphQLClient, Environment } from '../../types' -import { withTheme, LocalThemeInterface } from '../Theme' -// tslint:disable-next-line -const Codemirror: any = require('react-codemirror') - -export interface Props { - query: string - endpointUrl: string - client: GraphQLClient - environment: Environment -} - -class CodeGenerationPopupCode extends React.Component< - Props & LocalThemeInterface, - {} -> { - componentWillMount() { - require('codemirror/lib/codemirror.css') - require('codemirror/theme/dracula.css') - require('codemirror/theme/duotone-light.css') - require('codemirror/mode/javascript/javascript') - require('codemirror/mode/shell/shell') - } - render() { - const { client, environment, endpointUrl, query, localTheme } = this.props - - const generator = new CodeGenerator(client, environment, endpointUrl) - const projectSetup = generator.getSetup() - const code = generator.getCode(query) - const title = environment !== 'Cli' ? 'Code' : 'Command' - const mode = environment !== 'Cli' ? 'javascript' : 'shell' - - const codeTheme = localTheme === 'light' ? 'duotone-light' : 'dracula' - - return ( -
- - - {environment !== 'Cli' && ( -
-

Project Setup

- -
- )} -

{title}

- -
- ) - } -} - -export default withTheme(CodeGenerationPopupCode) diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupEnvironmentChooser.tsx b/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupEnvironmentChooser.tsx deleted file mode 100644 index e5584ca60..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupEnvironmentChooser.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import * as React from 'react' // tslint:disable-line -import { $p } from 'graphcool-styles' -import * as cx from 'classnames' -import calculateSize from 'calculate-size' -import { Environment } from '../../types' - -const environments = ['Node', 'Browser', 'Cli'] - -export interface Props { - environment: Environment - setEnvironment: (data: any) => void -} - -/* tslint:disable */ -const Chooser = (props: Props) => ( -
- -
-

Environment

-
-
- {environments.map(env => { - const { width } = calculateSize(env.toUpperCase(), { - fontSize: '14px', - fontWeight: '600', - }) - - return ( -
props.setEnvironment(env)} - style={{ width: width + 15 }} - key={env} - > -
-
- {env} -
-
-
- ) - })} -
-
-
-
-) - -export default Chooser diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupHeader.tsx b/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupHeader.tsx deleted file mode 100644 index 364a0794f..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/CodeGenerationPopupHeader.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import * as React from 'react' // tslint:disable-line -import { $p } from 'graphcool-styles' -import * as cx from 'classnames' - -export interface Props { - queryActive: boolean -} - -export default (props: Props) => ( -
- -
- Generate Code for your -
- {props.queryActive ? 'Query' : 'Mutation'} -
-
-
-) diff --git a/packages/graphql-playground-react/src/components/CodeGenerationPopup/codeGeneration.ts b/packages/graphql-playground-react/src/components/CodeGenerationPopup/codeGeneration.ts deleted file mode 100644 index 2f41a29f1..000000000 --- a/packages/graphql-playground-react/src/components/CodeGenerationPopup/codeGeneration.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { GraphQLClient, Environment } from '../../types' - -export class CodeGenerator { - private client: GraphQLClient - private environment: Environment - private endpointUrl: string - - constructor( - client: GraphQLClient, - environment: Environment, - endpointUrl: string, - ) { - this.client = client - this.environment = environment - this.endpointUrl = endpointUrl - } - - getSetup() { - const template = `$ npm install ` - - if (this.client === 'graphql-request') { - return template + `graphql-request` - } else if (this.client === 'fetch') { - return template + `isomorphic-fetch es6-promise` - } - - return '' - } - - getCode(query: string) { - if (this.environment === 'Cli') { - return this.getTransport() + this.getQueryCode(query) - } else if (this.client === 'fetch') { - return this.getImports() + '\n' + this.getQueryCode(query) - } - - return ( - this.getImports() + - '\n\n' + - this.getTransport() + - '\n\n' + - this.getQueryCode(query) - ) - } - - private getTransport() { - if (this.client === 'graphql-request' && this.environment !== 'Cli') { - return `const client = new GraphQLClient('${this.endpointUrl}', { - headers: { - Authorization: 'Bearer YOUR_AUTH_TOKEN', - }, -}); -` - } else if (this.environment === 'Cli') { - return `curl '${this.endpointUrl}' \ - -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \ - ` - } - return '' - } - - private getImports() { - if (this.client === 'graphql-request' && this.environment === 'Node') { - return `const GraphQLClient = require('graphql-request').GraphQLClient` - } else if ( - this.client === 'graphql-request' && - this.environment === 'Browser' - ) { - return `import { GraphQLClient } from 'graphql-request'` - } else if (this.client === 'fetch') { - return `require('es6-promise').polyfill() -require('isomorphic-fetch') - ` - } - return '' - } - - private getQueryCode(query: string) { - if (query.includes('mutation')) { - return this.getMutation(query) - } else { - return this.getQuery(query) - } - } - - private getQuery(query: string) { - if (this.client === 'graphql-request') { - const curlyIndex = query.indexOf('{') - - const strippedQuery = query.slice(curlyIndex, query.length) - if (this.client === 'graphql-request') { - return `function getItem() { - return client.request(\` -${strippedQuery - .split('\n') - .map(line => ' ' + line) - .join('\n')} - \`) -}` - } - } - - if (this.client === 'fetch') { - return `function getItems() { - ${this.getFetchBody(query)} -}` - } - - if (this.client === 'curl') { - return `-d '{"query":"${JSON.stringify(query.replace(/\s/g, ''))}"}'` - } - - return '' - } - - private getFetchBody(query: string) { - const clearString = query.replace(/\s/g, '') - - const jsonQuery = JSON.stringify({ - query: clearString, - }) - - return ( - `return fetch('${this.endpointUrl}', { - method: 'post', - headers: { - 'Content-Type': 'application/json', - //'Authorization': 'Bearer YOUR_AUTH_TOKEN' - }, - body: '` + - `${jsonQuery}` + - `', - })` - ) - } - - private getMutation(query: string) { - const curlyIndex = query.indexOf('{') - - const strippedQuery = query.slice(curlyIndex, query.length) - if (this.client === 'graphql-request') { - return `function setItem() { - return client.request(\` -${strippedQuery - .split('\n') - .map(line => ' ' + line) - .join('\n')} - \`) -}` - } - - if (this.client === 'fetch') { - return `function setItem() { - ${this.getFetchBody(query)} -}` - } - - if (this.client === 'curl') { - return `-d '{"query":${JSON.stringify(query.replace(/\s/g, ''))}}'` - } - - return '' - } -} diff --git a/packages/graphql-playground-react/src/components/Copy.tsx b/packages/graphql-playground-react/src/components/Copy.tsx index 6f9863e65..7742d319f 100644 --- a/packages/graphql-playground-react/src/components/Copy.tsx +++ b/packages/graphql-playground-react/src/components/Copy.tsx @@ -1,7 +1,6 @@ import * as React from 'react' -import { $v } from 'graphcool-styles' +import { styled } from '../styled' import * as CopyToClipboard from 'react-copy-to-clipboard' -import * as cn from 'classnames' export interface Props { text: string @@ -29,48 +28,14 @@ export default class Copy extends React.Component { } render() { - const { text, className } = this.props - let { color } = this.props - - color = color || $v.blue + const { text, color } = this.props return ( -
- - {this.state.copied && ( -
- Copied -
- )} + + {this.state.copied && Copied} {this.props.children} -
+
) } @@ -83,3 +48,32 @@ export default class Copy extends React.Component { ) } } + +const CopyBox = styled.div` + position: relative; +` + +const Indicator = styled.div` + position: absolute; + top: -20px; + left: 50%; + transform: translate(-50%, 0); + animation: copying 700ms linear; + color: ${p => (p.color ? p.color : p.theme.colours.darkBlue30)}; + + @keyframes copying { + 0% { + opacity: 0; + transform: translate(-50%, 0); + } + + 50% { + opacity: 1; + } + + 100% { + opacity: 0; + transform: translate(-50%, -50px); + } + } +` diff --git a/packages/graphql-playground-react/src/components/EndpointPopup.tsx b/packages/graphql-playground-react/src/components/EndpointPopup.tsx index 3f576ff54..85fa9f590 100644 --- a/packages/graphql-playground-react/src/components/EndpointPopup.tsx +++ b/packages/graphql-playground-react/src/components/EndpointPopup.tsx @@ -3,7 +3,7 @@ import * as fetch from 'isomorphic-fetch' import Popup from './Popup' import { throttle } from 'lodash' import { Button } from './Button' -import { styled, css, withProps } from '../styled' +import { styled, css } from '../styled' export interface Props { onRequestClose: (endpoint: string) => void @@ -75,7 +75,11 @@ export default class EndpointPopup extends React.Component { autoFocus={true} /> - {valid && } + {valid && ( + + )} @@ -124,10 +128,10 @@ interface InputProps { } // prettier-ignore -const Input = withProps()(styled.input)` +const Input = styled('input')` background: ${p => p.theme.colours.white10}; border-radius: ${p => p.theme.sizes.smallRadius}; - padding: ${p => p.theme.sizes.small16} ${p => p.theme.sizes.medium25}; + padding: ${p => `${p.theme.sizes.small16} ${p.theme.sizes.medium25}`}; font-weight: ${p => p.theme.sizes.fontSemiBold}; color: white; font-size: 16px; diff --git a/packages/graphql-playground-react/src/components/GraphQLBinApp.tsx b/packages/graphql-playground-react/src/components/GraphQLBinApp.tsx index f75d1c1d2..6c7f3a9d3 100644 --- a/packages/graphql-playground-react/src/components/GraphQLBinApp.tsx +++ b/packages/graphql-playground-react/src/components/GraphQLBinApp.tsx @@ -3,7 +3,7 @@ import { Provider, connect } from 'react-redux' import createStore from '../state/createStore' import 'isomorphic-fetch' import EndpointPopup from './EndpointPopup' -import { ThemeProvider, theme as styledTheme } from '../styled' +import { styled, ThemeProvider, theme as styledTheme } from '../styled' import { Store } from 'redux' import PlaygroundWrapper from './PlaygroundWrapper' import { injectState } from '../state/workspace/actions' @@ -26,6 +26,7 @@ export interface Props { subscriptionEndpoint?: string history?: any match?: any + headers?: any } export interface State { @@ -33,6 +34,7 @@ export interface State { subscriptionEndpoint?: string shareUrl?: string loading: boolean + headers: any } export interface ReduxProps { @@ -47,6 +49,7 @@ class GraphQLBinApp extends React.Component { endpoint: props.endpoint, subscriptionEndpoint: props.subscriptionEndpoint, loading: false, + headers: props.headers || {}, } } @@ -71,7 +74,7 @@ class GraphQLBinApp extends React.Component { } }, 1000) - fetch('https://api.graph.cool/simple/v1/cj81hi46q03c30196uxaswrz2', { + fetch('https://api.graphqlbin.com', { method: 'post', headers: { 'Content-Type': 'application/json', @@ -80,7 +83,7 @@ class GraphQLBinApp extends React.Component { query: ` query ($id: String!) { session(id: $id) { - session + data endpoint } } @@ -97,7 +100,7 @@ class GraphQLBinApp extends React.Component { if (!res.data || res.data.session === null) { location.href = `${location.origin}/v2/new` } - const state = JSON.parse(res.data.session.session) + const state = JSON.parse(res.data.session.data) this.props.injectState(state) this.setState({ endpoint: res.data.session.endpoint, @@ -118,17 +121,7 @@ class GraphQLBinApp extends React.Component { } return ( -
- - + {this.state.loading ? null : !this.state.endpoint || this.state.endpoint.length === 0 ? ( @@ -140,10 +133,11 @@ class GraphQLBinApp extends React.Component { ) : ( )} -
+ ) } @@ -168,3 +162,8 @@ export default class GraphQLBinAppHOC extends React.Component { ) } } + +const Wrapper = styled.div` + width: 100%; + height: 100%; +` diff --git a/packages/graphql-playground-react/src/components/HistoryPopup.tsx b/packages/graphql-playground-react/src/components/HistoryPopup.tsx index 0c1e172ef..6a4cf7504 100644 --- a/packages/graphql-playground-react/src/components/HistoryPopup.tsx +++ b/packages/graphql-playground-react/src/components/HistoryPopup.tsx @@ -3,7 +3,6 @@ import * as Modal from 'react-modal' import HistoryHeader from './HistoryPopup/HistoryHeader' import { HistoryFilter } from '../types' import HistoryItems from './HistoryPopup/HistoryItems' -import { Icon } from 'graphcool-styles' import { modalStyle } from '../constants' import { QueryEditor } from './Playground/QueryEditor' import { styled } from '../styled' @@ -17,6 +16,7 @@ import { toggleHistoryItemStarring } from '../state/history/actions' import { Session } from '../state/sessions/reducers' import { OrderedMap } from 'immutable' import { Container } from './Playground/EditorWrapper' +import { ArrowRight } from './Icons' export interface ReduxProps { isOpen: boolean @@ -87,13 +87,7 @@ class HistoryPopup extends React.Component { Use - + @@ -231,7 +225,7 @@ const Big = styled.div` flex: 1 1 auto; ` -const GraphiqlWrapper = Big.extend` +const GraphiqlWrapper = styled(Big)` width: 100%; height: 100%; position: relative; diff --git a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryChooser.tsx b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryChooser.tsx index d42d41ea3..4ca372e6d 100644 --- a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryChooser.tsx +++ b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryChooser.tsx @@ -1,80 +1,82 @@ import * as React from 'react' -import { Icon, $v } from 'graphcool-styles' import { HistoryFilter } from '../../types' -import * as cx from 'classnames' +import { styled, withTheme, ThemeInterface } from '../../styled' +import { Star, History } from '../Icons' -export interface Props { +interface Props { + theme: ThemeInterface selectedFilter: HistoryFilter onSelectFilter: (filter: any) => void } /* tslint:disable */ -const HistoryChooser = ({ selectedFilter, onSelectFilter }: Props) => ( -
- -
-
onSelectFilter('HISTORY')} - > - -
History
-
-
onSelectFilter('STARRED')} - > - -
Starred
-
-
-
+ strokeWidth={3} + width={25} + height={25} + /> + History + + onSelectFilter('STARRED')} + > + + Starred + + ) -export default HistoryChooser +export default withTheme(HistoryChooser) + +const Chooser = styled.div` + display: flex; + align-items: center; +` + +interface FilterProps { + active: boolean +} + +const Filter = styled('div')` + box-sizing: content-box; + height: 24px; + z-index: ${p => (p.active ? 2 : 0)}; + display: flex; + align-items: center; + margin: 0 -2px; + padding: ${p => (p.active ? '7px 9px 8px 9px' : '5px 13px 6px 13px')}; + background: ${p => + p.active ? p.theme.colours.green : p.theme.colours.black07}; + + color: ${p => (p.active ? p.theme.colours.white : p.theme.colours.black30)}; + font-size: 14px; + font-weight: 600; + text-transform: uppercase; + border-radius: 2px; + cursor: pointer; +` + +const FilterText = styled.p` + margin-left: 6px; +` diff --git a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryHeader.tsx b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryHeader.tsx index 6f679e868..911b11d4b 100644 --- a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryHeader.tsx +++ b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryHeader.tsx @@ -1,6 +1,7 @@ import * as React from 'react' import HistoryChooser from './HistoryChooser' import { HistoryFilter } from '../../types' +import { styled } from '../../styled' import SearchBox from '../Playground/DocExplorer/SearchBox' export interface Props { @@ -9,17 +10,8 @@ export interface Props { onSearch: (value: string) => void } -const HistoryHeader = (props: Props) => ( -
- +export default (props: Props) => ( + ( placeholder="Search the history..." onSearch={props.onSearch} clean={true} - isShown={true} /> -
+ ) -export default HistoryHeader +const HistoryHeader = styled.div` + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px; + background: ${p => p.theme.colours.black02}; +` diff --git a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryItems.tsx b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryItems.tsx index ce8190876..188c154c2 100644 --- a/packages/graphql-playground-react/src/components/HistoryPopup/HistoryItems.tsx +++ b/packages/graphql-playground-react/src/components/HistoryPopup/HistoryItems.tsx @@ -1,8 +1,8 @@ import * as React from 'react' -import { Icon, $v } from 'graphcool-styles' -import * as cx from 'classnames' import { Session } from '../../state/sessions/reducers' import { OrderedMap } from 'immutable' +import { Star } from '../Icons' +import { styled, withTheme, ThemeInterface } from '../../styled' export interface Props { items: OrderedMap @@ -10,124 +10,132 @@ export interface Props { onItemSelect: (index: string) => void onItemStarToggled: (sessionId: string) => void searchTerm: string + theme: ThemeInterface } /* tslint:disable */ -const HistoryItems = ({ - items, - onItemSelect, - selectedItemIndex, - onItemStarToggled, -}: Props) => ( -
- - {items - .map((item, index) => ( -
onItemSelect(index)} - > -
-
onItemStarToggled(item.id)}> - ( + + {items + .map((item, index) => ( + onItemSelect(index)} + > + + onItemStarToggled(item.id)} + stroke={!item.starred ? 'rgb(221,171,0)' : undefined} + fill={item.starred ? 'rgb(221,171,0)' : undefined} strokeWidth={0.5} width={25} height={25} /> -
-
-
- {item.operationName || - item.queryTypes.firstOperationName || - 'New Session'} -
- {item.queryTypes.query && ( -
Q
- )} - {item.queryTypes.mutation && ( -
M
- )} - {item.queryTypes.subscription && ( -
S
- )} -
-
-
- {item.date && ( -
- {typeof item.date.getMonth === 'function' && ( - - {item.date.getMonth() + 1}/{item.date.getDate()}/{item.date - .getFullYear() - .toString() - .slice(2, 4)} - + + + {item.operationName || + item.queryTypes.firstOperationName || + 'New Session'} + + {item.queryTypes.query && Q} + {item.queryTypes.mutation && M} + {item.queryTypes.subscription && ( + S )} -
- )} -
-
- )) - .toArray() - .map(x => x[1])} -
+ + + + {item.date && ( + + )} + + + )) + .toArray() + .map(x => x[1])} + + ), ) -export default HistoryItems +const HistoryItems = styled.div` + overflow-y: scroll; + max-height: calc(100vh - 121px); +` + +interface ItemProps { + active: boolean +} + +const HistoryItem = styled('div')` + display: flex; + align-items: center; + justify-content: space-between; + padding: 25px 20px; + cursor: pointer; + border-bottom: 1px solid; + border-color: ${p => p.theme.colours.black10}; + background: ${p => + p.active ? p.theme.colours.black04 : p.theme.colours.white}; +` + +const Operation = styled.div` + display: flex; + align-items: center; + margin-left: 20px; +` + +const OperationSide = styled.div` + display: flex; + align-items: center; +` + +const OperationText = styled.p` + font-weight: 300; + font-size: 20px; + margin-right: 16px; +` + +const OperationIcon = styled.div` + height: 21px; + width: 21px; + display: flex; + justify-content: center; + align-items: center; + margin-right: 4px; + border-radius: 2px; + font-weight: 700; + font-size: 12px; + color: ${p => p.theme.colours.white}; +` + +const QueryIcon = styled(OperationIcon)` + background: ${p => p.theme.colours.blue}; +` + +const MutationIcon = styled(OperationIcon)` + background: ${p => p.theme.colours.orange}; +` + +const SubscriptionIcon = styled(OperationIcon)` + background: ${p => p.theme.colours.purple}; +` + +const Time = styled.time` + color: ${p => p.theme.colours.black40}; + font-size: 14px; + margin-left: 16px; +` diff --git a/packages/graphql-playground-react/src/components/Icons/Triangle.tsx b/packages/graphql-playground-react/src/components/Icons/Triangle.tsx deleted file mode 100644 index ba5f34757..000000000 --- a/packages/graphql-playground-react/src/components/Icons/Triangle.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import * as React from 'react' - -export const Triangle = () => ( - - - -) diff --git a/packages/graphql-playground-react/src/components/Icons/index.tsx b/packages/graphql-playground-react/src/components/Icons/index.tsx new file mode 100644 index 000000000..abdda4480 --- /dev/null +++ b/packages/graphql-playground-react/src/components/Icons/index.tsx @@ -0,0 +1,180 @@ +import * as React from 'react' + +interface IProps { + title?: string + color?: string + width?: number + height?: number + stroke?: string + fill?: string + strokeWidth?: number + className?: string + children?: any + viewBox?: string + y?: string + x?: string + onClick?: () => void +} + +const Svg = ({ title, children, ...props }: IProps) => ( + + {title ? {title} : undefined} + {children} + +) + +export const AddIcon = (props: IProps) => ( + + + + +) + +export const AddFullIcon = (props: IProps) => ( + + + + +) + +export const FullArrowRightIcon = (props: IProps) => ( + + + +) + +// export const ArrowRight = ({ width, height, color }: IProps) => ( +// +// +// +// ) + +export const SettingsIcon = (props: IProps) => ( + + + +) + +export const CrossIcon = (props: IProps) => ( + + + + +) + +export const ArrowRight = (props: IProps) => ( + + + + +) + +export const History = (props: IProps) => ( + + + + + +) + +export const Star = ({ + height, + width, + stroke, + fill, + strokeWidth, + onClick, + ...props +}: IProps) => ( + + + +) + +export const Search = ({ + height, + width, + strokeWidth, + color, + ...props +}: IProps) => ( + + + + +) + +export const ShareIcon = ({ width, height, color, ...props }: IProps) => ( + + + + +) + +export const Triangle = (props: IProps) => ( + + + +) diff --git a/packages/graphql-playground-react/src/components/MiddlewareApp.tsx b/packages/graphql-playground-react/src/components/MiddlewareApp.tsx index 7edf74845..febd492c1 100644 --- a/packages/graphql-playground-react/src/components/MiddlewareApp.tsx +++ b/packages/graphql-playground-react/src/components/MiddlewareApp.tsx @@ -1,6 +1,8 @@ import * as React from 'react' import { Provider } from 'react-redux' import createStore from '../state/createStore' +import { getSettings } from '../state/workspace/reducers' +import { setSettingsString } from '../state/general/actions' import PlaygroundWrapper, { PlaygroundWrapperProps } from './PlaygroundWrapper' const store = createStore() @@ -8,6 +10,12 @@ const store = createStore() export default class MiddlewareApp extends React.Component< PlaygroundWrapperProps > { + componentDidMount() { + const initialSettings = getSettings(store.getState()) + const mergedSettings = { ...initialSettings, ...this.props.settings } + const settingsString = JSON.stringify(mergedSettings, null, 2) + store.dispatch(setSettingsString(settingsString)) + } render() { return ( diff --git a/packages/graphql-playground-react/src/components/Playground.tsx b/packages/graphql-playground-react/src/components/Playground.tsx index fad6ac3df..4b0f8932e 100644 --- a/packages/graphql-playground-react/src/components/Playground.tsx +++ b/packages/graphql-playground-react/src/components/Playground.tsx @@ -3,7 +3,6 @@ import GraphQLEditor from './Playground/GraphQLEditor' import TabBar from './Playground/TabBar' import { ISettings } from '../types' import HistoryPopup from './HistoryPopup' -import * as cx from 'classnames' import { styled } from '../styled' import Settings from './Settings' import { PlaygroundSettingsEditor, GraphQLConfigEditor } from './SettingsEditor' @@ -272,7 +271,6 @@ export class Playground extends React.PureComponent { } render() { - const theme = this.props.settings['editor.theme'] const { version }: any = app window.version = version @@ -280,11 +278,7 @@ export class Playground extends React.PureComponent { return ( - + {this.props.isConfigTab ? ( { render() { return ( - + ) } @@ -177,4 +177,7 @@ const Editor = styled.div` flex: 1; height: 100%; position: relative; + .CodeMirror-linenumbers { + background: ${p => p.theme.editorColours.resultBackground}; + } ` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/Argument.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/Argument.tsx index 9e35fa09a..c562278ab 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/Argument.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/Argument.tsx @@ -18,12 +18,7 @@ export default function Argument({ }: // sessionId, Props) { return ( - - + - + {arg.name} {': '} {renderType(arg.type)} @@ -26,7 +22,7 @@ export default function Argument({ arg, showDefaultValue }: Props) { )} -
+ ) } @@ -50,3 +46,7 @@ function renderType(type) { } return {type.name} } + +const ArgumentLine = styled.div` + margin-left: 16px; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/ColumnDoc.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/ColumnDoc.tsx index 7715d1f28..07f927d20 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/ColumnDoc.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/ColumnDoc.tsx @@ -1,37 +1,36 @@ import * as React from 'react' -import * as cx from 'classnames' import { columnWidth } from '../../../constants' +import { styled } from '../../../styled' export interface Props { children: any - first?: boolean overflow?: boolean width?: number } const ColumnDoc = ({ children, - first, overflow = true, width = columnWidth, }: Props) => { return ( -
- + {children} -
+ ) } export default ColumnDoc + +interface ColumnProps { + overflow: boolean +} + +const Column = styled('div')` + display: flex; + flex: 0 0 auto; + flex-flow: column; + padding-bottom: 20px; + border-right: 1px solid ${p => p.theme.colours.black10}; + overflow: ${p => (p.overflow ? 'hidden scroll' : 'auto auto')}; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocTypeSchema.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocTypeSchema.tsx index 533855866..08cce26b3 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocTypeSchema.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocTypeSchema.tsx @@ -1,6 +1,7 @@ import { GraphQLInterfaceType } from 'graphql' import * as React from 'react' import TypeLink from './TypeLink' +import { styled } from '../../../styled' export interface DocTypeSchemaProps { type: any @@ -10,12 +11,7 @@ export interface DocTypeSchemaProps { sessionId: string } -const DocTypeSchema = ({ - type, - fields, - interfaces, - level, -}: DocTypeSchemaProps) => { +export default ({ type, fields, interfaces, level }: DocTypeSchemaProps) => { const nonDeprecatedFields = fields.filter(data => !data.isDeprecated) const deprecatedFields = fields.filter(data => data.isDeprecated) @@ -23,58 +19,22 @@ const DocTypeSchema = ({ type instanceof GraphQLInterfaceType ? 'interface ' : 'type' return ( -
- - -
+ + {typeInstance}{' '} - {type.name}{' '} - {interfaces.length === 0 && {`{`}} -
+ {type.name}{' '} + {interfaces.length === 0 && {`{`}} + {interfaces.map((data, index) => ( - implements} afterNode={ - index === interfaces.length - 1 ? ( - {'{'} - ) : null + index === interfaces.length - 1 ? {'{'} : null } lastActive={false} /> @@ -92,9 +52,9 @@ const DocTypeSchema = ({ {deprecatedFields.length > 0 &&
} {deprecatedFields.map((data, index) => (
- + # Deprecated: {data.deprecationReason} - +
))} -
- {'}'} -
-
+ + {'}'} + + ) } -export default DocTypeSchema +const DocTypeSchema = styled.div` + font-size: 14px; + overflow: auto; + .doc-category-item { + padding-left: 32px; + } +` + +const DocTypeLine = styled.div` + padding: 6px 16px; + white-space: nowrap; +` + +const DocsTypeName = styled.span` + color: #f25c54; +` + +const DocsTypeInferface = styled(TypeLink)` + padding-left: 16px; + .field-name { + color: rgb(245, 160, 0); + } + .type-name { + color: #f25c54; + } +` + +const DocsValueComment = styled.span` + color: ${p => p.theme.colours.black50}; + padding-right: 16px; + padding-left: 32px; +` + +const Brace = styled.span` + font-weight: 600; + color: ${p => p.theme.colours.darkBlue50}; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/DocType.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/DocType.tsx new file mode 100644 index 000000000..61fb3c828 --- /dev/null +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/DocType.tsx @@ -0,0 +1,7 @@ +import { styled } from '../../../../styled' + +export const DocType = styled.div` + padding: 20px 16px 0 16px; + overflow: auto; + font-size: 14px; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/EnumTypeSchema.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/EnumTypeSchema.tsx index 5fbcadb31..25ca1343a 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/EnumTypeSchema.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/EnumTypeSchema.tsx @@ -1,4 +1,6 @@ import * as React from 'react' +import { styled } from '../../../../styled' +import { DocType } from './DocType' export interface EnumTypeSchemaProps { type: any @@ -8,18 +10,7 @@ const EnumTypeSchema = ({ type }: EnumTypeSchemaProps) => { const values = type.getValues() const deprecatedValues = values.filter((value: any) => value.isDeprecated) return ( -
- + enum{' '} {type.name}{' '} {'{'} @@ -38,7 +29,7 @@ const EnumTypeSchema = ({ type }: EnumTypeSchemaProps) => { /> ))} {'}'} -
+ ) } @@ -51,30 +42,30 @@ interface ValueProps { } const Value = ({ value, isDeprecated, first }: ValueProps) => ( -
- +
{value.name}
{value.description && ( -
{value.description}
+ {value.description} )} {isDeprecated && ( -
- Deprecated: {value.deprecationReason} -
+ Deprecated: {value.deprecationReason} )} -
+ ) + +interface DocsValueProps { + first: boolean +} + +const DocsValue = styled('div')` + margin-top: ${p => (p.first ? 0 : 6)}px; + .field-name { + padding: 0 16px; + color: red; + } +` + +const DocsValueComment = styled.div` + padding: 0 16px; + color: ${p => p.theme.colours.black50}; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/ScalarType.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/ScalarType.tsx index 7286b3b1e..5cc8ec30c 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/ScalarType.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/ScalarType.tsx @@ -1,4 +1,5 @@ import * as React from 'react' +import { DocType } from './DocType' export interface ScalarTypeSchemaProps { type: any @@ -6,15 +7,10 @@ export interface ScalarTypeSchemaProps { const ScalarTypeSchema = ({ type }: ScalarTypeSchemaProps) => { return ( -
- + scalar{' '} {type.name} -
+ ) } diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/UnionTypeSchema.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/UnionTypeSchema.tsx index 1b3ece2d4..f87eb2f0c 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/UnionTypeSchema.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/DocsTypes/UnionTypeSchema.tsx @@ -1,5 +1,6 @@ import TypeLink from '../TypeLink' import * as React from 'react' +import { DocType } from './DocType' export interface EnumTypeSchemaProps { schema: any @@ -16,15 +17,7 @@ const UnionTypeSchema = ({ }: EnumTypeSchemaProps) => { const types = schema.getPossibleTypes(type) return ( -
- + union{' '} {type.name} {' = '} @@ -39,7 +32,7 @@ const UnionTypeSchema = ({ lastActive={false} /> ))} -
+ ) } diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/FieldDoc.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/FieldDoc.tsx index 970dca614..1e330a79b 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/FieldDoc.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/FieldDoc.tsx @@ -14,6 +14,7 @@ import EnumTypeSchema from './DocsTypes/EnumTypeSchema' import UnionTypeSchema from './DocsTypes/UnionTypeSchema' import { getDeeperType, serialize } from '../util/stack' import { CategoryTitle } from './DocsStyles' +import { styled } from '../../../styled' export interface Props { schema: any @@ -77,32 +78,7 @@ export default class FieldDoc extends React.Component { return (
- - -
+ { clickable={false} lastActive={false} /> -
- + @@ -119,12 +95,7 @@ export default class FieldDoc extends React.Component { {`${typeInstance} details`} {type.description && type.description.length > 0 && ( -
- -
+ )} {type instanceof GraphQLScalarType && } {type instanceof GraphQLEnumType && } @@ -199,3 +170,24 @@ const scrollToRight = (element: Element, to: number, duration: number) => { scrollToRight(element, to, duration - 10) }, 10) } + +const DocsHeader = styled.div` + background: ${p => p.theme.colours.black02}; + padding-top: 20px; + padding-bottom: 10px; + + .doc-category-item { + font-size: 14px; + font-weight: 600; + word-wrap: break-word; + } + .doc-category-item .field-name { + color: #f25c54; + } +` + +const DocsDescription = styled(MarkdownContent)` + font-size: 14px; + padding: 0 16px 20px 16px; + color: rgba(0, 0, 0, 0.5); +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocs.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocs.tsx index b2bc0cc56..382a6ae20 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocs.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocs.tsx @@ -15,7 +15,6 @@ import { import Spinner from '../../Spinner' import { columnWidth } from '../../../constants' import RootColumn from './RootColumn' -import * as cn from 'classnames' import { serialize, getElementRoot, @@ -125,82 +124,17 @@ class GraphDocs extends React.Component< } return ( - - - -
- Schema -
+ + Schema -
+ -
+ {emptySchema && {emptySchema}} {!emptySchema && schema && ( @@ -225,7 +159,7 @@ class GraphDocs extends React.Component< /> ))} -
+
) @@ -423,18 +357,23 @@ export default connect( { withRef: true }, )(GraphDocs) -const Docs = styled.div` +interface DocsProps { + open: boolean +} + +const Docs = styled('div')` background: white; box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); position: absolute; right: -2px; - z-index: 3; + z-index: ${p => (p.open ? 2000 : 3)}; height: 100%; font-family: 'Open Sans', sans-serif; -webkit-font-smoothing: antialiased; - &.open { - z-index: 2000; + .doc-type-description p { + padding: 16px; + font-size: 14px; } .field-name { @@ -476,6 +415,15 @@ const DocsExplorer = styled.div` } ` +const DocsExplorerContainer = styled.div` + display: flex; + position: relative; + height: 100%; + width: 100%; + overflow-x: auto; + overflow-y: hidden; +` + const DocsResizer = styled.div` cursor: col-resize; height: 100%; @@ -499,3 +447,39 @@ const ErrorContainer = styled.div` top: 50%; transform: translate(0, -50%); ` + +const DocsButton = styled.div` + position: absolute; + z-index: 2; + left: -50px; + top: 129px; + padding: 6px 10px; + transform: rotate(-90deg); + border-top-left-radius: 2px; + border-top-right-radius: 2px; + color: ${p => p.theme.colours.white}; + background: ${p => p.theme.colours.green}; + box-shadow: -1px 1px 6px 0 rgba(0, 0, 0, 0.3); + text-transform: uppercase; + font-weight: 600; + font-size: 12px; + line-height: 17px; + letter-spacing: 0.45px; + cursor: pointer; +` + +const DocsGradient = styled.div` + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 20px; + z-index: 1; + pointer-events: none; + content: ''; + background: linear-gradient( + to right, + rgba(255, 255, 255, 1) 30%, + rgba(255, 255, 255, 0) + ); +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocsRoot.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocsRoot.tsx index d27a7fd17..b4e5a8db2 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocsRoot.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/GraphDocsRoot.tsx @@ -2,6 +2,7 @@ import * as React from 'react' import TypeLink from './TypeLink' import { serializeRoot } from '../util/stack' import { CategoryTitle } from './DocsStyles' +import { styled } from '../../../styled' export interface Props { schema: any @@ -13,17 +14,7 @@ export default class GraphDocsRoot extends React.PureComponent { const { schema, sessionId } = this.props const obj = serializeRoot(schema) return ( -
- - + { sessionId={sessionId} /> )} -
+ ) } } @@ -77,3 +68,11 @@ function ShowRootType({ name, fields, offset }: ShowRootTypeProps) {
) } + +const DocsRoot = styled.div` + padding-left: 6px; + + .doc-category-item .field-name { + color: #f25c54; + } +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/RootColumn.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/RootColumn.tsx index 9fb38411e..22d144158 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/RootColumn.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/RootColumn.tsx @@ -17,7 +17,7 @@ export default class RootColumn extends React.PureComponent { const { searchValue, schema, width, sessionId, handleSearch } = this.props return ( - +
{searchValue && ( void placeholder?: string clean?: boolean @@ -28,52 +27,31 @@ export default class SearchBox extends React.Component { } shouldComponentUpdate(nextProps, nextState) { - return ( - nextProps.isShown !== this.props.isShown || - nextState.value !== this.state.value - ) + return nextState.value !== this.state.value } render() { - return ( -
- - {this.props.isShown && ( - - )} -
+ const LabelComponent = ( + ) + if (this.props.clean) { + return LabelComponent + } + + return {LabelComponent} } handleChange = event => { @@ -81,3 +59,34 @@ export default class SearchBox extends React.Component { this.debouncedOnSearch() } } + +const SearchContainer = styled.div` + position: relative; + flex: 0 0 auto; + z-index: 1; + display: flex; + margin-left: 6px; + padding: 25px; + background: ${p => p.theme.colours.black02}; + border-bottom: 1px solid ${p => p.theme.colours.black10}; + div { + width: 100%; + } +` + +const Label = styled.div` + box-sizing: border-box; + display: flex; + align-items: center; + padding: 12px 14px 13px 15px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + background: ${p => p.theme.colours.white}; +` + +const Input = styled.input` + font-size: 16px; + margin-left: 10px; + &::placeholder { + color: ${p => p.theme.colours.black30}; + } +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/SearchResults.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/SearchResults.tsx index 7fb222643..7b42fd101 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/SearchResults.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/SearchResults.tsx @@ -1,5 +1,5 @@ import * as React from 'react' - +import { styled } from '../../../styled' import TypeLink from './TypeLink' export interface Props { @@ -101,16 +101,7 @@ export default class SearchResults extends React.Component { matchedWithin.length + matchedTypes.length + matchedFields.length === 0 ) { - return ( - - - {'No results found.'} - - ) + return No results found. } if (withinType && matchedTypes.length + matchedFields.length > 0) { @@ -144,3 +135,9 @@ function isMatch(sourceText, searchValue) { return sourceText.toLowerCase().indexOf(searchValue.toLowerCase()) !== -1 } } + +const NoResult = styled.span` + display: block; + margin-top: 16px; + margin-left: 16px; +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/TypeLink.tsx b/packages/graphql-playground-react/src/components/Playground/DocExplorer/TypeLink.tsx index bcf7d9f69..f21ca9802 100644 --- a/packages/graphql-playground-react/src/components/Playground/DocExplorer/TypeLink.tsx +++ b/packages/graphql-playground-react/src/components/Playground/DocExplorer/TypeLink.tsx @@ -1,10 +1,9 @@ import * as React from 'react' -import * as cx from 'classnames' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import { GraphQLList, GraphQLNonNull, isType } from 'graphql' import ArgumentInline from './ArgumentInline' -import { Triangle } from '../../Icons/Triangle' +import { Triangle } from '../../Icons' import { toJS } from '../util/toJS' import { addStack } from '../../../state/docs/actions' import { getSessionDocsState } from '../../../state/docs/selectors' @@ -13,6 +12,7 @@ import { getSelectedSessionIdFromRoot, } from '../../../state/sessions/selectors' import { createSelector } from 'reselect' +import { styled } from '../../../styled' interface ReduxProps { keyMove: boolean @@ -118,10 +118,8 @@ class TypeLink extends React.Component< className, beforeNode, afterNode, - keyMove, showParentName, isActive, - lastActive, } = this.props const isGraphqlType = isType(type) @@ -135,62 +133,13 @@ class TypeLink extends React.Component< ) return ( -
- - {beforeNode} {beforeNode && ' '} {!isGraphqlType && ( @@ -201,7 +150,7 @@ class TypeLink extends React.Component< '(', {this.state.collapsed ? ( - ... + ... ) : ( type.args.map(arg => ( @@ -215,13 +164,13 @@ class TypeLink extends React.Component< )} {renderType(type.type || type)} {clickable && ( - + - + )} {afterNode && ' '} {afterNode} -
+ ) } } @@ -284,3 +233,44 @@ export default connect( selector, mapDispatchToProps, )(toJS(TypeLink)) + +interface DocsCategoryItemProps { + clickable?: boolean + active?: boolean +} + +const DocsCategoryItem = styled('div')` + position: relative; + padding: 6px 16px; + overflow: auto; + font-size: 14px; + transition: 0.1s background-color; + background: ${p => + p.active ? p.theme.colours.black07 : p.theme.colours.white}; + + cursor: ${p => (p.clickable ? 'pointer' : 'select')}; + + &:hover { + color: ${p => p.theme.colours.white}; + background: #2a7ed3; + .field-name, + .type-name, + .arg-name { + color: ${p => p.theme.colours.white} !important; + } + } + b { + font-weight: 600; + } +` + +const Dots = styled.span` + font-weight: 600; +` + +const IconBox = styled.div` + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); +` diff --git a/packages/graphql-playground-react/src/components/Playground/DocExplorer/utils.ts b/packages/graphql-playground-react/src/components/Playground/DocExplorer/utils.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/graphql-playground-react/src/components/Playground/EditorWrapper.tsx b/packages/graphql-playground-react/src/components/Playground/EditorWrapper.tsx index 40cacc266..1f7736a71 100644 --- a/packages/graphql-playground-react/src/components/Playground/EditorWrapper.tsx +++ b/packages/graphql-playground-react/src/components/Playground/EditorWrapper.tsx @@ -1,6 +1,5 @@ import * as React from 'react' -import { styled } from '../../styled' -import { injectGlobal } from 'styled-components' +import { styled, createGlobalStyle } from '../../styled' const EditorWrapper = styled.div` /* Comment */ @@ -269,6 +268,7 @@ const EditorWrapper = styled.div` white-space: nowrap; } .CodeMirror-linenumbers { + background: ${p => p.theme.editorColours.editorBackground}; } .CodeMirror-linenumber { font-family: Open Sans, sans-serif; @@ -347,12 +347,15 @@ const EditorWrapper = styled.div` height: 100%; /* 30px is the magic margin used to hide the element's real scrollbars */ /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; - margin-right: -30px; + /* margin-bottom: -30px; + margin-right: -30px; */ outline: none; /* Prevent dragging from highlighting the element */ - overflow: scroll !important; /* Things will break if this is overridden */ - padding-bottom: 30px; + overflow: hidden; + /* padding-bottom: 30px; */ position: relative; + &:hover { + overflow: scroll !important; /* Things will break if this is overridden */ + } } .CodeMirror-sizer { border-right: 30px solid transparent; @@ -630,6 +633,7 @@ const EditorWrapper = styled.div` } .CodeMirror-jump-token { + cursor: pointer; text-decoration: underline; } ` @@ -637,7 +641,34 @@ const EditorWrapper = styled.div` // Styling of portal for hints // .CodeMirror-info info for types breaks stack trace // tslint:disable-next-line -injectGlobal` +const GlobalStyle = createGlobalStyle` + *::-webkit-scrollbar { + -webkit-appearance: none; + width: 7px; + height: 7px; + } + *::-webkit-scrollbar-track-piece { + background-color: rgba(255, 255, 255, 0); + } + *::-webkit-scrollbar-track { + background-color: inherit; + } + *::-webkit-scrollbar-thumb { + max-height: 100px; + border-radius: 3px; + background-color: rgba(1, 1, 1, 0.23); + } + *::-webkit-scrollbar-thumb:hover { + background-color: rgba(1, 1, 1, 0.35); + } + *::-webkit-scrollbar-thumb:active { + background-color: rgba(1, 1, 1, 0.48); + } + *::-webkit-scrollbar-corner { + background: rgba(0,0,0,0); + } + + .CodeMirror-lint-tooltip, .CodeMirror-info { background-color: white; border-radius: 4px 4px 4px 4px; @@ -719,7 +750,6 @@ injectGlobal` margin-left: -6px; margin: 0; max-height: 20em; - overflow-y: auto; overflow: hidden; padding: 0; position: absolute; @@ -727,6 +757,9 @@ injectGlobal` border-radius: 2px; top: 0 !important; left: 0 !important; + &:hover { + overflow-y: overlay; + } } .CodeMirror-hints-wrapper { @@ -742,7 +775,7 @@ injectGlobal` box-shadow: none; margin-left: 0; position: relative; - z-index: 0; + z-index: 0; } .CodeMirror-hint { @@ -806,7 +839,12 @@ injectGlobal` } ` -const Wrapper = ({ children }) => {children} +const Wrapper = ({ children }) => ( + + {children} + + +) const GraphqlContainer = styled.div` color: #141823; diff --git a/packages/graphql-playground-react/src/components/Playground/ExecuteButton.tsx b/packages/graphql-playground-react/src/components/Playground/ExecuteButton.tsx index 975f114ae..92542e8b6 100644 --- a/packages/graphql-playground-react/src/components/Playground/ExecuteButton.tsx +++ b/packages/graphql-playground-react/src/components/Playground/ExecuteButton.tsx @@ -8,7 +8,7 @@ import * as React from 'react' import ExecuteButtonOperation from './ExecuteButtonOperation' -import { withProps, styled } from '../../styled' +import { styled } from '../../styled' import { connect } from 'react-redux' import { runQuery, stopQuery } from '../../state/sessions/actions' import { createStructuredSelector } from 'reselect' @@ -59,18 +59,20 @@ class ExecuteButton extends React.Component { if (hasOptions && optionsOpen) { const highlight = this.state.highlight options = ( - - {operations.map(operation => ( - - ))} - + + + {operations.map(operation => ( + + ))} + + ) } @@ -202,7 +204,7 @@ interface ButtonProps { isRunning: boolean } -const Button = withProps()(styled.div)` +const Button = styled('div')` width: 60px; height: 60px; @@ -224,19 +226,19 @@ const Button = withProps()(styled.div)` } &:hover { - background-color:${p => + background-color: ${p => p.isRunning ? p.theme.editorColours.executeButtonSubscriptionHover : p.theme.editorColours.executeButtonHover}; } ` -const ExecuteOptions = styled.ul` +const ExecuteBox = styled.div` background: #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.25); + padding: 8px 0; left: -1px; margin: 0; - padding: 8px 0; position: absolute; top: 78px; z-index: 100; @@ -251,6 +253,11 @@ const ExecuteOptions = styled.ul` width: 8px; height: 8px; } +` + +const ExecuteOptions = styled.ul` + max-height: 270px; + overflow: scroll; li { cursor: pointer; diff --git a/packages/graphql-playground-react/src/components/Playground/GenerateCodeButton.tsx b/packages/graphql-playground-react/src/components/Playground/GenerateCodeButton.tsx deleted file mode 100644 index 0d1becca3..000000000 --- a/packages/graphql-playground-react/src/components/Playground/GenerateCodeButton.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import * as React from 'react' -import Icon from 'graphcool-styles/dist/components/Icon/Icon' -import Tooltip from '../Tooltip' -import * as cn from 'classnames' - -export interface Props { - onOpenCodeGeneration: () => void -} - -export interface State { - open: boolean -} - -export default class GenerateCodeButton extends React.Component { - constructor(props) { - super(props) - this.state = { - open: false, - } - } - render() { - const { open } = this.state - return ( -
- -
-
- -
-
- -
-
- - Generate Code - -
-
-
-
-
-
- ) - } - - private toggleTooltip = () => { - this.setState(state => ({ open: !state.open })) - } -} diff --git a/packages/graphql-playground-react/src/components/Playground/GraphQLEditor.tsx b/packages/graphql-playground-react/src/components/Playground/GraphQLEditor.tsx index 9d3ed2bc0..f9b5b2bcf 100644 --- a/packages/graphql-playground-react/src/components/Playground/GraphQLEditor.tsx +++ b/packages/graphql-playground-react/src/components/Playground/GraphQLEditor.tsx @@ -12,10 +12,8 @@ import { connect } from 'react-redux' import Spinner from '../Spinner' import Results from './Results' import ResponseTracing from './ResponseTracing' -import withTheme from '../Theme/withTheme' -import { LocalThemeInterface } from '../Theme' import GraphDocs from './DocExplorer/GraphDocs' -import { withProps, styled } from '../../styled/index' +import { styled } from '../../styled/index' import TopBar from './TopBar/TopBar' import { VariableEditorComponent, @@ -118,9 +116,7 @@ export interface ToolbarButtonProps extends SimpleProps { label: string } -class GraphQLEditor extends React.PureComponent< - Props & LocalThemeInterface & ReduxProps -> { +class GraphQLEditor extends React.PureComponent { public codeMirrorSizer public queryEditorComponent public variableEditorComponent @@ -160,74 +156,6 @@ class GraphQLEditor extends React.PureComponent< render() { return ( - - Query Variables {'HTTP Headers ' + @@ -313,7 +241,9 @@ class GraphQLEditor extends React.PureComponent< isOpen={this.props.responseTracingOpen} onMouseDown={this.handleTracingResizeStart} > - Tracing + + Tracing + @@ -612,31 +542,29 @@ const mapStateToProps = createStructuredSelector({ sessionId: getSelectedSessionIdFromRoot, }) -export default withTheme( - // TODO fix redux types - connect( - mapStateToProps, - { - updateQueryFacts, - stopQuery, - runQueryAtPosition, - openQueryVariables, - closeQueryVariables, - openVariables, - closeVariables, - openTracing, - closeTracing, - toggleTracing, - setEditorFlex, - toggleVariables, - fetchSchema, - }, - null, - { - withRef: true, - }, - )(GraphQLEditor), -) +export default // TODO fix redux types +connect( + mapStateToProps, + { + updateQueryFacts, + stopQuery, + runQueryAtPosition, + openQueryVariables, + closeQueryVariables, + openVariables, + closeVariables, + openTracing, + closeTracing, + toggleTracing, + setEditorFlex, + toggleVariables, + fetchSchema, + }, + null, + { + withRef: true, + }, +)(GraphQLEditor) const EditorBar = styled.div` display: flex; @@ -675,16 +603,19 @@ interface DrawerProps { height: number } -const BottomDrawer = withProps()(styled.div)` +const BottomDrawer = styled('div')` display: flex; background: #0b1924; flex-direction: column; position: relative; height: ${props => (props.isOpen ? `${props.height}px` : '43px')}; - ` +` interface TitleProps { isOpen: boolean + onMouseDown?: any + onClick?: any + ref?: any } const BottomDrawerTitle = styled.div` @@ -694,7 +625,7 @@ const BottomDrawerTitle = styled.div` letter-spacing: 0.53px; line-height: 14px; font-size: 14px; - padding: 14px 14px 5px 21px; + padding: 14px 14px 15px 21px; user-select: none; ` @@ -704,29 +635,40 @@ const VariableEditor = styled(BottomDrawer)` width: calc(100% - 12px); background: ${p => p.theme.editorColours.leftDrawerBackground}; } + .CodeMirror-lines { + padding: 10px 0 20px 0; + } + .CodeMirror-linenumbers { + background: ${p => p.theme.editorColours.leftDrawerBackground}; + } ` -const VariableEditorTitle = withProps()(styled(BottomDrawerTitle))` +const VariableEditorTitle = styled(({ isOpen, ...rest }) => ( + +))` cursor: ${p => (p.isOpen ? 'row-resize' : 'n-resize')}; background: ${p => p.theme.editorColours.leftDrawerBackground}; ` -const VariableEditorSubtitle = withProps()(styled.span)` +const VariableEditorSubtitle = styled('span')` margin-right: 10px; cursor: pointer; color: ${p => p.isOpen ? p.theme.editorColours.drawerText : p.theme.editorColours.drawerTextInactive}; + &:last-child { + margin-right: 0; + } ` const ResponseTracking = styled(BottomDrawer)` background: ${p => p.theme.editorColours.rightDrawerBackground}; ` -const ResponseTrackingTitle = withProps()( - styled(BottomDrawerTitle), -)` +const ResponseTrackingTitle = styled(({ isOpen, ...rest }) => ( + +))` text-align: right; background: ${p => p.theme.editorColours.rightDrawerBackground}; cursor: ${props => (props.isOpen ? 's-resize' : 'n-resize')}; @@ -737,7 +679,7 @@ interface QueryProps { flex: number } -const QueryWrap = withProps()(styled.div)` +const QueryWrap = styled('div')` position: relative; display: flex; flex-direction: column; diff --git a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpHeaders.tsx b/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpHeaders.tsx deleted file mode 100644 index 1f9d7a72f..000000000 --- a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpHeaders.tsx +++ /dev/null @@ -1,156 +0,0 @@ -import * as React from 'react' -import Tooltip from '../../Tooltip' -import HttpListItem from './HttpListItem' - -export interface Header { - name: string - value: string -} - -export interface Props { - headers?: Header[] - onChange?: (headers: Header[]) => void -} - -export interface State { - open: boolean - newHeader: boolean -} - -class HttpHeaders extends React.PureComponent { - static defaultProps = { - headers: [], - } - - constructor(props) { - super(props) - this.state = { - open: false, - newHeader: false, - } - } - - render() { - const { headers } = this.props - const { open, newHeader } = this.state - return ( -
- - -
- Http Headers ({(headers && headers.length) || 0}) -
- -
- {headers && - headers.map((header, index) => ( - - ))} - {newHeader && ( - - )} -
- + add new Header -
-
-
-
- ) - } - - private handleToggle = () => { - this.setState({ open: !this.state.open }) - } - - private handleClickNewHeader = () => { - this.setState({ newHeader: true }) - } - - private handleChange = (index: number, header: Header) => { - let { headers } = this.props - if (typeof (headers as any).asMutable === 'function') { - headers = (headers as any).asMutable() - } - if (headers) { - // If new item add it at the end of the array - if (index === -1) { - headers = [...headers, header] - } else { - headers[index] = header - } - if (this.props.onChange) { - this.props.onChange(headers) - } - } - this.setState({ newHeader: false }) - } - - private handleDelete = (index: number) => { - // If delete new item - if (index === -1) { - this.setState({ newHeader: false }) - return - } - let headers: any = this.props.headers as any - if (headers) { - if (headers.asMutable) { - headers = headers.asMutable() - } - headers.splice(index, 1) - if (this.props.onChange) { - this.props.onChange(headers) - } - } - } -} - -export default HttpHeaders diff --git a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpListItem.tsx b/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpListItem.tsx deleted file mode 100644 index b6563d00e..000000000 --- a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/HttpListItem.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import * as React from 'react' -import { Icon, $v } from 'graphcool-styles' -import * as keycode from 'keycode' -import { Header } from './HttpHeaders' - -export interface Props { - header: Header - index: number - onChange: (index: number, Header) => void - onDelete: (index: number) => void -} - -export interface State { - name: string - value: string - editing: boolean -} - -export default class HttpListItem extends React.Component { - private inputRef: any - - constructor(props) { - super(props) - this.state = { - name: props.header.name, - value: props.header.value, - editing: false, - } - } - - componentDidMount() { - // If new element focus it - if (this.props.index === -1) { - this.inputRef.focus() - } - } - - render() { - const { editing, name, value } = this.state - return ( -
- -
- -
-
- -
- {editing ? ( -
- -
- ) : ( -
- -
- )} -
- ) - } - - private setRef = ref => { - this.inputRef = ref - } - - private handleKeyDown = e => { - // Handle enter press and save header - if (keycode(e) === 'enter' && this.state.editing) { - this.handleValidate() - } - } - - private handleEditChange = ({ target }) => { - this.setState({ [target.name]: target.value, editing: true }) - } - - private handleValidate = () => { - if (this.state.name && this.state.value) { - this.props.onChange(this.props.index, { - name: this.state.name, - value: this.state.value, - }) - this.setState({ editing: false }) - } - } - - private handleDelete = () => { - this.props.onDelete(this.props.index) - } -} diff --git a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/index.ts b/packages/graphql-playground-react/src/components/Playground/HttpHeaders/index.ts deleted file mode 100644 index 6808b9785..000000000 --- a/packages/graphql-playground-react/src/components/Playground/HttpHeaders/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import HttpHeaders, { Header } from './HttpHeaders' - -export default HttpHeaders -export { Header } diff --git a/packages/graphql-playground-react/src/components/Playground/QueryEditor.tsx b/packages/graphql-playground-react/src/components/Playground/QueryEditor.tsx index 54451f8b3..af2d9139a 100644 --- a/packages/graphql-playground-react/src/components/Playground/QueryEditor.tsx +++ b/packages/graphql-playground-react/src/components/Playground/QueryEditor.tsx @@ -234,7 +234,7 @@ export class QueryEditor extends React.PureComponent { render() { return ( - + ) } diff --git a/packages/graphql-playground-react/src/components/Playground/QueryHeader.tsx b/packages/graphql-playground-react/src/components/Playground/QueryHeader.tsx deleted file mode 100644 index 44db4faef..000000000 --- a/packages/graphql-playground-react/src/components/Playground/QueryHeader.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from 'react' - -export interface Props { - onPrettify: any - showEndpoints?: boolean - showQueryTitle?: boolean -} - -const QueryHeader = ({ onPrettify, showQueryTitle }: Props) => ( -
- - {showQueryTitle &&
Query
} -
- Prettify -
-
-) - -export default QueryHeader diff --git a/packages/graphql-playground-react/src/components/Playground/QueryHeader/Info.tsx b/packages/graphql-playground-react/src/components/Playground/QueryHeader/Info.tsx deleted file mode 100644 index fcfcfdc7f..000000000 --- a/packages/graphql-playground-react/src/components/Playground/QueryHeader/Info.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import * as React from 'react' - -const Info = props => ( -
- -
?
-
-
{props.children}
-
-
-) - -export default Info diff --git a/packages/graphql-playground-react/src/components/Playground/ResponseTracing.tsx b/packages/graphql-playground-react/src/components/Playground/ResponseTracing.tsx index 1c1d1a302..27a3c04e8 100644 --- a/packages/graphql-playground-react/src/components/Playground/ResponseTracing.tsx +++ b/packages/graphql-playground-react/src/components/Playground/ResponseTracing.tsx @@ -37,7 +37,7 @@ export interface ReduxProps { } const TracingWrapper = styled.div` - padding-top: 16px; + padding-top: 6px; padding-left: 25px; padding-right: 25px; color: ${p => p.theme.editorColours.text}; diff --git a/packages/graphql-playground-react/src/components/Playground/ResultViewer.tsx b/packages/graphql-playground-react/src/components/Playground/ResultViewer.tsx index 6372853ce..3600d0def 100644 --- a/packages/graphql-playground-react/src/components/Playground/ResultViewer.tsx +++ b/packages/graphql-playground-react/src/components/Playground/ResultViewer.tsx @@ -7,7 +7,7 @@ */ import * as React from 'react' -import { styled, withProps } from '../../styled' +import { styled } from '../../styled' export interface Props { value: string @@ -91,10 +91,7 @@ export class ResultViewer extends React.Component { render() { return ( - + ) } @@ -122,7 +119,7 @@ interface ResultProps { isSubscription: boolean } -const Result = withProps()(styled.div)` +const Result = styled('div')` position: relative; display: flex; flex: 1; @@ -134,6 +131,9 @@ const Result = withProps()(styled.div)` background: none; padding-left: 38px; } + .CodeMirror-cursor { + display: none !important; + } .CodeMirror-scroll { overflow: auto !important; max-width: 50vw; diff --git a/packages/graphql-playground-react/src/components/Playground/Results.tsx b/packages/graphql-playground-react/src/components/Playground/Results.tsx index e6c92b55c..054db00f1 100644 --- a/packages/graphql-playground-react/src/components/Playground/Results.tsx +++ b/packages/graphql-playground-react/src/components/Playground/Results.tsx @@ -5,7 +5,7 @@ import { connect } from 'react-redux' import { createStructuredSelector } from 'reselect' import { getResponses } from '../../state/sessions/selectors' import { List } from 'immutable' -import { styled, withProps } from '../../styled' +import { styled } from '../../styled' import { ResponseRecord } from '../../state/sessions/reducers' export interface Props { @@ -26,7 +26,7 @@ const Results: React.SFC = ({ setRef, responses }) => { const response1 = responses.get(0) || defaultResponseRecord const isSubscription = responses.size > 1 return ( - + {responses.size <= 1 ? ( {responses.size > 1 && @@ -77,7 +77,7 @@ const mapStateToProps = createStructuredSelector({ export default connect(mapStateToProps)(Results) -const ResultWindow = withProps()(styled.div)` +const ResultWindow = styled('div')` flex: 1; height: ${props => (props.isSubscription ? 'auto' : '100%')}; position: relative; @@ -113,7 +113,7 @@ const ResultWindow = withProps()(styled.div)` } ` -const Response = withProps()(styled.div)` +const Response = styled('div')` position: relative; display: flex; flex: 1; @@ -150,7 +150,7 @@ interface ResultWrapperProps { isSubscription: boolean } -const ResultWrapper = withProps()(styled.div)` +const ResultWrapper = styled('div')` display: flex; flex: 1; height: ${props => (props.isSubscription ? `auto` : '100%')}; diff --git a/packages/graphql-playground-react/src/components/Playground/SchemaExplorer.tsx b/packages/graphql-playground-react/src/components/Playground/SchemaExplorer.tsx deleted file mode 100644 index 1c7f24298..000000000 --- a/packages/graphql-playground-react/src/components/Playground/SchemaExplorer.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import * as React from 'react' -import { QueryEditor } from './QueryEditor' - -export interface Props { - idl?: string - ref?: any - modelName?: string -} - -export default function SchemaExplorer({ idl, modelName }: Props) { - return ( -
- -
Schema for „{modelName}“
- -
- ) -} - -function handleClickReference() { - // -} diff --git a/packages/graphql-playground-react/src/components/Playground/Tab.tsx b/packages/graphql-playground-react/src/components/Playground/Tab.tsx index 64e0fdb07..f6465a7e5 100644 --- a/packages/graphql-playground-react/src/components/Playground/Tab.tsx +++ b/packages/graphql-playground-react/src/components/Playground/Tab.tsx @@ -1,8 +1,8 @@ import * as React from 'react' -import Icon from 'graphcool-styles/dist/components/Icon/Icon' +import { SettingsIcon, CrossIcon } from '../Icons' import { connect } from 'react-redux' import { closeTab, selectTab, editName } from '../../state/sessions/actions' -import { styled, withProps } from '../../styled' +import { styled } from '../../styled' import { Session } from '../../state/sessions/reducers' import AutosizeInput from 'react-input-autosize' @@ -45,19 +45,14 @@ class Tab extends React.PureComponent { 'New Tab' return ( - + {session.subscriptionActive && } {queryTypes.query && Q} {(session.isSettingsTab || session.isConfigTab) && ( - + )} {queryTypes.mutation && M} @@ -66,7 +61,7 @@ class Tab extends React.PureComponent { {this.state.editingName ? ( { {session.isFile && session.changed && !this.state.overCross ? ( ⬤ ) : ( - )} @@ -147,23 +141,22 @@ interface TabItemProps { hasCircle?: boolean } -const TabItem = withProps()(styled.div)` +const TabItem = styled('div')` + flex: 0 0 auto; display: flex; align-items: center; height: 43px; padding: 10px; padding-top: 9px; - margin-left: 10px; + margin-right: 10px; font-size: 14px; border-radius: 2px; border-bottom: 2px solid ${p => p.theme.editorColours.navigationBar}; box-sizing: border-box; cursor: pointer; + user-select: none; background: ${p => p.active ? p.theme.editorColours.tab : p.theme.editorColours.tabInactive}; - &:first-child { - margin-left: 0; - } &:hover { background: ${p => p.theme.editorColours.tab}; .close { @@ -172,7 +165,7 @@ const TabItem = withProps()(styled.div)` } ` -const OperationName = withProps()(styled.div)` +const OperationName = styled('div')` opacity: ${p => (p.active ? 1 : 0.5)}; background: transparent; color: ${p => p.theme.editorColours.tabText}; @@ -193,7 +186,7 @@ const OperationNameInput = styled(AutosizeInput)` } ` -const Icons = withProps()(styled.div)` +const Icons = styled('div')` display: flex; align-items: center; opacity: ${p => (p.active ? 1 : 0.5)}; @@ -201,6 +194,7 @@ const Icons = withProps()(styled.div)` const QueryTypes = styled.div` display: flex; + color: white; ` const QueryType = styled.div` @@ -216,15 +210,15 @@ const QueryType = styled.div` ` const Query = styled(QueryType)` - background: rgba(42, 126, 210, 1); + background: ${p => p.theme.colours.blue}; ` const Mutation = styled(QueryType)` - background: rgba(241, 143, 1, 1); + background: ${p => p.theme.colours.orange}; ` const Subscription = styled(QueryType)` - background: rgba(164, 3, 111, 1); + background: ${p => p.theme.colours.purple}; ` const RedDot = styled.div` @@ -242,8 +236,9 @@ const Circle = styled.div` background: ${p => p.theme.editorColours.circle}; ` -const Close = withProps()(styled.div)` +const Close = styled('div')` position: relative; + display: flex; margin-left: 10px; top: 1px; height: 13px; diff --git a/packages/graphql-playground-react/src/components/Playground/TabBar.tsx b/packages/graphql-playground-react/src/components/Playground/TabBar.tsx index 754645697..17efba00a 100644 --- a/packages/graphql-playground-react/src/components/Playground/TabBar.tsx +++ b/packages/graphql-playground-react/src/components/Playground/TabBar.tsx @@ -1,7 +1,7 @@ import * as React from 'react' -import { styled, withProps } from '../../styled' -import { Icon } from 'graphcool-styles' -import Tab from './Tab' +import { styled } from '../../styled' +import { AddIcon } from '../Icons' +import Tab, { Props as TabProps } from './Tab' import { connect } from 'react-redux' import { createStructuredSelector } from 'reselect' import { @@ -9,6 +9,13 @@ import { getSelectedSessionIdFromRoot, } from '../../state/sessions/selectors' import { Session } from '../../state/sessions/reducers' +import { reorderTabs } from '../../state/sessions/actions' +import { + SortableContainer, + SortableElement, + SortStart, + SortEnd, +} from 'react-sortable-hoc' export interface Props { onNewSession: any @@ -18,67 +25,113 @@ export interface Props { export interface ReduxProps { sessions: Session[] selectedSessionId: string + reorderTabs: (src: number, dest: number) => void +} + +interface State { + sorting: boolean } -const TabBar = ({ - sessions, - isApp, - selectedSessionId, - onNewSession, -}: Props & ReduxProps) => ( - - - {sessions.map(session => ( - - ))} - - - - - -) +const SortableTab = SortableElement(Tab) + +class TabBar extends React.PureComponent { + state = { sorting: false } + + render() { + const { sessions, isApp, selectedSessionId, onNewSession } = this.props + const { sorting } = this.state + return ( + + + {sessions.map((session, ndx) => ( + + ))} + + + + + + ) + } + + private onSortStart = ({ index }: SortStart) => { + this.setState({ sorting: true }) + } + + private onSortEnd = ({ oldIndex, newIndex }: SortEnd) => { + this.props.reorderTabs(oldIndex, newIndex) + this.setState({ sorting: false }) + } + + private getHelperDimensions = ({ node }: SortStart) => { + const { width, height } = node.getBoundingClientRect() + return { width, height } + } +} const mapStateToProps = createStructuredSelector({ sessions: getSessionsArray, selectedSessionId: getSelectedSessionIdFromRoot, }) -export default connect(mapStateToProps)(TabBar) +export default connect( + mapStateToProps, + { reorderTabs }, +)(TabBar) const StyledTabBar = styled.div` color: white; height: 57px; background: ${p => p.theme.editorColours.background}; + overflow: hidden; -webkit-app-region: drag; + &:hover { + overflow-x: overlay; + } ` +const SortableTabBar = SortableContainer(StyledTabBar) + interface TabsProps { isApp?: boolean } -const Tabs = withProps()(styled.div)` +const Tabs = styled('div')` display: flex; align-items: center; margin-top: 16px; padding-left: ${p => (p.isApp ? '43px' : '0')}; ` -const Plus = styled.div` +interface PlusProps { + sorting: boolean +} + +const Plus = styled('div')` box-sizing: border-box; display: flex; + visibility: ${p => (p.sorting ? 'hidden' : 'visible')} height: 43px; width: 43px; - margin-left: 10px; border-radius: 2px; border-bottom: 2px solid ${p => p.theme.editorColours.navigationBar}; background: ${p => p.theme.editorColours.tabInactive}; diff --git a/packages/graphql-playground-react/src/components/Playground/TokenTooltip.tsx b/packages/graphql-playground-react/src/components/Playground/TokenTooltip.tsx deleted file mode 100644 index 8bd7b3e75..000000000 --- a/packages/graphql-playground-react/src/components/Playground/TokenTooltip.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import * as React from 'react' -import Tooltip from '../Tooltip' - -export default class TokenTooltip extends React.Component { - render() { - return ( - -

This is the tooltip

-
- ) - } - handleToggle = () => { - // - } -} diff --git a/packages/graphql-playground-react/src/components/Playground/TopBar/ReloadIcon.tsx b/packages/graphql-playground-react/src/components/Playground/TopBar/ReloadIcon.tsx index 1b6841b65..7705fb34d 100644 --- a/packages/graphql-playground-react/src/components/Playground/TopBar/ReloadIcon.tsx +++ b/packages/graphql-playground-react/src/components/Playground/TopBar/ReloadIcon.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { styled, keyframes, withProps } from '../../../styled/index' +import { styled, keyframes } from '../../../styled/index' export interface Props { isReloadingSchema: boolean @@ -7,7 +7,7 @@ export interface Props { } const ReloadIcon: React.SFC = props => ( - + ()(styled.circle)` +const Circle = styled('circle')` fill: none; stroke: ${p => p.theme.editorColours.icon}; stroke-dasharray: 37.68; transition: opacity 0.3s ease-in-out; opacity: ${p => (p.isReloadingSchema ? 1 : 0)}; transform-origin: 9.5px 10px; - animation: ${refreshFrames} 2s linear ${p => - p.isReloadingSchema ? 'infinite' : ''}; + animation: ${refreshFrames} 2s linear + ${p => (p.isReloadingSchema ? 'infinite' : '')}; ` -const Icon = withProps()(styled.path)` +const Icon = styled('path')` transition: opacity 0.3s ease-in-out; opacity: ${p => (p.isReloadingSchema ? 0 : 1)}; transform-origin: 9.5px 10px; diff --git a/packages/graphql-playground-react/src/components/Playground/TopBar/TopBar.tsx b/packages/graphql-playground-react/src/components/Playground/TopBar/TopBar.tsx index 0dbc32bb8..36942f676 100644 --- a/packages/graphql-playground-react/src/components/Playground/TopBar/TopBar.tsx +++ b/packages/graphql-playground-react/src/components/Playground/TopBar/TopBar.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { styled, withProps } from '../../../styled/index' +import { styled } from '../../../styled/index' import * as copy from 'copy-to-clipboard' import Share from '../../Share' @@ -185,7 +185,7 @@ interface UrlBarProps { active: boolean } -const UrlBar = withProps()(styled.input)` +const UrlBar = styled('input')` background: ${p => p.theme.editorColours.button}; border-radius: 4px; color: ${p => diff --git a/packages/graphql-playground-react/src/components/Playground/VariableEditor.tsx b/packages/graphql-playground-react/src/components/Playground/VariableEditor.tsx index 3486a0005..8f3230b77 100644 --- a/packages/graphql-playground-react/src/components/Playground/VariableEditor.tsx +++ b/packages/graphql-playground-react/src/components/Playground/VariableEditor.tsx @@ -186,7 +186,7 @@ class VariableEditor extends React.PureComponent { render() { return ( { + ref={node => { this._node = node }} /> diff --git a/packages/graphql-playground-react/src/components/Playground/util/getQueryTypes.ts b/packages/graphql-playground-react/src/components/Playground/util/getQueryTypes.ts index 17cfae49c..01bb6e793 100644 --- a/packages/graphql-playground-react/src/components/Playground/util/getQueryTypes.ts +++ b/packages/graphql-playground-react/src/components/Playground/util/getQueryTypes.ts @@ -9,6 +9,10 @@ export const getQueryTypes = (ast): QueryTypes => { if (ast && ast.definitions) { ast.definitions.forEach(definition => { + if (!firstOperationName) { + firstOperationName = definition.name && definition.name.value + } + if (!firstOperationName) { firstOperationName = definition.selectionSet && diff --git a/packages/graphql-playground-react/src/components/PlaygroundWrapper.tsx b/packages/graphql-playground-react/src/components/PlaygroundWrapper.tsx index f12f06cd4..4c37feaab 100644 --- a/packages/graphql-playground-react/src/components/PlaygroundWrapper.tsx +++ b/packages/graphql-playground-react/src/components/PlaygroundWrapper.tsx @@ -17,10 +17,9 @@ import { lightEditorColours, EditorColours, } from '../styled/theme' -import OldThemeProvider from './Theme/ThemeProvider' +// import OldThemeProvider from './Theme/ThemeProvider' import { getActiveEndpoints } from './util' import { ISettings } from '../types' -import { createStructuredSelector } from 'reselect' import { connect } from 'react-redux' import { getTheme, getSettings } from '../state/workspace/reducers' import { Session, Tab } from '../state/sessions/reducers' @@ -62,6 +61,8 @@ export interface PlaygroundWrapperProps { tabs?: Tab[] schema?: { __schema: any } // introspection result codeTheme?: EditorColours + workspaceName?: string + headers?: any } export interface ReduxProps { @@ -92,6 +93,11 @@ class PlaygroundWrapper extends React.Component< super(props) ;(global as any).m = this + this.state = this.mapPropsToState(props) + this.removeLoader() + } + + mapPropsToState(props: PlaygroundWrapperProps): State { const configIsYaml = props.configString ? this.isConfigYaml(props.configString) : false @@ -121,9 +127,7 @@ class PlaygroundWrapper extends React.Component< subscriptionEndpoint = this.normalizeSubscriptionUrl(endpoint, subscriptionEndpoint) || undefined - this.removeLoader() - - this.state = { + return { endpoint: this.absolutizeUrl(endpoint), platformToken: props.platformToken || @@ -191,12 +195,16 @@ class PlaygroundWrapper extends React.Component< } componentWillReceiveProps(nextProps: PlaygroundWrapperProps & ReduxProps) { + // Reactive props (props that cause a state change upon being changed) if ( - nextProps.configString !== this.props.configString && - nextProps.configString + nextProps.endpoint !== this.props.endpoint || + nextProps.endpointUrl !== this.props.endpointUrl || + nextProps.subscriptionEndpoint !== this.props.subscriptionEndpoint || + nextProps.configString !== this.props.configString || + nextProps.platformToken !== this.props.platformToken || + nextProps.config !== this.props.config ) { - const configIsYaml = this.isConfigYaml(nextProps.configString) - this.setState({ configIsYaml }) + this.setState(this.mapPropsToState(nextProps)) this.setInitialWorkspace(nextProps) } } @@ -327,6 +335,10 @@ class PlaygroundWrapper extends React.Component< ) : null + const defaultHeaders = this.props.headers || {} + const stateHeaders = this.state.headers || {} + const combinedHeaders = { ...defaultHeaders, ...stateHeaders } + const { theme } = this.props return (
@@ -343,49 +355,49 @@ class PlaygroundWrapper extends React.Component< settings: this.props.settings, }} > - - - {this.props.config && - this.state.activeEnv && ( - - )} - - - + + {this.props.config && + this.state.activeEnv && ( + + )} + +
) @@ -511,10 +523,11 @@ class PlaygroundWrapper extends React.Component< } } -const mapStateToProps = createStructuredSelector({ - theme: getTheme, - settings: getSettings, -}) +const mapStateToProps = (state, ownProps) => { + const theme = ownProps.theme || getTheme(state, ownProps.settings) + const settings = getSettings(state) + return { theme, settings } +} export default connect( mapStateToProps, diff --git a/packages/graphql-playground-react/src/components/ProjectsSideNav.tsx b/packages/graphql-playground-react/src/components/ProjectsSideNav.tsx index 83f3f2515..26a9dab5b 100644 --- a/packages/graphql-playground-react/src/components/ProjectsSideNav.tsx +++ b/packages/graphql-playground-react/src/components/ProjectsSideNav.tsx @@ -1,7 +1,7 @@ import * as React from 'react' import { GraphQLConfig, GraphQLConfigEnpointsMapData } from '../graphqlConfig' import ProjectsSideNavItem from './ProjectsSideNavItem' -import { Icon } from 'graphcool-styles' +import { SettingsIcon, AddFullIcon } from './Icons' import { styled } from '../styled/index' import { getEndpointFromEndpointConfig } from './util' import { createStructuredSelector } from 'reselect' @@ -41,12 +41,11 @@ class ProjectsSideNav extends React.Component {
{folderName} - {endpoints && this.renderEndpoints(endpoints)} @@ -68,17 +67,10 @@ class ProjectsSideNav extends React.Component { })}
- {/* this.props.showNewWorkspace */} {true && (
- + NEW WORKSPACE
@@ -167,17 +159,17 @@ const TitleRow = styled.div` padding-bottom: 20px; justify-content: space-between; - .settings-icon { + svg { cursor: pointer; } - .settings-icon svg { + svg { fill: ${p => p.theme.editorColours.icon}; transition: 0.1s linear fill; } &:hover { - .settings-icon svg { + svg { fill: ${p => p.theme.editorColours.iconHover}; } } diff --git a/packages/graphql-playground-react/src/components/ProjectsSideNavItem.tsx b/packages/graphql-playground-react/src/components/ProjectsSideNavItem.tsx index 170d72d6a..492f96634 100644 --- a/packages/graphql-playground-react/src/components/ProjectsSideNavItem.tsx +++ b/packages/graphql-playground-react/src/components/ProjectsSideNavItem.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { styled, withProps } from '../styled/index' +import { styled } from '../styled/index' export interface Props { env: string @@ -41,7 +41,7 @@ interface SidebarItemProps { deep?: boolean } -const ListItem = withProps()(styled.div)` +const ListItem = styled('div')` position: relative; padding: 10px 10px; font-weight: 600; @@ -68,13 +68,13 @@ const ListItem = withProps()(styled.div)` left: -2px; width: 6px; } - + &:hover { background: ${p => p.theme.editorColours.sidebarItemActive}; } ` -const Count = withProps()(styled.div)` +const Count = styled('div')` border-radius: 6px; width: 18px; height: 18px; @@ -86,6 +86,6 @@ const Count = withProps()(styled.div)` font-weight: bold; background: ${p => p.theme.editorColours.sidebarItemSessions}; color: ${p => p.theme.editorColours.text}; - opacity: ${p => (p.active ? '1' : '0.6')}; + opacity: ${p => (p.active ? 1 : 0.6)}; transition: 0.1s linear all; ` as any diff --git a/packages/graphql-playground-react/src/components/SelectUserPopup/Table.tsx b/packages/graphql-playground-react/src/components/SelectUserPopup/Table.tsx deleted file mode 100644 index dacc95d41..000000000 --- a/packages/graphql-playground-react/src/components/SelectUserPopup/Table.tsx +++ /dev/null @@ -1,190 +0,0 @@ -import * as React from 'react' -import { InfiniteLoader, Table, Column } from 'react-virtualized' - -export interface Props { - rows: any[] - fields: any[] - rowCount: number - loadMoreRows: (settings: { startIndex: number; stopIndex: number }) => void - onRowSelection: (input: { index: number }) => void - scrollToIndex?: number -} - -export interface State { - height: number - rowHeight: number - overscanRowCount: number - selectedRow: number -} - -function pZ(n: number) { - return n < 10 ? `0${n}` : n -} - -export default class TableComponent extends React.Component { - constructor(props) { - super(props) - - this.state = { - height: 400, - rowHeight: 54, - overscanRowCount: 20, - selectedRow: -1, - } as any - ;(global as any).t = this - } - - render() { - const { rowCount, fields } = this.props - const { height, rowHeight, overscanRowCount } = this.state - - return ( -
- - - {({ onRowsRendered, registerChild }) => ( - field.width) - .reduce((acc, value) => acc + value, 0)} - onRowsRendered={onRowsRendered} - onRowClick={this.props.onRowSelection} - rowClassName={this.rowClassName} - scrollToIndex={this.props.scrollToIndex} - > - {fields.map(field => ( - - ))} -
- )} -
-
- ) - } - - private rowClassName = ({ index }) => { - return `table-row ${ - this.props.rows[index] && this.props.rows[index].selected - ? 'selected' - : '' - }` - } - - private noRowsRenderer = () => { - return ( -
- -
No Users
-
- ) - } - - private rowGetter = ({ index }) => { - const row = this.props.rows[index] - if (!row) { - return {} - } - - return Object.keys(row).reduce((prev, current) => { - prev[current] = this.textToString(row[current]) - return prev - }, {}) - } - - private textToString(value) { - if (value instanceof Date) { - return ( - `${pZ(value.getMonth() + 1)}/${pZ(value.getDate())}/${value - .getFullYear() - .toString() - .slice(2, 4)} ` + - `${value.getHours()}:${pZ(value.getMinutes())}:${pZ( - value.getSeconds(), - )}` - ) - } - return String(value) - } - - // private cellRenderer = ({key, style, columnIndex, rowIndex}) => { - // const field = this.props.fields[columnIndex] - // const {selectedRow} = this.state - // return ( - //
this.selectRow(rowIndex)} - // > - // - // {this.textToString(this.props.rows[rowIndex][field])} - //
- // ) - // } - - // private selectRow(rowIndex: number) { - // this.setState({selectedRow: rowIndex} as State) - // } - - private isRowLoaded = ({ index }) => { - const loaded = Boolean(this.props.rows[index]) - return loaded - } -} diff --git a/packages/graphql-playground-react/src/components/Settings.tsx b/packages/graphql-playground-react/src/components/Settings.tsx index b15ccca0c..e2632bfb4 100644 --- a/packages/graphql-playground-react/src/components/Settings.tsx +++ b/packages/graphql-playground-react/src/components/Settings.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import Icon from 'graphcool-styles/dist/components/Icon/Icon' +import { SettingsIcon } from './Icons' import { styled } from '../styled' import { openSettingsTab } from '../state/sessions/actions' import { connect } from 'react-redux' @@ -13,12 +13,11 @@ class Settings extends React.Component { return ( - @@ -42,13 +41,13 @@ const IconWrapper = styled.div` position: relative; cursor: pointer; - .settings-icon svg { + svg { fill: ${p => p.theme.editorColours.icon}; transition: 0.1s linear fill; } &:hover { - .settings-icon svg { + svg { fill: ${p => p.theme.editorColours.iconHover}; } } diff --git a/packages/graphql-playground-react/src/components/Share.tsx b/packages/graphql-playground-react/src/components/Share.tsx index fe6af280a..2fe6369a4 100644 --- a/packages/graphql-playground-react/src/components/Share.tsx +++ b/packages/graphql-playground-react/src/components/Share.tsx @@ -1,12 +1,10 @@ import * as React from 'react' -import Icon from 'graphcool-styles/dist/components/Icon/Icon' -import { $v } from 'graphcool-styles' +import { ShareIcon } from './Icons' import ToggleButton from './ToggleButton' import Tooltip from './Tooltip' -import { LocalThemeInterface } from './Theme' import { Button } from './Button' import Copy from './Copy' -import { keyframes, styled } from '../styled' +import { keyframes, styled, ThemeInterface, withTheme } from '../styled' import { connect } from 'react-redux' import { createStructuredSelector } from 'reselect' import { @@ -22,10 +20,11 @@ import { share, } from '../state/sharing/actions' -export interface SharingProps extends LocalThemeInterface { +export interface SharingProps { allTabs: boolean headers: boolean history: boolean + theme: ThemeInterface toggleShareHistory: () => void toggleShareHeaders: () => void @@ -51,7 +50,7 @@ class Share extends React.Component { } render() { const { open } = this.state - const { allTabs, headers, history, shareUrl, reshare } = this.props + const { allTabs, headers, history, shareUrl, reshare, theme } = this.props return ( @@ -100,11 +99,11 @@ class Share extends React.Component { - @@ -149,15 +148,17 @@ const mapStateToProps = createStructuredSelector({ shareUrl: getShareUrl, }) -export default connect( - mapStateToProps, - { - toggleShareAllTabs, - toggleShareHeaders, - toggleShareHistory, - share, - }, -)(Share) +export default withTheme( + connect( + mapStateToProps, + { + toggleShareAllTabs, + toggleShareHeaders, + toggleShareHistory, + share, + }, + )(Share), +) const AuthSharingWarning = () => ( @@ -257,6 +258,7 @@ const Input = styled.input` display: block; width: 100%; padding: ${p => p.theme.sizes.small6} ${p => p.theme.sizes.small10}; + padding-right: 25px; font-weight: ${p => p.theme.sizes.fontSemiBold}; font-size: ${p => p.theme.sizes.fontTiny}; diff --git a/packages/graphql-playground-react/src/components/Theme/ThemeProvider.tsx b/packages/graphql-playground-react/src/components/Theme/ThemeProvider.tsx deleted file mode 100644 index 6a4341b7d..000000000 --- a/packages/graphql-playground-react/src/components/Theme/ThemeProvider.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import * as React from 'react' -import * as PropTypes from 'prop-types' - -export class Theme { - theme: string - subscriptions: any[] - - constructor(theme: string) { - this.theme = theme - this.subscriptions = [] - } - - setTheme(theme) { - this.theme = theme - this.subscriptions.forEach(f => f()) - } - - subscribe(f) { - this.subscriptions.push(f) - } - - unsubscribe(f) { - const i = this.subscriptions.indexOf(f) - this.subscriptions.splice(i, 1) - } -} - -export interface ThemeProviderProps { - theme: string -} - -// tslint:disable-next-line -export default class ThemeProvider extends React.PureComponent< - ThemeProviderProps, - {} -> { - static childContextTypes = { - localTheme: PropTypes.object, - } - - private theme: Theme - - constructor(p, c) { - super(p, c) - // theme provider uses the same Theme object - // during it's entire lifecycle - this.theme = new Theme(this.props.theme) - } - - // update theme whenever needed. This propagate changes to subscribed components - componentWillReceiveProps(next) { - this.theme.setTheme(next.theme) - } - - getChildContext() { - return { localTheme: this.theme } - } - - render() { - return this.props.children as any - } -} diff --git a/packages/graphql-playground-react/src/components/Theme/index.ts b/packages/graphql-playground-react/src/components/Theme/index.ts deleted file mode 100644 index 9dea80649..000000000 --- a/packages/graphql-playground-react/src/components/Theme/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import withTheme from './withTheme' -import ThemeProvider from './ThemeProvider' - -type ThemeType = 'dark' | 'light' - -interface LocalThemeInterface { - localTheme: ThemeType -} - -interface OptionalLocalThemeInterface { - localTheme?: ThemeType -} - -export { - withTheme, - ThemeProvider, - ThemeType, - LocalThemeInterface, - OptionalLocalThemeInterface, -} diff --git a/packages/graphql-playground-react/src/components/Theme/withTheme.tsx b/packages/graphql-playground-react/src/components/Theme/withTheme.tsx deleted file mode 100644 index d6343cec0..000000000 --- a/packages/graphql-playground-react/src/components/Theme/withTheme.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import * as React from 'react' -import * as PropTypes from 'prop-types' - -export interface ThemeProps { - onRef?: any -} - -function withTheme( - Component, -): React.ComponentClass { - return class WithTheme extends React.Component { - static contextTypes = { - localTheme: PropTypes.object, - } - mounted: boolean - - rerender = () => { - if (this.mounted) { - this.forceUpdate() - } - } - - componentDidMount() { - // subscribe to future theme changes - this.mounted = true - this.context.localTheme.subscribe(this.rerender) - } - - componentWillUnmount() { - this.mounted = false - this.context.localTheme.unsubscribe(this.rerender) - } - - render() { - return ( - - ) - } - } -} - -export default withTheme diff --git a/packages/graphql-playground-react/src/components/ToggleButton.tsx b/packages/graphql-playground-react/src/components/ToggleButton.tsx index 64ef30e81..460eded02 100644 --- a/packages/graphql-playground-react/src/components/ToggleButton.tsx +++ b/packages/graphql-playground-react/src/components/ToggleButton.tsx @@ -1,6 +1,5 @@ -/* tslint:disable */ import * as React from 'react' -import { css, styled } from '../styled' +import { styled } from '../styled' export interface Props { checked: boolean @@ -35,7 +34,7 @@ interface SliderProps { checked: boolean } -const Slider = styled.div` +const Slider = styled('div')` position: absolute; top: 0; left: 0; @@ -61,11 +60,6 @@ const Slider = styled.div` box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); transition: transform 70ms linear; - ${(p: SliderProps) => - p.checked - ? css` - transform: translateX(19px); - ` - : ''}; + transform: ${p => (p.checked ? 'translateX(19px)' : '')}; } ` diff --git a/packages/graphql-playground-react/src/constants.ts b/packages/graphql-playground-react/src/constants.ts index de8db523c..26b1a6db9 100644 --- a/packages/graphql-playground-react/src/constants.ts +++ b/packages/graphql-playground-react/src/constants.ts @@ -98,7 +98,7 @@ export const introspectionQuery = ` } ` -export const defaultQuery = '# Try to write your query here\n' +export const defaultQuery = '# Write your query or mutation here\n' export const modalStyle = { overlay: { diff --git a/packages/graphql-playground-react/src/index.test.tsx b/packages/graphql-playground-react/src/index.test.tsx new file mode 100644 index 000000000..efd5c524b --- /dev/null +++ b/packages/graphql-playground-react/src/index.test.tsx @@ -0,0 +1,69 @@ +import * as React from 'react' +import { render, mount } from 'enzyme' +import MiddlewareApp from './components/MiddlewareApp' + +test('test MiddleWareApp without tabs', () => { + const wrapper = render( + , + ) + expect(wrapper).toMatchSnapshot() +}) + +test('test MiddleWareApp with tabs', () => { + const wrapper = render( + , + ) + expect(wrapper).toMatchSnapshot() +}) + +test('test MiddleWareApp with one tab and click execute', () => { + const wrapper = mount( + , + ) + const executeButtons = wrapper.find('[title="Execute Query (Ctrl-Enter)"]') + const executeButtonElement = { + ...executeButtons.get(0), + props: { + onClick: jest.fn(), + }, + } + const executeButton = wrapper.wrap(executeButtonElement) + expect(executeButton.length).toBe(1) +}) + +test('test MiddleWareApp passed default headers', () => { + const wrapper = render( + , + ) + expect(wrapper).toMatchSnapshot() +}) diff --git a/packages/graphql-playground-react/src/setupEnzyme.ts b/packages/graphql-playground-react/src/setupEnzyme.ts new file mode 100644 index 000000000..738ca9667 --- /dev/null +++ b/packages/graphql-playground-react/src/setupEnzyme.ts @@ -0,0 +1,54 @@ +import { configure } from 'enzyme' +import * as EnzymeAdapter from 'enzyme-adapter-react-16' +import { JSDOM } from 'jsdom' + +configure({ adapter: new EnzymeAdapter() }) + +// TODO: Fix/document this hack +// https://github.com/jsdom/jsdom#intervening-before-parsing +const jsdom = new JSDOM('', { + beforeParse(window) { + window.focus = jest.fn() + }, +}) +const { window } = jsdom + +function copyProps(src, target) { + const props = Object.getOwnPropertyNames(src) + .filter(prop => typeof target[prop] === 'undefined') + .reduce( + (result, prop) => ({ + ...result, + [prop]: Object.getOwnPropertyDescriptor(src, prop), + }), + {}, + ) + Object.defineProperties(target, props) +} + +;(global as any).window = window as any +;(global as any).document = window.document as any +;(global as any).navigator = { + userAgent: 'node.js', +} +copyProps(window, global) + +// TODO: Fix/document this hack +;(global as any).document.createRange = () => { + return { + setEnd: () => {}, + setStart: () => {}, + getBoundingClientRect: () => { + return { + right: 0, + } + }, + getClientRects: () => { + return { + length: 0, + left: 0, + right: 0, + } + }, + } +} diff --git a/packages/graphql-playground-react/src/state/sessions/actions.ts b/packages/graphql-playground-react/src/state/sessions/actions.ts index 8a48a4052..02c64a5a0 100644 --- a/packages/graphql-playground-react/src/state/sessions/actions.ts +++ b/packages/graphql-playground-react/src/state/sessions/actions.ts @@ -63,6 +63,7 @@ export const { setCurrentQueryEndTime, refetchSchema, setScrollTop, + reorderTabs, } = createActions({ // simple property setting EDIT_QUERY: query => ({ query }), @@ -179,6 +180,7 @@ export const { SELECT_TAB: simpleAction('sessionId'), SELECT_TAB_INDEX: simpleAction('index'), CLOSE_TAB: simpleAction('sessionId'), + REORDER_TABS: (src, dest) => ({ src, dest }), // files, settings, config EDIT_SETTINGS: simpleAction(), diff --git a/packages/graphql-playground-react/src/state/sessions/fetchingSagas.ts b/packages/graphql-playground-react/src/state/sessions/fetchingSagas.ts index ab722b52a..40df8be95 100644 --- a/packages/graphql-playground-react/src/state/sessions/fetchingSagas.ts +++ b/packages/graphql-playground-react/src/state/sessions/fetchingSagas.ts @@ -137,7 +137,7 @@ function* runQuerySaga(action) { headers, credentials: settings['request.credentials'], } - console.log({ lol }) + const { link, subscriptionClient } = linkCreator(lol) yield put(setCurrentQueryStartTime(new Date())) @@ -190,7 +190,12 @@ function* runQuerySaga(action) { if (value && value.extensions) { const extensions = value.extensions yield put(setResponseExtensions(extensions)) - delete value.extensions + if ( + value.extensions.tracing && + settings['tracing.hideTracingResponse'] + ) { + delete value.extensions.tracing + } } const response = new ResponseRecord({ date: JSON.stringify(value ? value : formatError(error), null, 2), @@ -237,6 +242,11 @@ export function formatError(error, fetchingSchema: boolean = false) { function extractMessage(error) { if (error instanceof Error) { + // Errors from apollo-link-http may include a "result" object, which is a JSON response from + // the server. We should surface that to the client + if (!!error['result'] && typeof error['result'] === 'object') { + return (error as any).result + } return error.message } diff --git a/packages/graphql-playground-react/src/state/sessions/reducers.ts b/packages/graphql-playground-react/src/state/sessions/reducers.ts index 71d0c7ec0..8f39d6612 100644 --- a/packages/graphql-playground-react/src/state/sessions/reducers.ts +++ b/packages/graphql-playground-react/src/state/sessions/reducers.ts @@ -26,6 +26,7 @@ import { getSelectedSessionId } from './selectors' import { getDefaultSession, defaultQuery } from '../../constants' import * as cuid from 'cuid' import { formatError } from './fetchingSagas' +import { arrayMove } from 'react-sortable-hoc' export interface SessionStateProps { sessions: OrderedMap @@ -526,6 +527,21 @@ const reducer = handleActions( state.sessions.size - 1, ) }, + REORDER_TABS: (state, { payload: { src, dest } }) => { + const seq = state.sessions.toIndexedSeq() + + const indexes: number[] = [] + for (let i = 0; i < seq.size; i++) indexes.push(i) + const newIndexes = arrayMove(indexes, src, dest) + + let newSessions = OrderedMap() + for (let i = 0; i < seq.size; i++) { + const ndx = newIndexes[i] + const val = seq.get(ndx) + newSessions = newSessions.set(val.id, val) + } + return state.set('sessions', newSessions) + }, EDIT_SETTINGS: state => { return state.setIn( ['sessions', getSelectedSessionId(state), 'changed'], diff --git a/packages/graphql-playground-react/src/state/sessions/sagas.ts b/packages/graphql-playground-react/src/state/sessions/sagas.ts index dfb11c469..48e9f7053 100644 --- a/packages/graphql-playground-react/src/state/sessions/sagas.ts +++ b/packages/graphql-playground-react/src/state/sessions/sagas.ts @@ -191,8 +191,14 @@ function* addToHistory({ payload }) { function* prettifyQuery() { const { query } = yield select(getSelectedSession) const settings = yield select(getSettings) - const prettyQuery = prettify(query, settings['prettier.printWidth']) - yield put(editQuery(prettyQuery)) + try { + const prettyQuery = prettify(query, settings['prettier.printWidth']) + yield put(editQuery(prettyQuery)) + } catch (e) { + // TODO show erros somewhere + // tslint:disable-next-line + console.log(e) + } } export const sessionsSagas = [ diff --git a/packages/graphql-playground-react/src/state/sharing/sharingSaga.ts b/packages/graphql-playground-react/src/state/sharing/sharingSaga.ts index a8dd641e7..d603311f0 100644 --- a/packages/graphql-playground-react/src/state/sharing/sharingSaga.ts +++ b/packages/graphql-playground-react/src/state/sharing/sharingSaga.ts @@ -9,28 +9,26 @@ import { safely } from '../../utils' function* share() { const state = yield makeSharingState() const endpoint = yield select(getEndpoint) - const res = yield fetch( - 'https://api.graph.cool/simple/v1/cj81hi46q03c30196uxaswrz2', - { - method: 'post', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - query: ` + const res = yield fetch('https://api.graphqlbin.com/', { + method: 'post', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: ` mutation ($session: String! $endpoint: String!) { addSession(session: $session endpoint: $endpoint) { id } } `, - variables: { - session: JSON.stringify(state), - endpoint, - }, - }), - }, - ).then(data => data.json()) + variables: { + session: JSON.stringify(state), + endpoint, + }, + }), + }).then(data => data.json()) + const shareUrl = `https://graphqlbin.com/v2/${res.data.addSession.id}` yield put(setShareUrl(shareUrl)) } diff --git a/packages/graphql-playground-react/src/state/workspace/reducers.ts b/packages/graphql-playground-react/src/state/workspace/reducers.ts index 738d49f30..1e9700194 100644 --- a/packages/graphql-playground-react/src/state/workspace/reducers.ts +++ b/packages/graphql-playground-react/src/state/workspace/reducers.ts @@ -205,7 +205,7 @@ export function normalizeSettingsString(settingsString) { return JSON.stringify(parseSettingsString(settingsString), null, 2) } -export const getTheme = createSelector( - [getSettings], - s => s['editor.theme'] || 'dark', -) +export const getTheme = (state, customSettings) => { + const settings = customSettings || getSettings(state) + return settings['editor.theme'] || 'dark' +} diff --git a/packages/graphql-playground-react/src/styled/styled.ts b/packages/graphql-playground-react/src/styled/styled.ts index 511064208..308dfe9c2 100644 --- a/packages/graphql-playground-react/src/styled/styled.ts +++ b/packages/graphql-playground-react/src/styled/styled.ts @@ -4,19 +4,26 @@ import { ComponentClass } from 'react' // tslint:disable-line import { ThemeInterface, theme } from './theme' -const withProps = () => ( - fn: styledComponents.ThemedStyledFunction, -) => fn as styledComponents.ThemedStyledFunction

- const { default: styled, css, injectGlobal, keyframes, ThemeProvider, + withTheme, + createGlobalStyle, } = styledComponents as ThemedStyledComponentsModule -export { css, injectGlobal, keyframes, ThemeProvider, theme, withProps } +export { + css, + injectGlobal, + keyframes, + ThemeProvider, + theme, + withTheme, + createGlobalStyle, + ThemeInterface, +} export default styled export { ComponentClass } diff --git a/packages/graphql-playground-react/src/styled/theme.ts b/packages/graphql-playground-react/src/styled/theme.ts index 34a30bb99..8bd101dff 100644 --- a/packages/graphql-playground-react/src/styled/theme.ts +++ b/packages/graphql-playground-react/src/styled/theme.ts @@ -19,10 +19,18 @@ export interface Colours { white20: string white10: string white: string + black02: string + black04: string + black07: string + black10: string + black30: string black40: string + black50: string paleText: string paleGrey: string red: string + blue: string + orange: string purple: string lightGrey: string lighterGrey: string @@ -104,8 +112,16 @@ export const darkColours: Colours = { white70: 'rgba(255, 255, 255, 0.7)', white80: 'rgba(255, 255, 255, 0.8)', white: 'rgba(255, 255, 255, 1)', + black02: 'rgba(0, 0, 0, 0.02)', + black07: 'rgba(0, 0, 0, 0.07)', + black04: 'rgba(0, 0, 0, 0.04)', + black10: 'rgba(0, 0, 0, 0.1)', + black30: 'rgba(0, 0, 0, 0.3)', black40: 'rgba(0, 0, 0, 0.4)', + black50: 'rgba(0, 0, 0, 0.5)', red: '#f25c54', + orange: 'rgba(241, 143, 1, 1)', + blue: 'rgba(42, 126, 210, 1)', purple: 'rgb(164, 3, 111)', paleText: 'rgba(0, 0, 0, 0.5)', @@ -135,8 +151,16 @@ export const lightColours: Colours = { white70: 'rgba(255, 255, 255, 0.7)', white80: 'rgba(255, 255, 255, 0.8)', white: 'rgba(255, 255, 255, 1)', + black02: 'rgba(0, 0, 0, 0.02)', + black04: 'rgba(0, 0, 0, 0.04)', + black10: 'rgba(0, 0, 0, 0.1)', + black07: 'rgba(0, 0, 0, 0.07)', + black30: 'rgba(0, 0, 0, 0.3)', black40: 'rgba(0, 0, 0, 0.4)', + black50: 'rgba(0, 0, 0, 0.5)', red: '#f25c54', + orange: 'rgba(241, 143, 1, 1)', + blue: 'rgba(42, 126, 210, 1)', purple: 'rgb(164, 3, 111)', paleText: 'rgba(0, 0, 0, 0.5)', diff --git a/packages/graphql-playground-react/src/utils.ts b/packages/graphql-playground-react/src/utils.ts index 55ec76b76..f672c7e09 100644 --- a/packages/graphql-playground-react/src/utils.ts +++ b/packages/graphql-playground-react/src/utils.ts @@ -13,14 +13,9 @@ export function safely(cb: any) { } export function prettify(query: string, printWidth: number) { - try { - return prettier.format(query, { - parser: 'graphql', - printWidth, - plugins: [graphql], - }) - } catch (e) { - //TODO show erros somewhere - console.log(e) - } + return prettier.format(query, { + parser: 'graphql', + printWidth, + plugins: [graphql], + }) } diff --git a/packages/graphql-playground-react/tsconfig.build.json b/packages/graphql-playground-react/tsconfig.build.json index 847e0417a..160ef0127 100644 --- a/packages/graphql-playground-react/tsconfig.build.json +++ b/packages/graphql-playground-react/tsconfig.build.json @@ -11,6 +11,7 @@ "noImplicitThis": true, "noImplicitAny": false, "strictNullChecks": true, + "skipLibCheck": true, "suppressImplicitAnyIndexErrors": true, "noUnusedLocals": false, "declaration": true diff --git a/packages/graphql-playground-react/tsconfig.jest.json b/packages/graphql-playground-react/tsconfig.jest.json new file mode 100644 index 000000000..4993bd3af --- /dev/null +++ b/packages/graphql-playground-react/tsconfig.jest.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "jsx": "react" + } +} diff --git a/packages/graphql-playground-react/tslint.json b/packages/graphql-playground-react/tslint.json index 02a51b6ab..2978f302f 100644 --- a/packages/graphql-playground-react/tslint.json +++ b/packages/graphql-playground-react/tslint.json @@ -1,10 +1,13 @@ { - "extends": [ - "tslint-graphcool-frontend" - ], + "extends": ["tslint-graphcool-frontend"], "rules": { "forin": false, "no-submodule-imports": false, - "prefer-conditional-expression": false + "prefer-conditional-expression": false, + "no-implicit-dependencies": false, + "no-empty": false, + "no-shadowed-variable": false, + "prefer-for-of": false, + "no-string-literal": false } } diff --git a/packages/graphql-playground-react/yarn.lock b/packages/graphql-playground-react/yarn.lock index 1acc975f3..4e03bb8a7 100644 --- a/packages/graphql-playground-react/yarn.lock +++ b/packages/graphql-playground-react/yarn.lock @@ -10,20 +10,34 @@ esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/helper-annotate-as-pure@^7.0.0-beta.37": - version "7.0.0-beta.38" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.38.tgz#888cf28a1b9094d670dbdb1be1ec550b40c2dd9c" +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" dependencies: - "@babel/types" "7.0.0-beta.38" + "@babel/types" "^7.0.0" -"@babel/types@7.0.0-beta.38": - version "7.0.0-beta.38" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.38.tgz#2ce2443f7dc6ad535a67db4940cbd34e64035a6f" +"@babel/types@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" dependencies: esutils "^2.0.2" - lodash "^4.2.0" + lodash "^4.17.10" to-fast-properties "^2.0.0" +"@emmetio/extract-abbreviation@0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.1.6.tgz#e4a9856c1057f0aff7d443b8536477c243abe28c" + +"@emotion/is-prop-valid@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz#68ad02831da41213a2089d2cab4e8ac8b30cbd85" + dependencies: + "@emotion/memoize" "^0.6.6" + +"@emotion/memoize@^0.6.6": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz#004b98298d04c7ca3b4f50ca2035d4f60d2eed1b" + "@types/deasync@0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@types/deasync/-/deasync-0.1.0.tgz#b2bd6c3fcde3cf67b8be4c2f70136ba8f157b45a" @@ -200,10 +214,6 @@ any-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" -any-promise@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" - anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -415,18 +425,7 @@ atob@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" -autoprefixer@7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.5.tgz#04ccbd0c6a61131b6d13f53d371926092952d192" - dependencies: - browserslist "^2.11.1" - caniuse-lite "^1.0.30000791" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.16" - postcss-value-parser "^3.2.3" - -autoprefixer@^6.0.2, autoprefixer@^6.3.1: +autoprefixer@^6.3.1: version "6.7.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" dependencies: @@ -462,7 +461,7 @@ axios@^0.17.0: follow-redirects "^1.2.5" is-buffer "^1.1.5" -babel-cli@6.26.0, babel-cli@^6.9.0: +babel-cli@6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" dependencies: @@ -483,7 +482,7 @@ babel-cli@6.26.0, babel-cli@^6.9.0: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@6.26.0, babel-code-frame@^6.20.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -515,7 +514,7 @@ babel-core@6.26.3: slash "^1.0.0" source-map "^0.5.7" -babel-core@^6.0.0, babel-core@^6.26.0, babel-core@^6.9.1: +babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: @@ -676,31 +675,18 @@ babel-loader@7.1.4: loader-utils "^1.0.2" mkdirp "^0.5.1" -babel-messages@^6.23.0, babel-messages@^6.8.0: +babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" -babel-plugin-add-module-exports@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" - babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: babel-runtime "^6.22.0" -babel-plugin-istanbul@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-2.0.3.tgz#266b304b9109607d60748474394676982f660df4" - dependencies: - find-up "^1.1.2" - istanbul-lib-instrument "^1.1.4" - object-assign "^4.1.0" - test-exclude "^2.1.1" - babel-plugin-istanbul@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" @@ -713,17 +699,12 @@ babel-plugin-jest-hoist@^22.1.0: version "22.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.1.0.tgz#c1281dd7887d77a1711dc760468c3b8285dde9ee" -babel-plugin-precompile-charcodes@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-precompile-charcodes/-/babel-plugin-precompile-charcodes-1.1.0.tgz#8ac6bacb196c001146296467700df3e8e6079714" - -babel-plugin-styled-components@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.5.1.tgz#31dbeb696d1354d1585e60d66c7905f5e474afcd" +"babel-plugin-styled-components@>= 1", babel-plugin-styled-components@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.8.0.tgz#9dd054c8e86825203449a852a5746f29f2dab857" dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0-beta.37" - babel-types "^6.26.0" - stylis "^3.0.0" + "@babel/helper-annotate-as-pure" "^7.0.0" + lodash "^4.17.10" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" @@ -741,7 +722,7 @@ babel-plugin-syntax-flow@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" -babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -1008,7 +989,7 @@ babel-polyfill@^6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-es2015@6.24.1, babel-preset-es2015@^6.9.0: +babel-preset-es2015@6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" dependencies: @@ -1077,7 +1058,7 @@ babel-preset-stage-3@6.24.1: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-plugin-transform-object-rest-spread "^6.22.0" -babel-register@^6.11.6, babel-register@^6.26.0: +babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: @@ -1089,7 +1070,7 @@ babel-register@^6.11.6, babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -1106,21 +1087,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad" - dependencies: - babel-code-frame "^6.20.0" - babel-messages "^6.8.0" - babel-runtime "^6.20.0" - babel-types "^6.21.0" - babylon "^6.11.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-traverse@^6.18.0, babel-traverse@^6.21.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -1134,7 +1101,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.21.0, babel-traverse@^6.24.1, babel-tr invariant "^2.2.2" lodash "^4.17.4" -babel-types@6.26.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.21.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1143,11 +1110,7 @@ babel-types@6.26.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.21. lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@6.14.1: - version "6.14.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" - -babylon@^6.11.0, babylon@^6.14.1, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1155,15 +1118,7 @@ backo2@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" -balanced-match@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" - -balanced-match@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.2.1.tgz#7bc658b4bed61eee424ad74f75f5c3e2c4df3cc7" - -balanced-match@^0.4.1, balanced-match@^0.4.2: +balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -1213,10 +1168,6 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -bindings@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" - bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -1286,6 +1237,12 @@ boom@5.x.x: dependencies: hoek "4.x.x" +boom@7.x.x: + version "7.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-7.2.0.tgz#2bff24a55565767fde869ec808317eb10c48e966" + dependencies: + hoek "5.x.x" + boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -1406,20 +1363,13 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^1.0.0, browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.11.1: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" - dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" - bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -1457,13 +1407,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.3: - version "5.1.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz#c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1543,7 +1486,7 @@ camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-api@^1.5.2, caniuse-api@^1.5.3: +caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" dependencies: @@ -1556,10 +1499,6 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000791" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000791.tgz#06787f56caef4300a17e35d137447123bdf536f9" -caniuse-lite@^1.0.30000791, caniuse-lite@^1.0.30000792: - version "1.0.30000792" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz#d0cea981f8118f3961471afbb43c9a1e5bbf0332" - capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" @@ -1621,6 +1560,17 @@ check-types@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1792,10 +1742,6 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - color-convert@^1.3.0, color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" @@ -1812,14 +1758,7 @@ color-string@^0.3.0: dependencies: color-name "^1.0.0" -color@^0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/color/-/color-0.10.1.tgz#c04188df82a209ddebccecdacd3ec320f193739f" - dependencies: - color-convert "^0.5.3" - color-string "^0.3.0" - -color@^0.11.0, color@^0.11.3, color@^0.11.4: +color@^0.11.0: version "0.11.4" resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" dependencies: @@ -1835,6 +1774,10 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1928,11 +1871,7 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" - -convert-source-map@1.5.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" @@ -1970,18 +1909,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" - cosmiconfig@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" @@ -2024,7 +1951,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.1, create-react-class@^15.5.2: +create-react-class@^15.5.1: version "15.6.2" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" dependencies: @@ -2069,6 +1996,12 @@ cryptiles@3.x.x: dependencies: boom "5.x.x" +cryptiles@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.2.tgz#363c9ab5c859da9d2d6fb901b64d980966181184" + dependencies: + boom "7.x.x" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2089,15 +2022,6 @@ crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" -css-color-function@^1.2.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.3.tgz#8ed24c2c0205073339fafa004bc8c141fccb282e" - dependencies: - balanced-match "0.1.0" - color "^0.11.0" - debug "^3.1.0" - rgb "~0.1.0" - css-color-keywords@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" @@ -2125,18 +2049,7 @@ css-loader@0.28.11: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-select@^1.1.0: +css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" dependencies: @@ -2153,9 +2066,9 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" -css-to-react-native@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.2.0.tgz#d524ef7f39a2747a8914e86563669ba35b7cf2e7" +css-to-react-native@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.2.2.tgz#c077d0f7bf3e6c915a539e7325821c9dd01f9965" dependencies: css-color-keywords "^1.0.0" fbjs "^0.8.5" @@ -2261,13 +2174,6 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -deasync@^0.1.9: - version "0.1.12" - resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.12.tgz#0159492a4133ab301d6c778cf01e74e63b10e549" - dependencies: - bindings "~1.2.1" - nan "^2.0.7" - debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2425,6 +2331,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2459,7 +2369,7 @@ dom-converter@~0.1: version "3.3.1" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6" -dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -2476,7 +2386,7 @@ domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" -domelementtype@1: +domelementtype@1, domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -2494,6 +2404,12 @@ domhandler@2.1: dependencies: domelementtype "1" +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + dependencies: + domelementtype "1" + domutils@1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" @@ -2507,6 +2423,13 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + dependencies: + dom-serializer "0" + domelementtype "1" + dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -2549,18 +2472,10 @@ electron-to-chromium@^1.2.7: dependencies: electron-releases "^2.1.0" -electron-to-chromium@^1.3.30: - version "1.3.31" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz#00d832cba9fe2358652b0c48a8816c8e3a037e9f" - elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" -element-class@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/element-class/-/element-class-0.2.2.tgz#9d3bbd0767f9013ef8e1c8ebe722c1402a60050e" - elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -2602,10 +2517,57 @@ enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" -entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" +enzyme-adapter-react-16@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.1.1.tgz#a8f4278b47e082fbca14f5bfb1ee50ee650717b4" + dependencies: + enzyme-adapter-utils "^1.3.0" + lodash "^4.17.4" + object.assign "^4.0.4" + object.values "^1.0.4" + prop-types "^15.6.0" + react-reconciler "^0.7.0" + react-test-renderer "^16.0.0-0" + +enzyme-adapter-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.3.0.tgz#d6c85756826c257a8544d362cc7a67e97ea698c7" + dependencies: + lodash "^4.17.4" + object.assign "^4.0.4" + prop-types "^15.6.0" + +enzyme-to-json@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.4.tgz#67c6040e931182f183418af2eb9f4323258aa77f" + dependencies: + lodash "^4.17.4" + +enzyme@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.3.0.tgz#0971abd167f2d4bf3f5bd508229e1c4b6dc50479" + dependencies: + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.0.3" + has "^1.0.1" + is-boolean-object "^1.0.0" + is-callable "^1.1.3" + is-number-object "^1.0.3" + is-string "^1.0.4" + is-subset "^0.1.1" + lodash "^4.17.4" + object-inspect "^1.5.0" + object-is "^1.0.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.4.0" + rst-selector-parser "^2.2.3" + errno@^0.1.3: version "0.1.6" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" @@ -2817,10 +2779,6 @@ execa@^0.8.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -exenv@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89" - exenv@^1.2.0, exenv@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" @@ -2878,7 +2836,7 @@ expect@^22.1.0: jest-message-util "^22.1.0" jest-regex-util "^22.1.0" -express@^4.13.3, express@^4.16.2: +express@^4.16.2: version "4.16.2" resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" dependencies: @@ -3106,7 +3064,7 @@ find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" -find-up@^1.0.0, find-up@^1.1.2: +find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" dependencies: @@ -3241,6 +3199,14 @@ function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" +function.prototype.name@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + is-callable "^1.1.3" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -3254,12 +3220,6 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -generic-names@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" - dependencies: - loader-utils "^0.2.16" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3351,7 +3311,7 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^9.0.0, globals@^9.18.0: +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -3385,41 +3345,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -graphcool-styles@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/graphcool-styles/-/graphcool-styles-0.2.7.tgz#60e0a561d45012c17617ecd0453486a1833af96c" - dependencies: - html-webpack-plugin "^2.24.1" - interactive "^0.1.9" - isomorphic-fetch "^2.2.1" - object-assign "^4.1.0" - webpack-dev-server "^1.16.2" - -graphcool-styles@^0.1.31: - version "0.1.43" - resolved "https://registry.yarnpkg.com/graphcool-styles/-/graphcool-styles-0.1.43.tgz#da6b72118c890923ef5c4a964405aa3e4541dc82" - dependencies: - html-webpack-plugin "^2.24.1" - interactive "^0.1.9" - object-assign "^4.1.0" - react-dom "^15.3.2" - webpack-dev-server "^1.16.2" - -graphcool-tmp-ui@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/graphcool-tmp-ui/-/graphcool-tmp-ui-0.0.11.tgz#86cfaf0754394419642cc2542a2b5f8a48245659" - dependencies: - classnames "^2.2.5" - graphcool-styles "^0.1.31" - react-modal "^1.6.5" - -graphcool-ui@0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/graphcool-ui/-/graphcool-ui-0.0.14.tgz#f3c83f4fef2c862ee899618cb6654af2c8f638b6" - dependencies: - classnames "^2.2.5" - react-modal "^1.6.5" - graphiql@^0.11.2: version "0.11.11" resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-0.11.11.tgz#eeaf9a38927dbe8c6ecbf81e700735e16ec50e71" @@ -3589,6 +3514,10 @@ has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3694,6 +3623,10 @@ hoek@4.x.x: version "4.2.0" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" +hoek@5.x.x: + version "5.0.4" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da" + hoist-non-react-statics@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" @@ -3755,7 +3688,7 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.3.x" -html-webpack-plugin@2.30.1, html-webpack-plugin@^2.24.1: +html-webpack-plugin@2.30.1: version "2.30.1" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" dependencies: @@ -3766,6 +3699,17 @@ html-webpack-plugin@2.30.1, html-webpack-plugin@^2.24.1: pretty-error "^2.0.2" toposort "^1.0.0" +htmlparser2@^3.9.1: + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + htmlparser2@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" @@ -3801,7 +3745,7 @@ http-parser-js@>=0.4.0: version "0.4.9" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" -http-proxy-middleware@0.17.4, http-proxy-middleware@~0.17.1, http-proxy-middleware@~0.17.4: +http-proxy-middleware@0.17.4, http-proxy-middleware@~0.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" dependencies: @@ -3855,7 +3799,7 @@ iconv-lite@~0.4.13: dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: +icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" @@ -3878,7 +3822,7 @@ iltorb@^1.0.9: node-gyp "^3.6.2" prebuild-install "^2.3.0" -immutable@4.0.0-rc.9: +immutable@^4.0.0-rc.9: version "4.0.0-rc.9" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0-rc.9.tgz#1e6e0094e649013ec3742d2b5aeeca5eeda4f0bf" @@ -3953,10 +3897,6 @@ inquirer@3.3.0: strip-ansi "^4.0.0" through "^2.3.6" -interactive@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/interactive/-/interactive-0.1.9.tgz#6dd3e2f9a00341863bc7dd84afce9d191b6f9e8e" - internal-ip@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" @@ -3973,7 +3913,7 @@ invariant@^2.0.0, invariant@^2.2.1: dependencies: loose-envify "^1.0.0" -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: @@ -4017,6 +3957,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-boolean-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -4150,6 +4094,10 @@ is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" +is-number-object@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -4242,6 +4190,14 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-string@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -4280,10 +4236,6 @@ isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" -isnumeric@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/isnumeric/-/isnumeric-0.2.0.tgz#a2347ba360de19e33d0ffd590fddf7755cbf2e64" - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -4331,7 +4283,7 @@ istanbul-lib-hook@^1.1.0: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.1.4, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1: +istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0, istanbul-lib-instrument@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" dependencies: @@ -4507,6 +4459,10 @@ jest-leak-detector@^22.1.0: dependencies: pretty-format "^22.1.0" +jest-localstorage-mock@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jest-localstorage-mock/-/jest-localstorage-mock-2.2.0.tgz#ce9a9de01dfdde2ad8aa08adf73acc7e5cc394cf" + jest-matcher-utils@^22.1.0: version "22.1.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.1.0.tgz#e164665b5d313636ac29f7f6fe9ef0a6ce04febc" @@ -4654,7 +4610,7 @@ js-yaml@^3.10.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0: +js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: @@ -4743,6 +4699,10 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +jsonc-parser@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -5020,6 +4980,10 @@ lodash.filter@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -5056,7 +5020,7 @@ lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" -lodash.template@^4.2.4, lodash.template@^4.4.0: +lodash.template@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: @@ -5081,10 +5045,14 @@ lodash.uniq@^4.5.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@^4.13.1, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0: +lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.17.5: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@^4.17.10, lodash@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -5219,6 +5187,10 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +memoize-one@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.2.tgz#3fb8db695aa14ab9c0f1644e1585a8806adc1aee" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -5406,7 +5378,7 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.0.7, nan@^2.3.0: +nan@^2.3.0: version "2.8.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" @@ -5440,6 +5412,15 @@ ncname@1.0.x: dependencies: xml-char-classes "^1.0.0" +nearley@^2.7.10: + version "2.13.0" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.13.0.tgz#6e7b0f4e68bfc3e74c99eaef2eda39e513143439" + dependencies: + nomnom "~1.6.2" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + semver "^5.4.1" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -5553,6 +5534,13 @@ node-pre-gyp@^0.6.39: tar "^2.2.1" tar-pack "^3.4.0" +nomnom@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" @@ -5665,6 +5653,18 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-inspect@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + +object-keys@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -5675,7 +5675,16 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.entries@1.0.4: +object.assign@^4.0.4, object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" dependencies: @@ -5704,6 +5713,15 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + obuf@^1.0.0, obuf@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" @@ -5724,10 +5742,6 @@ once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" -onecolor@~2.4.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-2.4.2.tgz#a53ec3ff171c3446016dd5210d1a1b544bf7d874" - onetime@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" @@ -5738,10 +5752,6 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -open@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc" - opener@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" @@ -5758,7 +5768,7 @@ opn@^5.1.0: dependencies: is-wsl "^1.1.0" -optimist@^0.6.1, optimist@~0.6.1: +optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: @@ -5918,7 +5928,7 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parse5@^3.0.2: +parse5@^3.0.1, parse5@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" dependencies: @@ -6014,7 +6024,7 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6032,27 +6042,12 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pixrem@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-3.0.2.tgz#30d1bafb4c3bdce8e9bb4bd56a13985619320c34" - dependencies: - browserslist "^1.0.0" - postcss "^5.0.0" - reduce-css-calc "^1.2.7" - pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" -pleeease-filters@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-3.0.1.tgz#4dfe0e8f1046613517c64b728bc80608a7ebf22f" - dependencies: - onecolor "~2.4.0" - postcss "^5.0.4" - pn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -6069,21 +6064,7 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -postcss-apply@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.3.0.tgz#a2f37c5bdfa881e4c15f4f245ec0cd96dd2e70d5" - dependencies: - balanced-match "^0.4.1" - postcss "^5.0.21" - -postcss-attribute-case-insensitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz#ceb73777e106167eb233f1938c9bd9f2e697308d" - dependencies: - postcss "^5.1.1" - postcss-selector-parser "^2.2.0" - -postcss-calc@^5.0.0, postcss-calc@^5.2.0: +postcss-calc@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" dependencies: @@ -6091,71 +6072,6 @@ postcss-calc@^5.0.0, postcss-calc@^5.2.0: postcss-message-helpers "^2.0.0" reduce-css-calc "^1.2.6" -postcss-color-function@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-2.0.1.tgz#9ad226f550e8a7c7f8b8a77860545b6dd7f55241" - dependencies: - css-color-function "^1.2.0" - postcss "^5.0.4" - postcss-message-helpers "^2.0.0" - postcss-value-parser "^3.3.0" - -postcss-color-gray@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-3.0.1.tgz#74432ede66dd83b1d1363565c68b376e18ff6770" - dependencies: - color "^0.11.3" - postcss "^5.0.4" - postcss-message-helpers "^2.0.0" - reduce-function-call "^1.0.1" - -postcss-color-hex-alpha@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz#44fd6ecade66028648c881cb6504cdcbfdc6cd09" - dependencies: - color "^0.10.1" - postcss "^5.0.4" - postcss-message-helpers "^2.0.0" - -postcss-color-hsl@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-color-hsl/-/postcss-color-hsl-1.0.5.tgz#f53bb1c348310ce307ad89e3181a864738b5e687" - dependencies: - postcss "^5.2.0" - postcss-value-parser "^3.3.0" - units-css "^0.4.0" - -postcss-color-hwb@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-hwb/-/postcss-color-hwb-2.0.1.tgz#d63afaf9b70cb595f900a29c9fe57bf2a32fabec" - dependencies: - color "^0.11.4" - postcss "^5.0.4" - postcss-message-helpers "^2.0.0" - reduce-function-call "^1.0.1" - -postcss-color-rebeccapurple@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.1.tgz#74c6444e7cbb7d85613b5f7286df7a491608451c" - dependencies: - color "^0.11.4" - postcss "^5.0.4" - -postcss-color-rgb@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-1.1.4.tgz#f29243e22e8e8c13434474092372d4ce605be8bc" - dependencies: - postcss "^5.2.0" - postcss-value-parser "^3.3.0" - -postcss-color-rgba-fallback@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz#6d29491be5990a93173d47e7c76f5810b09402ba" - dependencies: - postcss "^5.0.0" - postcss-value-parser "^3.0.2" - rgb-hex "^1.0.0" - postcss-colormin@^2.1.8: version "2.2.2" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" @@ -6171,63 +6087,6 @@ postcss-convert-values@^2.3.4: postcss "^5.0.11" postcss-value-parser "^3.1.2" -postcss-cssnext@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/postcss-cssnext/-/postcss-cssnext-2.11.0.tgz#31e68f001e409604da703b66de14b8b8c8c9f2b1" - dependencies: - autoprefixer "^6.0.2" - caniuse-api "^1.5.3" - chalk "^1.1.1" - pixrem "^3.0.0" - pleeease-filters "^3.0.0" - postcss "^5.0.4" - postcss-apply "^0.3.0" - postcss-attribute-case-insensitive "^1.0.1" - postcss-calc "^5.0.0" - postcss-color-function "^2.0.0" - postcss-color-gray "^3.0.0" - postcss-color-hex-alpha "^2.0.0" - postcss-color-hsl "^1.0.5" - postcss-color-hwb "^2.0.0" - postcss-color-rebeccapurple "^2.0.0" - postcss-color-rgb "^1.1.4" - postcss-color-rgba-fallback "^2.0.0" - postcss-custom-media "^5.0.0" - postcss-custom-properties "^5.0.0" - postcss-custom-selectors "^3.0.0" - postcss-font-family-system-ui "^1.0.1" - postcss-font-variant "^2.0.0" - postcss-image-set-polyfill "^0.3.3" - postcss-initial "^1.3.1" - postcss-media-minmax "^2.1.0" - postcss-nesting "^2.0.5" - postcss-pseudo-class-any-link "^1.0.0" - postcss-pseudoelements "^3.0.0" - postcss-replace-overflow-wrap "^1.0.0" - postcss-selector-matches "^2.0.0" - postcss-selector-not "^2.0.0" - -postcss-custom-media@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz#138d25a184bf2eb54de12d55a6c01c30a9d8bd81" - dependencies: - postcss "^5.0.0" - -postcss-custom-properties@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz#9719d78f2da9cf9f53810aebc23d4656130aceb1" - dependencies: - balanced-match "^0.4.2" - postcss "^5.0.0" - -postcss-custom-selectors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz#8f81249f5ed07a8d0917cf6a39fe5b056b7f96ac" - dependencies: - balanced-match "^0.2.0" - postcss "^5.0.0" - postcss-selector-matches "^2.0.0" - postcss-discard-comments@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" @@ -6266,122 +6125,6 @@ postcss-filter-plugins@^2.0.0: postcss "^5.0.4" uniqid "^4.0.0" -postcss-flexbugs-fixes@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" - dependencies: - postcss "^6.0.1" - -postcss-font-family-system-ui@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-1.0.2.tgz#3e1a5e3fb7e31e5e9e71439ccb0e8014556927c7" - dependencies: - lodash "^4.17.4" - postcss "^5.2.12" - postcss-value-parser "^3.3.0" - -postcss-font-variant@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-2.0.1.tgz#7ca29103f59fa02ca3ace2ca22b2f756853d4ef8" - dependencies: - postcss "^5.0.4" - -postcss-image-set-polyfill@^0.3.3: - version "0.3.5" - resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181" - dependencies: - postcss "^6.0.1" - postcss-media-query-parser "^0.2.3" - -postcss-import@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-9.1.0.tgz#95fe9876a1e79af49fbdc3589f01fe5aa7cc1e80" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - promise-each "^2.2.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-inherit-parser@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/postcss-inherit-parser/-/postcss-inherit-parser-0.1.4.tgz#fd8685e1042609b75691ecd75678ca29217c6e11" - dependencies: - babel-cli "^6.9.0" - babel-core "^6.9.1" - babel-plugin-add-module-exports "^0.2.1" - babel-plugin-istanbul "^2.0.0" - babel-plugin-precompile-charcodes "^1.0.0" - babel-preset-es2015 "^6.9.0" - babel-register "^6.11.6" - debug "^2.2.0" - postcss "^5.0.10" - -postcss-inherit@timsuchanek/postcss-inherit#build3: - version "4.0.2" - resolved "https://codeload.github.com/timsuchanek/postcss-inherit/tar.gz/1382250ae64c5938cc47d749049dc17ac6f52c9b" - dependencies: - debug "^2.2.0" - postcss "^5.0.10" - postcss-inherit-parser "^0.1.3" - -postcss-initial@^1.3.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-1.5.3.tgz#20c3e91c96822ddb1bed49508db96d56bac377d0" - dependencies: - lodash.template "^4.2.4" - postcss "^5.0.19" - -postcss-inject@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-inject/-/postcss-inject-1.0.1.tgz#b981f15647ae666cb479400948bc825b1b1845d7" - dependencies: - object-assign "^4.1.0" - postcss "^5.0.21" - -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" - -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" - dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - -postcss-load-plugins@^2.2.0, postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.5.tgz#3c6336ee641c8f95138172533ae461a83595e788" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.4.0" - -postcss-media-minmax@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz#444c5cf8926ab5e4fd8a2509e9297e751649cdf8" - dependencies: - postcss "^5.0.4" - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - postcss-merge-idents@^2.1.5: version "2.1.7" resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" @@ -6443,60 +6186,33 @@ postcss-minify-selectors@^2.0.4: postcss "^5.0.14" postcss-selector-parser "^2.0.0" -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - dependencies: - postcss "^6.0.1" - postcss-modules-extract-imports@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@1.2.0, postcss-modules-local-by-default@^1.2.0: +postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@1.1.0, postcss-modules-scope@^1.1.0: +postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@1.3.0, postcss-modules-values@^1.3.0: +postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-modules@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-1.1.0.tgz#c9f94f76ff6addf7c35b842e69ed442118156bb0" - dependencies: - css-modules-loader-core "^1.1.0" - generic-names "^1.0.2" - postcss "^6.0.1" - string-hash "^1.1.1" - -postcss-nested@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-1.0.1.tgz#91f28f4e6e23d567241ac154558a0cfab4cc0d8f" - dependencies: - postcss "^5.2.17" - -postcss-nesting@^2.0.5: - version "2.3.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-2.3.1.tgz#94a6b6a4ef707fbec20a87fee5c957759b4e01cf" - dependencies: - postcss "^5.0.19" - postcss-normalize-charset@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" @@ -6519,19 +6235,6 @@ postcss-ordered-values@^2.1.0: postcss "^5.0.4" postcss-value-parser "^3.0.1" -postcss-pseudo-class-any-link@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz#903239196401d335fe73ac756186fa62e693af26" - dependencies: - postcss "^5.0.3" - postcss-selector-parser "^1.1.4" - -postcss-pseudoelements@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz#6c682177c7900ba053b6df17f8c590284c7b8bbc" - dependencies: - postcss "^5.0.4" - postcss-reduce-idents@^2.2.2: version "2.4.0" resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" @@ -6553,35 +6256,7 @@ postcss-reduce-transforms@^1.0.3: postcss "^5.0.8" postcss-value-parser "^3.0.1" -postcss-replace-overflow-wrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz#f0a03b31eab9636a6936bfd210e2aef1b434a643" - dependencies: - postcss "^5.0.16" - -postcss-selector-matches@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz#fa0f43be57b68e77aa4cd11807023492a131027f" - dependencies: - balanced-match "^0.4.2" - postcss "^5.0.0" - -postcss-selector-not@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz#c73ad21a3f75234bee7fee269e154fd6a869798d" - dependencies: - balanced-match "^0.2.0" - postcss "^5.0.0" - -postcss-selector-parser@^1.1.4: - version "1.3.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.0, postcss-selector-parser@^2.2.2: +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: @@ -6589,12 +6264,6 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.0, postcss-selector indexes-of "^1.0.1" uniq "^1.0.1" -postcss-simple-vars@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-3.1.0.tgz#62c0657214ef1f43a3c5893ade89de414f31b6ff" - dependencies: - postcss "^5.2.16" - postcss-svgo@^2.1.1: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" @@ -6624,15 +6293,7 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.21, postcss@^5.0.3, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.1.1, postcss@^5.2.0, postcss@^5.2.12, postcss@^5.2.16, postcss@^5.2.17, postcss@^5.2.8: +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" dependencies: @@ -6641,7 +6302,7 @@ postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0. source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.16: +postcss@^6.0.1: version "6.0.16" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.16.tgz#112e2fe2a6d2109be0957687243170ea5589e146" dependencies: @@ -6732,12 +6393,6 @@ process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" -promise-each@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60" - dependencies: - any-promise "^0.1.0" - promise@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" @@ -6759,10 +6414,9 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, object-assign "^4.1.1" prop-types@^15.5.7: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: - fbjs "^0.8.16" loose-envify "^1.3.1" object-assign "^4.1.1" @@ -6860,6 +6514,23 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" +raf@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" + dependencies: + performance-now "^2.1.0" + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -6958,19 +6629,6 @@ react-display-name@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/react-display-name/-/react-display-name-0.2.4.tgz#e2a670b81d79a2204335510c01246f4c92ff12cf" -react-dom-factories@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.2.tgz#eb7705c4db36fb501b3aa38ff759616aa0ff96e0" - -react-dom@^15.3.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" - react-dom@^16.3.1: version "16.4.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.0.tgz#099f067dd5827ce36a29eaf9a6cdc7cbf6216b1e" @@ -7003,21 +6661,14 @@ react-is@^16.3.1: version "16.4.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.0.tgz#cc9fdc855ac34d2e7d9d2eb7059bbc240d35ffcf" +react-is@^16.4.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.1.tgz#d624c4650d2c65dbd52c72622bbf389435d9776e" + react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" -react-modal@^1.6.5: - version "1.9.7" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-1.9.7.tgz#07ef56790b953e3b98ef1e2989e347983c72871d" - dependencies: - create-react-class "^15.5.2" - element-class "^0.2.0" - exenv "1.2.0" - lodash.assign "^4.2.0" - prop-types "^15.5.7" - react-dom-factories "^1.0.0" - react-modal@^3.1.11: version "3.4.4" resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.4.4.tgz#e9dde25e9e85a59c76831f2a2b468712a546aded" @@ -7027,6 +6678,15 @@ react-modal@^3.1.11: react-lifecycles-compat "^3.0.0" warning "^3.0.0" +react-reconciler@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.7.0.tgz#9614894103e5f138deeeb5eabaf3ee80eb1d026d" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" + react-redux@^5.0.6: version "5.0.7" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" @@ -7068,6 +6728,23 @@ react-side-effect@^1.1.0: exenv "^1.2.1" shallowequal "^1.0.1" +react-sortable-hoc@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-0.8.3.tgz#8537e8ab8d6bad6829885755a0f847817ed78648" + dependencies: + babel-runtime "^6.11.6" + invariant "^2.2.1" + prop-types "^15.5.7" + +react-test-renderer@^16.0.0-0: + version "16.4.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.4.1.tgz#f2fb30c2c7b517db6e5b10ed20bb6b0a7ccd8d70" + dependencies: + fbjs "^0.8.16" + object-assign "^4.1.1" + prop-types "^15.6.0" + react-is "^16.4.1" + react-transition-group@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.3.1.tgz#31d611b33e143a5e0f2d94c348e026a0f3b474b6" @@ -7096,12 +6773,6 @@ react@^16.3.1: object-assign "^4.1.1" prop-types "^15.6.0" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - dependencies: - pify "^2.3.0" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -7214,7 +6885,7 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: +reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" dependencies: @@ -7447,10 +7118,6 @@ require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" - require-from-string@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.1.tgz#c545233e9d7da6616e9d59adfb39fc9f588676ff" @@ -7496,7 +7163,7 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.7, resolve@^1.3.2: +resolve@^1.3.2: version "1.5.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" dependencies: @@ -7516,13 +7183,9 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -rgb-hex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-1.0.0.tgz#bfaf8cd9cd9164b5a26d71eb4f15a0965324b3c1" - -rgb@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" right-align@^0.1.1: version "0.1.3" @@ -7543,6 +7206,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -7601,13 +7271,6 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" -schema-utils@^0.4.0, schema-utils@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e" @@ -7615,6 +7278,13 @@ schema-utils@^0.4.3: ajv "^5.0.0" ajv-keywords "^2.1.0" +schema-utils@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + seamless-immutable@^7.0.1: version "7.1.3" resolved "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.3.tgz#d32a8a202a331dffa69e4069a367a2159252490e" @@ -7835,7 +7505,7 @@ sntp@2.x.x: dependencies: hoek "4.x.x" -sockjs-client@1.1.4, sockjs-client@^1.0.3: +sockjs-client@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" dependencies: @@ -7846,7 +7516,7 @@ sockjs-client@1.1.4, sockjs-client@^1.0.3: json3 "^3.3.2" url-parse "^1.1.8" -sockjs@0.3.19, sockjs@^0.3.15: +sockjs@0.3.19: version "0.3.19" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" dependencies: @@ -7897,24 +7567,20 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -8010,10 +7676,6 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-cache@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" - stream-http@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" @@ -8034,14 +7696,6 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-hash@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.1.tgz#8e85bed291e0763b8f6809d9c3368fea048db3dc" - -string-hash@1.1.3, string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -8139,73 +7793,23 @@ style-loader@0.20.1: loader-utils "^1.1.0" schema-utils "^0.4.3" -styled-components@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-3.3.2.tgz#087b96830ee3d60d9a8b5ef17c132b4f29cc71df" +styled-components@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.0.0.tgz#bd37d79408246302051cd63f52a3539f70aa3197" dependencies: - buffer "^5.0.3" - css-to-react-native "^2.0.3" - fbjs "^0.8.16" - hoist-non-react-statics "^2.5.0" - is-plain-object "^2.0.1" + "@emotion/is-prop-valid" "^0.6.8" + babel-plugin-styled-components ">= 1" + css-to-react-native "^2.2.2" + memoize-one "^4.0.0" prop-types "^15.5.4" react-is "^16.3.1" stylis "^3.5.0" stylis-rule-sheet "^0.0.10" - supports-color "^3.2.3" - -styled-jsx-postcss@timsuchanek/styled-jsx-postcss#build3: - version "0.2.0" - resolved "https://codeload.github.com/timsuchanek/styled-jsx-postcss/tar.gz/677ee0fb7f9138047a00e03c8c3e44adbb33cf2a" - dependencies: - babel-traverse "^6.21.0" - babylon "^6.14.1" - deasync "^0.1.9" - postcss "^5.2.8" - postcss-load-plugins "^2.2.0" - styled-jsx "^0.5.7" - -styled-jsx@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-0.5.7.tgz#2cb02263ffa719b1435a864fdd6c62802ae86669" - dependencies: - babel-plugin-syntax-jsx "6.18.0" - babel-traverse "6.21.0" - babylon "6.14.1" - convert-source-map "1.3.0" - escape-string-regexp "1.0.5" - object.entries "1.0.4" - source-map "0.5.6" - string-hash "1.1.1" - -styled-jsx@^2.2.1: - version "2.2.6" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-2.2.6.tgz#7e826279e1ef718213ef9cc42ac7370b5008449d" - dependencies: - babel-plugin-syntax-jsx "6.18.0" - babel-types "6.26.0" - convert-source-map "1.5.1" - source-map "0.6.1" - string-hash "1.1.3" - stylis "3.4.10" - stylis-rule-sheet "0.0.8" - -stylis-rule-sheet@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.8.tgz#b0d0a126c945b1f3047447a3aae0647013e8d166" stylis-rule-sheet@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" -stylis@3.4.10: - version "3.4.10" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.4.10.tgz#a135cab4b9ff208e327fbb5a6fde3fa991c638ee" - -stylis@^3.0.0: - version "3.4.8" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.4.8.tgz#94380babbcd4c75726215794ca985b38ec96d1a3" - stylis@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" @@ -8227,7 +7831,7 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: +supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: @@ -8373,16 +7977,6 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -test-exclude@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-2.1.3.tgz#a8d8968e1da83266f9864f2852c55e220f06434a" - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - test-exclude@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" @@ -8606,21 +8200,22 @@ type-is@~1.6.15: media-typer "0.3.0" mime-types "~2.1.18" -typescript-styled-plugin@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/typescript-styled-plugin/-/typescript-styled-plugin-0.4.0.tgz#c97e9d243d3f9ced21d613954ce7d93631ad79a7" +typescript-styled-plugin@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/typescript-styled-plugin/-/typescript-styled-plugin-0.11.0.tgz#5d6045fb0c86ac8b6085341497eabe0321110da8" dependencies: - typescript-template-language-service-decorator "^1.1.0" - vscode-css-languageservice "^2.1.10" - vscode-languageserver-types "^3.4.0" + typescript-template-language-service-decorator "^1.7.1" + vscode-css-languageservice "^3.0.10" + vscode-emmet-helper "1.2.11" + vscode-languageserver-types "^3.13.0" -typescript-template-language-service-decorator@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-1.1.0.tgz#0b3dacebc1442fea1e8288b0952ec01ba6bfa595" +typescript-template-language-service-decorator@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/typescript-template-language-service-decorator/-/typescript-template-language-service-decorator-1.7.1.tgz#60f825b6b2bab725c9a73eaff65cb598e81a1bc8" -typescript@2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170" +typescript@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" ua-parser-js@^0.7.9: version "0.7.18" @@ -8677,6 +8272,10 @@ ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -8706,13 +8305,6 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.0.0" -units-css@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/units-css/-/units-css-0.4.0.tgz#d6228653a51983d7c16ff28f8b9dc3b1ffed3a07" - dependencies: - isnumeric "^0.2.0" - viewport-dimensions "^0.2.0" - universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -8882,30 +8474,34 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -viewport-dimensions@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz#de740747db5387fd1725f5175e91bac76afdf36c" - vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" dependencies: indexof "0.0.1" -vscode-css-languageservice@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-2.1.11.tgz#051ad9681d50ceee5f83a20142c8c659a8011ede" +vscode-css-languageservice@^3.0.10: + version "3.0.11" + resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.11.tgz#0e75e1870d59fddbfb6021efd5d80df08c9faaeb" dependencies: - vscode-languageserver-types "^3.4.0" - vscode-nls "^2.0.1" + vscode-languageserver-types "^3.13.0" + vscode-nls "^4.0.0" -vscode-languageserver-types@^3.4.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" +vscode-emmet-helper@1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.11.tgz#4de78223666bf917eb6dc4b225b6c40f6901950c" + dependencies: + "@emmetio/extract-abbreviation" "0.1.6" + jsonc-parser "^1.0.0" + vscode-languageserver-types "^3.6.0-next.1" -vscode-nls@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-2.0.2.tgz#808522380844b8ad153499af5c3b03921aea02da" +vscode-languageserver-types@^3.13.0, vscode-languageserver-types@^3.6.0-next.1: + version "3.13.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.13.0.tgz#b704b024cef059f7b326611c99b9c8753c0a18b4" + +vscode-nls@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.0.0.tgz#4001c8a6caba5cedb23a9c5ce1090395c0e44002" walker@~1.0.5: version "1.0.7" @@ -8961,7 +8557,7 @@ webpack-bundle-analyzer@^2.9.2: opener "^1.4.3" ws "^4.0.0" -webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.10.2: +webpack-dev-middleware@1.12.2: version "1.12.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: @@ -9003,24 +8599,6 @@ webpack-dev-server@2.11.1: webpack-dev-middleware "1.12.2" yargs "6.6.0" -webpack-dev-server@^1.16.2: - version "1.16.5" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz#0cbd5f2d2ac8d4e593aacd5c9702e7bbd5e59892" - dependencies: - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - express "^4.13.3" - http-proxy-middleware "~0.17.1" - open "0.0.5" - optimist "~0.6.1" - serve-index "^1.7.2" - sockjs "^0.3.15" - sockjs-client "^1.0.3" - stream-cache "~0.0.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" - webpack-dev-middleware "^1.10.2" - webpack-manifest-plugin@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz#5ea8ee5756359ddc1d98814324fe43496349a7d4" diff --git a/scripts/release-html.sh b/scripts/release-html.sh index fcb8eb42d..dd9cbf737 100755 --- a/scripts/release-html.sh +++ b/scripts/release-html.sh @@ -1,5 +1,10 @@ #!/bin/bash +if ! [ -x "$(command -v jq)" ]; then + echo 'Error: jq is not installed.' >&2 + exit 1 +fi + set -e cd packages diff --git a/scripts/release-react.sh b/scripts/release-react.sh index 934d3e3d4..4c32f20cd 100755 --- a/scripts/release-react.sh +++ b/scripts/release-react.sh @@ -1,5 +1,10 @@ #!/bin/bash +if ! [ -x "$(command -v jq)" ]; then + echo 'Error: jq is not installed.' >&2 + exit 1 +fi + set -e cd packages @@ -12,6 +17,7 @@ middlewares=( ) cd graphql-playground-react +yarn install echo "Releasing graphql-playground-react..." npm version patch --no-git-tag-version npm publish @@ -33,6 +39,7 @@ curl -X POST \ for middleware in "${middlewares[@]}" do cd $middleware + yarn install echo "Releasing ${middleware}..." cat package.json | jq ".playgroundVersion = \"$version\"" > package.tmp.json mv package.tmp.json package.json