diff --git a/packages/my-joyent/.babelrc b/packages/my-joyent/.babelrc
new file mode 100644
index 00000000..d57f858e
--- /dev/null
+++ b/packages/my-joyent/.babelrc
@@ -0,0 +1,9 @@
+{
+ "presets": "joyent-portal",
+ "plugins": [
+ "styled-components",
+ ["inline-react-svg", {
+ "ignorePattern": "libre-franklin"
+ }]
+ ]
+}
diff --git a/packages/my-joyent/.dockerignore b/packages/my-joyent/.dockerignore
new file mode 100644
index 00000000..06ad4916
--- /dev/null
+++ b/packages/my-joyent/.dockerignore
@@ -0,0 +1,9 @@
+src/components/base/*.css
+node_modules
+coverage
+.nyc_output
+docs/static
+!docs/static/index.html
+docs/node_modules
+dist
+package-lock.json
diff --git a/packages/my-joyent/.eslintignore b/packages/my-joyent/.eslintignore
new file mode 100644
index 00000000..0321eefc
--- /dev/null
+++ b/packages/my-joyent/.eslintignore
@@ -0,0 +1,4 @@
+.nyc_output
+coverage
+dist
+build
\ No newline at end of file
diff --git a/packages/my-joyent/.eslintrc b/packages/my-joyent/.eslintrc
new file mode 100644
index 00000000..a847796a
--- /dev/null
+++ b/packages/my-joyent/.eslintrc
@@ -0,0 +1,11 @@
+{
+ "extends": "joyent-portal",
+ "rules": {
+ "no-console": 0,
+ "new-cap": 0,
+ // temp
+ "no-undef": 1,
+ "no-debugger": 1,
+ "no-negated-condition": 0
+ }
+}
diff --git a/packages/my-joyent/.gitignore b/packages/my-joyent/.gitignore
new file mode 100644
index 00000000..927d17bb
--- /dev/null
+++ b/packages/my-joyent/.gitignore
@@ -0,0 +1,18 @@
+# See https://help.github.com/ignore-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
diff --git a/packages/my-joyent/.stylelintrc b/packages/my-joyent/.stylelintrc
new file mode 100644
index 00000000..c97c6aac
--- /dev/null
+++ b/packages/my-joyent/.stylelintrc
@@ -0,0 +1,8 @@
+{
+ "processors": ["stylelint-processor-styled-components"],
+ "extends": [
+ "stylelint-config-standard",
+ "stylelint-config-styled-components"
+ ],
+ "syntax": "scss"
+}
\ No newline at end of file
diff --git a/packages/my-joyent/.tern-project b/packages/my-joyent/.tern-project
new file mode 100644
index 00000000..4a7fee71
--- /dev/null
+++ b/packages/my-joyent/.tern-project
@@ -0,0 +1,15 @@
+{
+ "libs": [
+ "ecmascript",
+ "browser"
+ ],
+ "plugins": {
+ "doc_comment": true,
+ "local-scope": true,
+ "jsx": true,
+ "node": true,
+ "webpack": {
+ "configPath": "./node_modules/react-scripts/config/webpack.config.dev.js"
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/my-joyent/CHANGELOG.md b/packages/my-joyent/CHANGELOG.md
new file mode 100644
index 00000000..a519a6d0
--- /dev/null
+++ b/packages/my-joyent/CHANGELOG.md
@@ -0,0 +1,4 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
diff --git a/packages/my-joyent/Dockerfile b/packages/my-joyent/Dockerfile
new file mode 100644
index 00000000..2a8813c9
--- /dev/null
+++ b/packages/my-joyent/Dockerfile
@@ -0,0 +1,19 @@
+FROM quay.io/yldio/alpine-node-containerpilot:latest
+
+RUN apk add --update nginx
+
+ENV CONTAINERPILOT /etc/containerpilot.json5
+
+RUN npm install -g npm@^4
+RUN npm config set loglevel info \
+ && yarn add lerna@^2.0.0
+
+RUN ./node_modules/.bin/lerna clean --yes --scope my-joyent --include-filtered-dependencies \
+ && ./node_modules/.bin/lerna bootstrap --scope my-joyent --include-filtered-dependencies
+
+COPY packages/my-joyent/etc/containerpilot.json5 ${CONTAINERPILOT}
+COPY packages/my-joyent/etc/nginx.conf.tmpl /etc/nginx/nginx.conf.tmpl
+
+WORKDIR /opt/app/packages/my-joyent
+
+CMD ["/bin/containerpilot"]
diff --git a/packages/my-joyent/README.md b/packages/my-joyent/README.md
new file mode 100644
index 00000000..7450daf1
--- /dev/null
+++ b/packages/my-joyent/README.md
@@ -0,0 +1,21 @@
+# my-joyent
+
+[![Docker Repository on Quay](https://quay.io/repository/yldio/my-joyent/status)](https://quay.io/repository/yldio/my-joyent)
+[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
+[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg)](https://github.com/RichardLitt/standard-readme)
+
+## Table of Contents
+
+- [Usage](#usage)
+- [License](#license)
+
+## Usage
+
+```
+npm run start
+open http://0.0.0.0:3069
+```
+
+## License
+
+MPL-2.0
diff --git a/packages/my-joyent/package.json b/packages/my-joyent/package.json
new file mode 100644
index 00000000..63cd43a0
--- /dev/null
+++ b/packages/my-joyent/package.json
@@ -0,0 +1,75 @@
+{
+ "name": "my-joyent",
+ "version": "1.0.0",
+ "license": "MPL-2.0",
+ "repository": "github:yldio/joyent-portal",
+ "main": "build/",
+ "scripts": {
+ "dev":
+ "REACT_APP_GQL_PORT=3000 PORT=3069 REACT_APP_GQL_PROTOCOL=http react-scripts start",
+ "start": "PORT=3069 react-scripts start",
+ "build": "NODE_ENV=production react-scripts build",
+ "lint:css": "stylelint './src/**/*.js'",
+ "lint:js": "eslint . --fix",
+ "lint": "redrun -s lint:*",
+ "lint-ci:css": "stylelint './src/**/*.js'",
+ "lint-ci:js":
+ "eslint . --format junit --output-file $CIRCLE_TEST_REPORTS/lint/cp-frontend.xml",
+ "lint-ci": "redrun -p lint-ci:*",
+ "test": "NODE_ENV=test ./test/run --env=jsdom",
+ "test-ci":
+ "echo 0 `# NODE_ENV=test JEST_JUNIT_OUTPUT=$CIRCLE_TEST_REPORTS/test/cp-frontend.xml ./test/run --env=jsdom --coverage --coverageDirectory=$CIRCLE_ARTIFACTS/cp-frontend --testResultsProcessor=$(node -e \"console.log(require.resolve('jest-junit'))\")`",
+ "prepublish": "node scripts/postinstall"
+ },
+ "dependencies": {
+ "apollo": "^0.2.2",
+ "graphql-tag": "^2.4.2",
+ "jest-cli": "^21.0.1",
+ "joyent-ui-toolkit": "^2.0.0",
+ "normalized-styled-components": "^1.0.9",
+ "prop-types": "^15.5.10",
+ "react": "^15.6.1",
+ "react-apollo": "^1.4.15",
+ "react-dom": "^15.6.1",
+ "react-redux": "^5.0.6",
+ "react-router": "^4.1.1",
+ "react-router-dom": "^4.1.2",
+ "react-styled-flexboxgrid": "^2.0.3",
+ "redux": "^3.7.2",
+ "redux-form": "^7.0.3",
+ "remcalc": "^1.0.8",
+ "styled-components": "^2.1.2",
+ "styled-is": "^1.0.11",
+ "unitcalc": "^1.0.8"
+ },
+ "devDependencies": {
+ "apr-for-each": "^1.0.6",
+ "apr-main": "^1.0.7",
+ "babel-plugin-inline-react-svg": "^0.4.0",
+ "babel-plugin-styled-components": "^1.2.0",
+ "babel-preset-joyent-portal": "^2.0.0",
+ "commitizen": "^2.9.6",
+ "cross-env": "^5.0.5",
+ "eslint": "^4.5.0",
+ "eslint-config-joyent-portal": "3.0.0",
+ "jest": "^21.0.1",
+ "jest-alias-preprocessor": "^1.1.1",
+ "jest-cli": "^20.0.4",
+ "jest-diff": "^21.0.0",
+ "jest-junit": "^3.0.0",
+ "jest-matcher-utils": "^21.0.0",
+ "jest-snapshot": "^21.0.0",
+ "jest-styled-components": "^4.4.1",
+ "jest-transform-graphql": "^2.1.0",
+ "lodash.sortby": "^4.7.0",
+ "mz": "^2.6.0",
+ "react-scripts": "^1.0.12",
+ "react-test-renderer": "^15.6.1",
+ "redrun": "^5.9.17",
+ "stylelint": "^8.1.1",
+ "stylelint-config-primer": "^2.0.1",
+ "stylelint-config-standard": "^17.0.0",
+ "stylelint-config-styled-components": "^0.1.1",
+ "stylelint-processor-styled-components": "^0.4.0"
+ }
+}
diff --git a/packages/my-joyent/public/favicon.ico b/packages/my-joyent/public/favicon.ico
new file mode 100644
index 00000000..5c125de5
Binary files /dev/null and b/packages/my-joyent/public/favicon.ico differ
diff --git a/packages/my-joyent/public/index.html b/packages/my-joyent/public/index.html
new file mode 100644
index 00000000..17cfc072
--- /dev/null
+++ b/packages/my-joyent/public/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ My Joyent
+
+
+
+
+
+
diff --git a/packages/my-joyent/scripts/patch-webpack-config.js b/packages/my-joyent/scripts/patch-webpack-config.js
new file mode 100644
index 00000000..ae95b04c
--- /dev/null
+++ b/packages/my-joyent/scripts/patch-webpack-config.js
@@ -0,0 +1,120 @@
+const webpack = require('webpack');
+const isString = require('lodash.isstring');
+const fs = require('fs');
+const path = require('path');
+
+const FRONTEND_ROOT = process.cwd();
+const FRONTEND = path.join(FRONTEND_ROOT, 'src');
+
+const BabelLoader = loader => ({
+ test: loader.test,
+ include: loader.include,
+ loader: loader.loader,
+ options: {
+ babelrc: true,
+ cacheDirectory: true
+ }
+});
+
+const FileLoader = loader => ({
+ exclude: loader.exclude.concat([/\.(graphql|gql)$/]),
+ loader: loader.loader,
+ options: loader.options
+});
+
+module.exports = config => {
+ config.resolve.plugins = [];
+
+ config.plugins = config.plugins.filter(
+ plugin => !(plugin instanceof webpack.optimize.UglifyJsPlugin)
+ );
+
+ config.module.rules = config.module.rules
+ .reduce((loaders, loader, index) => {
+ if (Array.isArray(loader.use)) {
+ return loaders.concat([
+ Object.assign(loader, {
+ use: loader.use.map(l => {
+ if (isString(l) || !isString(l.loader)) {
+ return l;
+ }
+
+ if (!l.loader.match(/eslint-loader/)) {
+ return l;
+ }
+
+ return Object.assign(l, {
+ options: Object.assign(l.options, {
+ baseConfig: null,
+ useEslintrc: true
+ })
+ });
+ })
+ })
+ ]);
+ }
+
+ if (Array.isArray(loader.oneOf)) {
+ return loaders.concat([
+ Object.assign(loader, {
+ oneOf: loader.oneOf.map(loader => {
+ if (!isString(loader.loader)) {
+ return loader;
+ }
+
+ if (loader.loader.match(/babel-loader/)) {
+ return BabelLoader(loader);
+ }
+
+ if (loader.loader.match(/file-loader/)) {
+ return FileLoader(loader);
+ }
+
+ return loader;
+ })
+ })
+ ]);
+ }
+
+ if (!isString(loader.loader)) {
+ return loaders.concat([loader]);
+ }
+
+ if (loader.loader.match(/babel-loader/)) {
+ return loaders.concat(BabelLoader(loader));
+ }
+
+ if (loader.loader.match(/file-loader/)) {
+ return loaders.concat([FileLoader(loader)]);
+ }
+
+ return loaders.concat([loader]);
+ }, [])
+ .concat([
+ {
+ test: /\.(graphql|gql)$/,
+ exclude: /node_modules/,
+ loader: require.resolve('graphql-tag/loader')
+ }
+ ]);
+
+ config.resolve.alias = Object.assign(
+ {},
+ config.resolve.alias,
+ fs
+ .readdirSync(FRONTEND)
+ .map(name => path.join(FRONTEND, name))
+ .filter(fullpath => fs.statSync(fullpath).isDirectory())
+ .reduce(
+ (aliases, fullpath) =>
+ Object.assign(aliases, {
+ [`@${path.basename(fullpath)}`]: fullpath
+ }),
+ {
+ '@root': FRONTEND
+ }
+ )
+ );
+
+ return config;
+};
diff --git a/packages/my-joyent/scripts/postinstall.js b/packages/my-joyent/scripts/postinstall.js
new file mode 100644
index 00000000..d313c46c
--- /dev/null
+++ b/packages/my-joyent/scripts/postinstall.js
@@ -0,0 +1,41 @@
+const { readFile, writeFile, exists } = require('mz/fs');
+const main = require('apr-main');
+const forEach = require('apr-for-each');
+const path = require('path');
+
+const ROOT = path.join(__dirname, '../../../node_modules/react-scripts/config');
+const configs = ['webpack.config.dev', 'webpack.config.prod'];
+
+const toCopy = [
+ 'patch-webpack-config',
+ 'webpack.config.dev',
+ 'webpack.config.prod'
+];
+
+const backup = async file => {
+ const backupPath = path.join(ROOT, `${file}.original.js`);
+ const backupExists = await exists(backupPath);
+
+ if (backupExists) {
+ return;
+ }
+
+ const originalPath = path.join(ROOT, `${file}.js`);
+ const orignalConfig = await readFile(originalPath, 'utf-8');
+ return writeFile(backupPath, orignalConfig);
+};
+
+const copy = async file => {
+ const srcPath = path.join(__dirname, `${file}.js`);
+ const destPath = path.join(ROOT, `${file}.js`);
+
+ const src = await readFile(srcPath, 'utf-8');
+ return writeFile(destPath, src);
+};
+
+main(
+ (async () => {
+ await forEach(configs, backup);
+ await forEach(toCopy, copy);
+ })()
+);
diff --git a/packages/my-joyent/scripts/webpack.config.dev.js b/packages/my-joyent/scripts/webpack.config.dev.js
new file mode 100644
index 00000000..324e9d33
--- /dev/null
+++ b/packages/my-joyent/scripts/webpack.config.dev.js
@@ -0,0 +1,4 @@
+const originalConfig = require('./webpack.config.dev.original');
+const patch = require('./patch-webpack-config');
+
+module.exports = patch(originalConfig);
diff --git a/packages/my-joyent/scripts/webpack.config.prod.js b/packages/my-joyent/scripts/webpack.config.prod.js
new file mode 100644
index 00000000..d4bb301c
--- /dev/null
+++ b/packages/my-joyent/scripts/webpack.config.prod.js
@@ -0,0 +1,4 @@
+const originalConfig = require('./webpack.config.prod.original');
+const patch = require('./patch-webpack-config');
+
+module.exports = patch(originalConfig);
diff --git a/packages/my-joyent/src/app.js b/packages/my-joyent/src/app.js
new file mode 100644
index 00000000..d309ccdf
--- /dev/null
+++ b/packages/my-joyent/src/app.js
@@ -0,0 +1,26 @@
+import React, { Component } from 'react';
+import { ThemeProvider, injectGlobal } from 'styled-components';
+import { theme, global } from 'joyent-ui-toolkit';
+import { ApolloProvider } from 'react-apollo';
+
+import { client, store } from '@state/store';
+import Router from '@root/router';
+
+class App extends Component {
+ componentWillMount() {
+ // eslint-disable-next-line no-unused-expressions
+ injectGlobal`
+ ${global}
+ `;
+ }
+
+ render() {
+ return (
+
+ {Router}
+
+ );
+ }
+}
+
+export default App;
diff --git a/packages/my-joyent/src/assets/triton_logo.png b/packages/my-joyent/src/assets/triton_logo.png
new file mode 100644
index 00000000..666fe0fe
Binary files /dev/null and b/packages/my-joyent/src/assets/triton_logo.png differ
diff --git a/packages/my-joyent/src/assets/triton_logo_dark.png b/packages/my-joyent/src/assets/triton_logo_dark.png
new file mode 100644
index 00000000..53aa24f8
Binary files /dev/null and b/packages/my-joyent/src/assets/triton_logo_dark.png differ
diff --git a/packages/my-joyent/src/components/layout/__tests__/__snapshots__/container.spec.js.snap b/packages/my-joyent/src/components/layout/__tests__/__snapshots__/container.spec.js.snap
new file mode 100644
index 00000000..8324951c
--- /dev/null
+++ b/packages/my-joyent/src/components/layout/__tests__/__snapshots__/container.spec.js.snap
@@ -0,0 +1,38 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = `
+.c0 {
+ margin-right: auto;
+ margin-left: auto;
+ padding-top: 1.1875rem;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ display: block;
+ -webkit-flex-flow: column;
+ -ms-flex-flow: column;
+ flex-flow: column;
+}
+
+@media only screen and (min-width:48em) {
+ .c0 {
+ width: 46rem;
+ }
+}
+
+@media only screen and (min-width:64em) {
+ .c0 {
+ width: 61rem;
+ }
+}
+
+@media only screen and (min-width:75em) {
+ .c0 {
+ width: 76rem;
+ }
+}
+
+
+`;
diff --git a/packages/my-joyent/src/components/layout/__tests__/container.spec.js b/packages/my-joyent/src/components/layout/__tests__/container.spec.js
new file mode 100644
index 00000000..406eb413
--- /dev/null
+++ b/packages/my-joyent/src/components/layout/__tests__/container.spec.js
@@ -0,0 +1,14 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+
+import Container from '../container';
+
+it('renders without throwing', () => {
+ const tree = renderer.create().toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/components/layout/container.js b/packages/my-joyent/src/components/layout/container.js
new file mode 100644
index 00000000..81a53feb
--- /dev/null
+++ b/packages/my-joyent/src/components/layout/container.js
@@ -0,0 +1,20 @@
+import { Grid } from 'react-styled-flexboxgrid';
+import remcalc from 'remcalc';
+import is, { isNot } from 'styled-is';
+
+export default Grid.extend`
+ padding-top: ${remcalc(19)};
+ ${isNot('plain')`
+ flex: 1 1 auto;
+ display: block;
+ flex-flow: column;
+ `};
+ ${is('center')`
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ justify-content: center;
+ align-content: center;
+ align-items: center;
+ `};
+`;
diff --git a/packages/my-joyent/src/components/layout/index.js b/packages/my-joyent/src/components/layout/index.js
new file mode 100644
index 00000000..d0d40032
--- /dev/null
+++ b/packages/my-joyent/src/components/layout/index.js
@@ -0,0 +1 @@
+export { default as LayoutContainer } from './container';
diff --git a/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/header.spec.js.snap b/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/header.spec.js.snap
new file mode 100644
index 00000000..2d040e98
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/header.spec.js.snap
@@ -0,0 +1,140 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = `
+.c2 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c1 {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ padding: 0.9375rem 0;
+}
+
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-pack: space-between;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: space-between;
+ justify-content: space-between;
+ -webkit-align-content: stretch;
+ -ms-flex-line-pack: stretch;
+ align-content: stretch;
+ -webkit-align-items: stretch;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ background-color: ;
+ max-height: 3.3125rem;
+ min-height: 3.3125rem;
+ padding: 0 1.125rem;
+ line-height: 1.5625rem;
+}
+
+.c3 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+ .c1 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c0 {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ padding: 0.9375rem 0;
+}
+
+.c2 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+ .c0 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c1 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+
+
+`;
diff --git a/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/not-found.spec.js.snap b/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/not-found.spec.js.snap
new file mode 100644
index 00000000..c2c3cfeb
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/__tests__/__snapshots__/not-found.spec.js.snap
@@ -0,0 +1,345 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = `
+.c6 {
+ display: inline-block;
+ box-sizing: border-box;
+ display: inline-block;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin: 0;
+ padding: 0.9375rem 1.125rem;
+ position: relative;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ font-size: 0.9375rem;
+ text-align: center;
+ font-style: normal;
+ font-stretch: normal;
+ line-height: normal;
+ -webkit-letter-spacing: normal;
+ -moz-letter-spacing: normal;
+ -ms-letter-spacing: normal;
+ letter-spacing: normal;
+ text-decoration: none;
+ white-space: nowrap;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ color: ;
+ background-image: none;
+ background-color: ;
+ border-radius: 0.25rem;
+ border: solid 0.0625rem;
+}
+
+.c6:focus {
+ outline: 0;
+ text-decoration: none;
+ background-color: ;
+ border-color: ;
+}
+
+.c6:hover {
+ background-color: ;
+ border: solid 0.0625rem;
+}
+
+.c6:active,
+.c6:active:hover,
+.c6:active:focus {
+ background-image: none;
+ outline: 0;
+ background-color: ;
+ border-color: ;
+}
+
+.c6[disabled] {
+ cursor: not-allowed;
+ pointer-events: none;
+}
+
+.c3 {
+ font-size: 2rem;
+ margin: 0.625rem 0;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 2.25rem;
+ font-style: normal;
+ font-stretch: normal;
+ margin: 0;
+}
+
+.c5 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ line-height: 1.5rem;
+ font-size: 0.9375rem;
+}
+
+.c0 {
+ margin-right: auto;
+ margin-left: auto;
+ padding-top: 1.1875rem;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ display: block;
+ -webkit-flex-flow: column;
+ -ms-flex-flow: column;
+ flex-flow: column;
+}
+
+.c1 {
+ margin-top: 3.75rem;
+}
+
+.c2 {
+ font-weight: normal;
+ font-size: 2rem;
+}
+
+.c4 {
+ margin-bottom: 1.875rem;
+ max-width: 30.625rem;
+}
+
+@media only screen and (min-width:48em) {
+ .c0 {
+ width: 46rem;
+ }
+}
+
+@media only screen and (min-width:64em) {
+ .c0 {
+ width: 61rem;
+ }
+}
+
+@media only screen and (min-width:75em) {
+ .c0 {
+ width: 76rem;
+ }
+}
+
+
+ .c5 {
+ display: inline-block;
+ box-sizing: border-box;
+ display: inline-block;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin: 0;
+ padding: 0.9375rem 1.125rem;
+ position: relative;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ font-size: 0.9375rem;
+ text-align: center;
+ font-style: normal;
+ font-stretch: normal;
+ line-height: normal;
+ -webkit-letter-spacing: normal;
+ -moz-letter-spacing: normal;
+ -ms-letter-spacing: normal;
+ letter-spacing: normal;
+ text-decoration: none;
+ white-space: nowrap;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ color: ;
+ background-image: none;
+ background-color: ;
+ border-radius: 0.25rem;
+ border: solid 0.0625rem;
+}
+
+.c5:focus {
+ outline: 0;
+ text-decoration: none;
+ background-color: ;
+ border-color: ;
+}
+
+.c5:hover {
+ background-color: ;
+ border: solid 0.0625rem;
+}
+
+.c5:active,
+.c5:active:hover,
+.c5:active:focus {
+ background-image: none;
+ outline: 0;
+ background-color: ;
+ border-color: ;
+}
+
+.c5[disabled] {
+ cursor: not-allowed;
+ pointer-events: none;
+}
+
+.c2 {
+ font-size: 2rem;
+ margin: 0.625rem 0;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 2.25rem;
+ font-style: normal;
+ font-stretch: normal;
+ margin: 0;
+}
+
+.c4 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ line-height: 1.5rem;
+ font-size: 0.9375rem;
+}
+
+.c0 {
+ margin-top: 3.75rem;
+}
+
+.c1 {
+ font-weight: normal;
+ font-size: 2rem;
+}
+
+.c3 {
+ margin-bottom: 1.875rem;
+ max-width: 30.625rem;
+}
+
+
+ .c1 {
+ font-size: 2rem;
+ margin: 0.625rem 0;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 2.25rem;
+ font-style: normal;
+ font-stretch: normal;
+ margin: 0;
+}
+
+.c0 {
+ font-weight: normal;
+ font-size: 2rem;
+}
+
+
+ I have no memory of this place
+
+ .c1 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ line-height: 1.5rem;
+ font-size: 0.9375rem;
+}
+
+.c0 {
+ margin-bottom: 1.875rem;
+ max-width: 30.625rem;
+}
+
+
+ HTTP 404: We can’t find what you are looking for. Next time, always follow your nose.
+
+ .c0 {
+ display: inline-block;
+ box-sizing: border-box;
+ display: inline-block;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin: 0;
+ padding: 0.9375rem 1.125rem;
+ position: relative;
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 400;
+ font-size: 0.9375rem;
+ text-align: center;
+ font-style: normal;
+ font-stretch: normal;
+ line-height: normal;
+ -webkit-letter-spacing: normal;
+ -moz-letter-spacing: normal;
+ -ms-letter-spacing: normal;
+ letter-spacing: normal;
+ text-decoration: none;
+ white-space: nowrap;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ color: ;
+ background-image: none;
+ background-color: ;
+ border-radius: 0.25rem;
+ border: solid 0.0625rem;
+}
+
+.c0:focus {
+ outline: 0;
+ text-decoration: none;
+ background-color: ;
+ border-color: ;
+}
+
+.c0:hover {
+ background-color: ;
+ border: solid 0.0625rem;
+}
+
+.c0:active,
+.c0:active:hover,
+.c0:active:focus {
+ background-image: none;
+ outline: 0;
+ background-color: ;
+ border-color: ;
+}
+
+.c0[disabled] {
+ cursor: not-allowed;
+ pointer-events: none;
+}
+
+
+ Back home
+
+
+
+`;
diff --git a/packages/my-joyent/src/components/navigation/__tests__/header.spec.js b/packages/my-joyent/src/components/navigation/__tests__/header.spec.js
new file mode 100644
index 00000000..ef06967a
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/__tests__/header.spec.js
@@ -0,0 +1,21 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+
+import { Router } from '@mocks/';
+import { Header } from '../';
+
+it('renders without throwing', () => {
+ const tree = renderer
+ .create(
+
+
+
+ )
+ .toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/components/navigation/__tests__/not-found.spec.js b/packages/my-joyent/src/components/navigation/__tests__/not-found.spec.js
new file mode 100644
index 00000000..355b9c68
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/__tests__/not-found.spec.js
@@ -0,0 +1,21 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+import { Router } from '@mocks/';
+
+import { NotFound } from '../';
+
+it('renders without throwing', () => {
+ const tree = renderer
+ .create(
+
+
+
+ )
+ .toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/components/navigation/header.js b/packages/my-joyent/src/components/navigation/header.js
new file mode 100644
index 00000000..581fb136
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/header.js
@@ -0,0 +1,24 @@
+import React from 'react';
+import { Link } from 'react-router-dom';
+import { Img } from 'normalized-styled-components';
+import remcalc from 'remcalc';
+
+import Logo from '@assets/triton_logo.png';
+import { Header, HeaderBrand } from 'joyent-ui-toolkit';
+
+const StyledLogo = Img.extend`
+ width: ${remcalc(87)};
+ height: ${remcalc(25)};
+`;
+
+const NavHeader = () => (
+
+);
+
+export default NavHeader;
diff --git a/packages/my-joyent/src/components/navigation/index.js b/packages/my-joyent/src/components/navigation/index.js
new file mode 100644
index 00000000..c3eeaef3
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/index.js
@@ -0,0 +1,2 @@
+export { default as Header } from './header';
+export { default as NotFound } from './not-found';
diff --git a/packages/my-joyent/src/components/navigation/not-found.js b/packages/my-joyent/src/components/navigation/not-found.js
new file mode 100644
index 00000000..0dee2880
--- /dev/null
+++ b/packages/my-joyent/src/components/navigation/not-found.js
@@ -0,0 +1,45 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import styled from 'styled-components';
+import remcalc from 'remcalc';
+import { H1, P, Button } from 'joyent-ui-toolkit';
+import { LayoutContainer } from '@components/layout';
+
+const StyledContainer = styled.div`
+ /* Comment For prettier */
+ margin-top: ${remcalc(60)};
+`;
+
+const StyledTitle = styled(H1)`
+ font-weight: normal;
+ font-size: ${remcalc(32)};
+`;
+
+const StyledP = styled(P)`
+ margin-bottom: ${remcalc(30)};
+ max-width: ${remcalc(490)};
+`;
+
+const NotFound = ({
+ title = 'I have no memory of this place',
+ message = 'HTTP 404: We can’t find what you are looking for. Next time, always follow your nose.',
+ link = 'Back home',
+ to = '/'
+}) => (
+
+
+ {title}
+ {message}
+
+
+
+);
+
+NotFound.propTypes = {
+ title: PropTypes.string,
+ message: PropTypes.string,
+ link: PropTypes.string,
+ to: PropTypes.string
+};
+
+export default NotFound;
diff --git a/packages/my-joyent/src/containers/home/__tests__/__snapshots__/index.spec.js.snap b/packages/my-joyent/src/containers/home/__tests__/__snapshots__/index.spec.js.snap
new file mode 100644
index 00000000..7f24793a
--- /dev/null
+++ b/packages/my-joyent/src/containers/home/__tests__/__snapshots__/index.spec.js.snap
@@ -0,0 +1,40 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = `
+.c0 {
+ margin-right: auto;
+ margin-left: auto;
+ padding-top: 1.1875rem;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ display: block;
+ -webkit-flex-flow: column;
+ -ms-flex-flow: column;
+ flex-flow: column;
+}
+
+@media only screen and (min-width:48em) {
+ .c0 {
+ width: 46rem;
+ }
+}
+
+@media only screen and (min-width:64em) {
+ .c0 {
+ width: 61rem;
+ }
+}
+
+@media only screen and (min-width:75em) {
+ .c0 {
+ width: 76rem;
+ }
+}
+
+
+ Welcome to your joyent portal
+
+`;
diff --git a/packages/my-joyent/src/containers/home/__tests__/index.spec.js b/packages/my-joyent/src/containers/home/__tests__/index.spec.js
new file mode 100644
index 00000000..ae64bee5
--- /dev/null
+++ b/packages/my-joyent/src/containers/home/__tests__/index.spec.js
@@ -0,0 +1,14 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+
+import Home from '../';
+
+it('renders without throwing', () => {
+ const tree = renderer.create().toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/containers/home/index.js b/packages/my-joyent/src/containers/home/index.js
new file mode 100644
index 00000000..6359cbfd
--- /dev/null
+++ b/packages/my-joyent/src/containers/home/index.js
@@ -0,0 +1,8 @@
+import React from 'react';
+import { LayoutContainer } from '@components/layout';
+
+const Home = () => (
+ Welcome to your joyent portal
+);
+
+export default Home;
diff --git a/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/header.spec.js.snap b/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/header.spec.js.snap
new file mode 100644
index 00000000..2d040e98
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/header.spec.js.snap
@@ -0,0 +1,140 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = `
+.c2 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c1 {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ padding: 0.9375rem 0;
+}
+
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-pack: space-between;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: space-between;
+ justify-content: space-between;
+ -webkit-align-content: stretch;
+ -ms-flex-line-pack: stretch;
+ align-content: stretch;
+ -webkit-align-items: stretch;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ background-color: ;
+ max-height: 3.3125rem;
+ min-height: 3.3125rem;
+ padding: 0 1.125rem;
+ line-height: 1.5625rem;
+}
+
+.c3 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+ .c1 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c0 {
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ -webkit-order: 0;
+ -ms-flex-order: 0;
+ order: 0;
+ padding: 0.9375rem 0;
+}
+
+.c2 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+ .c0 {
+ font-family: "Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica,sans-serif;
+ font-weight: 500;
+ font-size: 1.5rem;
+ text-transform: uppercase;
+ color: ;
+ font-size: 1.8125rem;
+ margin: 0;
+}
+
+.c1 {
+ border-style: none;
+ width: 5.4375rem;
+ height: 1.5625rem;
+}
+
+
+
+
+`;
diff --git a/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/not-found-hoc.spec.js.snap b/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/not-found-hoc.spec.js.snap
new file mode 100644
index 00000000..1509cc15
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/__tests__/__snapshots__/not-found-hoc.spec.js.snap
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders without throwing 1`] = ``;
diff --git a/packages/my-joyent/src/containers/navigation/__tests__/header.spec.js b/packages/my-joyent/src/containers/navigation/__tests__/header.spec.js
new file mode 100644
index 00000000..ef06967a
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/__tests__/header.spec.js
@@ -0,0 +1,21 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+
+import { Router } from '@mocks/';
+import { Header } from '../';
+
+it('renders without throwing', () => {
+ const tree = renderer
+ .create(
+
+
+
+ )
+ .toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/containers/navigation/__tests__/not-found-hoc.spec.js b/packages/my-joyent/src/containers/navigation/__tests__/not-found-hoc.spec.js
new file mode 100644
index 00000000..e8e29e8d
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/__tests__/not-found-hoc.spec.js
@@ -0,0 +1,14 @@
+/**
+ * @jest-environment jsdom
+ */
+
+import React from 'react';
+import renderer from 'react-test-renderer';
+import 'jest-styled-components';
+
+import { withNotFound } from '../';
+
+it('renders without throwing', () => {
+ const tree = renderer.create().toJSON();
+ expect(tree).toMatchSnapshot();
+});
diff --git a/packages/my-joyent/src/containers/navigation/header.js b/packages/my-joyent/src/containers/navigation/header.js
new file mode 100644
index 00000000..eed568d7
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/header.js
@@ -0,0 +1,7 @@
+import React from 'react';
+
+import { Header as HeaderComponent } from '@components/navigation';
+
+export const Header = () => ;
+
+export default Header;
diff --git a/packages/my-joyent/src/containers/navigation/index.js b/packages/my-joyent/src/containers/navigation/index.js
new file mode 100644
index 00000000..1008ff79
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/index.js
@@ -0,0 +1,2 @@
+export { default as Header } from './header';
+export { default as withNotFound } from './not-found-hoc';
diff --git a/packages/my-joyent/src/containers/navigation/not-found-hoc.js b/packages/my-joyent/src/containers/navigation/not-found-hoc.js
new file mode 100644
index 00000000..000d6860
--- /dev/null
+++ b/packages/my-joyent/src/containers/navigation/not-found-hoc.js
@@ -0,0 +1,20 @@
+import React from 'react';
+import { NotFound } from '@components/navigation';
+
+const pathsExample = {
+ title: 'I have no memory of this place',
+ message:
+ 'HTTP 404: We can’t find what you are looking for. Next time, always follow your nose.',
+ link: 'Back home',
+ to: '/'
+};
+const NotFoundHOC = (paths = pathsExample) => (
+
+);
+
+export default NotFoundHOC;
diff --git a/packages/my-joyent/src/graphql/Example.gql b/packages/my-joyent/src/graphql/Example.gql
new file mode 100644
index 00000000..ceeb4497
--- /dev/null
+++ b/packages/my-joyent/src/graphql/Example.gql
@@ -0,0 +1,11 @@
+query Portal {
+ portal {
+ user {
+ firstName
+ }
+ datacenter {
+ id
+ region
+ }
+ }
+}
diff --git a/packages/my-joyent/src/index.js b/packages/my-joyent/src/index.js
new file mode 100644
index 00000000..968445cc
--- /dev/null
+++ b/packages/my-joyent/src/index.js
@@ -0,0 +1,5 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import App from './app';
+
+ReactDOM.render(, document.getElementById('root'));
diff --git a/packages/my-joyent/src/router.js b/packages/my-joyent/src/router.js
new file mode 100644
index 00000000..856ce803
--- /dev/null
+++ b/packages/my-joyent/src/router.js
@@ -0,0 +1,30 @@
+import React from 'react';
+import { BrowserRouter, Route, Switch } from 'react-router-dom';
+import styled from 'styled-components';
+
+import { Header } from '@containers/navigation';
+
+import Home from '@containers/home';
+
+import { NotFound } from '@components/navigation';
+
+const Container = styled.div`
+ display: flex;
+ flex: 1 1 auto;
+ position: relative;
+ flex-flow: column;
+`;
+
+const Router = (
+
+
+
+
+
+
+
+
+
+);
+
+export default Router;
diff --git a/packages/my-joyent/src/state/state.js b/packages/my-joyent/src/state/state.js
new file mode 100644
index 00000000..4110b168
--- /dev/null
+++ b/packages/my-joyent/src/state/state.js
@@ -0,0 +1,3 @@
+const state = {};
+
+export default state;
diff --git a/packages/my-joyent/src/state/store.js b/packages/my-joyent/src/state/store.js
new file mode 100644
index 00000000..067be2ae
--- /dev/null
+++ b/packages/my-joyent/src/state/store.js
@@ -0,0 +1,58 @@
+import { createStore, combineReducers, applyMiddleware, compose } from 'redux';
+import { reducer as formReducer } from 'redux-form';
+import { ApolloClient, createNetworkInterface } from 'react-apollo';
+import state from './state';
+
+const GLOBAL =
+ typeof window === 'object'
+ ? window
+ : {
+ location: {
+ hostname: '0.0.0.0'
+ }
+ };
+
+const GQL_PORT = process.env.REACT_APP_GQL_PORT || 443;
+const GQL_HOSTNAME =
+ process.env.REACT_APP_GQL_HOSTNAME || GLOBAL.location.hostname;
+const GQL_PROTOCOL = process.env.REACT_APP_GQL_PROTOCOL || 'https';
+
+export const client = new ApolloClient({
+ dataIdFromObject: o => {
+ const id = o.id
+ ? o.id
+ : o.slug
+ ? o.slug
+ : o.uuid
+ ? o.uuid
+ : o.timestamp
+ ? o.timestamp
+ : o.name && o.instance
+ ? `${o.name}-${o.instance}`
+ : o.name
+ ? o.name
+ : o.time && o.value
+ ? `${o.time}-${o.value}`
+ : 'apollo-cache-key-not-defined';
+ return `${o.__typename}:${id}`;
+ },
+ networkInterface: createNetworkInterface({
+ uri: `${GQL_PROTOCOL}://${GQL_HOSTNAME}:${GQL_PORT}/api/graphql`
+ })
+});
+
+export const store = createStore(
+ combineReducers({
+ apollo: client.reducer(),
+ form: formReducer
+ }),
+ state, // Initial state
+ compose(
+ applyMiddleware(client.middleware()),
+ // If you are using the devToolsExtension, you can add it here also
+ // eslint-disable-next-line no-negated-condition
+ typeof GLOBAL.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined'
+ ? GLOBAL.__REDUX_DEVTOOLS_EXTENSION__()
+ : f => f
+ )
+);
diff --git a/packages/my-joyent/test/file-mock.js b/packages/my-joyent/test/file-mock.js
new file mode 100644
index 00000000..d906d5b4
--- /dev/null
+++ b/packages/my-joyent/test/file-mock.js
@@ -0,0 +1 @@
+module.exports = 'test-file-mock';
diff --git a/packages/my-joyent/test/mocks/index.js b/packages/my-joyent/test/mocks/index.js
new file mode 100644
index 00000000..cf9bab85
--- /dev/null
+++ b/packages/my-joyent/test/mocks/index.js
@@ -0,0 +1,3 @@
+export { default as Router } from './router';
+export { default as Store } from './store';
+export { default as Theme } from './theme';
diff --git a/packages/my-joyent/test/mocks/router.js b/packages/my-joyent/test/mocks/router.js
new file mode 100644
index 00000000..47dbba36
--- /dev/null
+++ b/packages/my-joyent/test/mocks/router.js
@@ -0,0 +1,4 @@
+import React from 'react';
+import { MemoryRouter } from 'react-router-dom';
+
+export default ({ children }) => {children};
diff --git a/packages/my-joyent/test/mocks/store.js b/packages/my-joyent/test/mocks/store.js
new file mode 100644
index 00000000..6026ecbc
--- /dev/null
+++ b/packages/my-joyent/test/mocks/store.js
@@ -0,0 +1,9 @@
+import React from 'react';
+import { client, store } from '@state/store';
+import { ApolloProvider } from 'react-apollo';
+
+export default ({ children }) => (
+
+ {children}
+
+);
diff --git a/packages/my-joyent/test/mocks/theme.js b/packages/my-joyent/test/mocks/theme.js
new file mode 100644
index 00000000..5b1a2a45
--- /dev/null
+++ b/packages/my-joyent/test/mocks/theme.js
@@ -0,0 +1,7 @@
+import React from 'react';
+import { ThemeProvider } from 'styled-components';
+import { theme } from 'joyent-ui-toolkit';
+
+export default ({ children }) => (
+ {children}
+);
diff --git a/packages/my-joyent/test/run b/packages/my-joyent/test/run
new file mode 100755
index 00000000..01c9d4a9
--- /dev/null
+++ b/packages/my-joyent/test/run
@@ -0,0 +1,66 @@
+#!/usr/bin/env node
+
+// Do this as the first thing so that any code reading it knows the right env.
+process.env.BABEL_ENV = 'test';
+process.env.NODE_ENV = 'test';
+process.env.PUBLIC_URL = '';
+
+// Makes the script crash on unhandled rejections instead of silently
+// ignoring them. In the future, promise rejections that are not handled will
+// terminate the Node.js process with a non-zero exit code.
+process.on('unhandledRejection', err => {
+ throw err;
+});
+
+// Ensure environment variables are read.
+require('react-scripts/config/env');
+
+const jest = require('jest');
+const argv = process.argv.slice(2);
+
+// This is not necessary after eject because we embed config into package.json.
+const createJestConfig = require('react-scripts/scripts/utils/createJestConfig');
+const path = require('path');
+const paths = require('react-scripts/config/paths');
+
+const config = createJestConfig(
+ relativePath =>
+ path.resolve(
+ __dirname,
+ '../../../node_modules/react-scripts',
+ relativePath
+ ),
+ path.resolve(__dirname, '../../../'),
+ false
+);
+
+// patch
+config.testEnvironment = 'node';
+config.transform = Object.assign(
+ {},
+ {
+ '\\.(gql|graphql)$': 'jest-transform-graphql'
+ },
+ config.transform
+);
+config.testMatch = [
+ '/packages/my-joyent/src/**/**/__tests__/**/*.js',
+ '/packages/my-joyent/src/**/**/**/?(*.)(spec|test).js'
+];
+config.moduleNameMapper = Object.assign({}, config.moduleNameMapper, {
+ '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
+ '/packages/my-joyent/test/file-mock.js',
+ '^@root/(.*)$': '/packages/my-joyent/src/$1',
+ '^@mocks/(.*)$': '/packages/my-joyent/test/mocks$1',
+ '^@components/(.*)$':
+ '/packages/my-joyent/src/components/$1',
+ '^@containers/(.*)$':
+ '/packages/my-joyent/src/containers/$1',
+ '^@graphql/(.*)$': '/packages/my-joyent/src/graphql/$1',
+ '^@assets/(.*)$': '/packages/my-joyent/src/assets/$1',
+ '^@state/(.*)$': '/packages/my-joyent/src/state/$1'
+});
+
+argv.push('--config', JSON.stringify(config));
+
+jest.run(argv);
diff --git a/scripts/format b/scripts/format
index 475aea64..4b8849b4 100755
--- a/scripts/format
+++ b/scripts/format
@@ -36,12 +36,11 @@ const filter = (files = []) =>
const run = async (files = []) => {
const filteredFiles = filter(files);
-
const _files = filteredFiles.reduce(
(files, file) => {
const ext = path.extname(file).replace(/^./, '') || 'js';
return Object.assign(files, {
- [ext]: files[ext].concat(file)
+ [ext]: (files[ext] || 'js').concat(file)
});
},
{
diff --git a/scripts/run-staged-pkg b/scripts/run-staged-pkg
index 49dc7bad..b5a3c2b0 100755
--- a/scripts/run-staged-pkg
+++ b/scripts/run-staged-pkg
@@ -1,6 +1,5 @@
#!/usr/bin/env node
-const { packages } = require('../lerna.json');
const { readFile, exists } = require('mz/fs');
const sgf = require('staged-git-files');
const execa = require('execa');
@@ -14,6 +13,8 @@ const path = require('path');
const uniq = require('lodash.uniq');
const argv = require('yargs').argv;
const checksum = require('checksum');
+const { lstatSync, readdirSync } = require('fs');
+const { join } = require('path');
const ROOT = path.join(__dirname, '..');
const getStaged = awaitify(sgf);
@@ -111,7 +112,13 @@ const runLintAndGitAdd = async (staged, pkgs) => {
};
const gather = async () => {
- const locations = await globby(packages, {
+ const isDirectory = source => lstatSync(source).isDirectory();
+ const getDirectories = source =>
+ readdirSync(source)
+ .map(name => join(source, name))
+ .filter(isDirectory);
+
+ const locations = await globby(getDirectories('./packages'), {
cwd: ROOT
});
diff --git a/yarn.lock b/yarn.lock
index 24f34ffd..e8de6299 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -220,7 +220,7 @@ ansi-align@^2.0.0:
dependencies:
string-width "^2.0.0"
-ansi-escapes@^1.4.0:
+ansi-escapes@^1.1.0, ansi-escapes@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
@@ -1974,6 +1974,10 @@ bytes@2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a"
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+
cacache@^9.2.9:
version "9.2.9"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.2.9.tgz#f9d7ffe039851ec94c28290662afa4dd4bb9e8dd"
@@ -1992,6 +1996,12 @@ cacache@^9.2.9:
unique-filename "^1.1.0"
y18n "^3.2.1"
+cachedir@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-1.1.1.tgz#e1363075ea206a12767d92bb711c8a2f76a10f62"
+ dependencies:
+ os-homedir "^1.0.1"
+
caching-transform@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
@@ -2274,6 +2284,12 @@ cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
+cli-cursor@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ dependencies:
+ restore-cursor "^1.0.1"
+
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
@@ -2483,6 +2499,26 @@ commander@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
+commitizen@^2.9.6:
+ version "2.9.6"
+ resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-2.9.6.tgz#c0d00535ef264da7f63737edfda4228983fa2291"
+ dependencies:
+ cachedir "^1.1.0"
+ chalk "1.1.3"
+ cz-conventional-changelog "1.2.0"
+ dedent "0.6.0"
+ detect-indent "4.0.0"
+ find-node-modules "1.0.4"
+ find-root "1.0.0"
+ fs-extra "^1.0.0"
+ glob "7.1.1"
+ inquirer "1.2.3"
+ lodash "4.17.2"
+ minimist "1.2.0"
+ path-exists "2.1.0"
+ shelljs "0.7.6"
+ strip-json-comments "2.0.1"
+
common-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/common-dir/-/common-dir-1.0.1.tgz#4fd872085ebc5f262d9cc23b0ff34b3e457677f0"
@@ -2530,7 +2566,7 @@ concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-concat-stream@^1.4.10, concat-stream@^1.5.0, concat-stream@^1.6.0:
+concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
dependencies:
@@ -2796,6 +2832,10 @@ conventional-changelog@^1.1.5:
conventional-changelog-jscs "^0.1.0"
conventional-changelog-jshint "^0.2.0"
+conventional-commit-types@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946"
+
conventional-commits-filter@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz#6fc2a659372bc3f2339cf9ffff7e1b0344b93039"
@@ -3208,6 +3248,17 @@ cyclist@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
+cz-conventional-changelog@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz#2bca04964c8919b23f3fd6a89ef5e6008b31b3f8"
+ dependencies:
+ conventional-commit-types "^2.0.0"
+ lodash.map "^4.5.1"
+ longest "^1.0.1"
+ pad-right "^0.2.2"
+ right-pad "^1.0.1"
+ word-wrap "^1.0.3"
+
d3-array@1, d3-array@1.2.0, d3-array@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.0.tgz#147d269720e174c4057a7f42be8b0f3f2ba53108"
@@ -3511,11 +3562,15 @@ decompress-response@^3.2.0:
dependencies:
mimic-response "^1.0.0"
+dedent@0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb"
+
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
-deep-equal@^1.0.0, deep-equal@^1.0.1:
+deep-equal@^1.0.0, deep-equal@^1.0.1, deep-equal@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
@@ -3554,7 +3609,7 @@ define-properties@^1.1.2:
foreach "^2.0.5"
object-keys "^1.0.8"
-defined@^1.0.0:
+defined@^1.0.0, defined@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
@@ -3595,10 +3650,6 @@ delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-depd@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
-
depd@1.1.1, depd@~1.1.0, depd@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
@@ -3614,7 +3665,13 @@ destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-detect-indent@^4.0.0:
+detect-file@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
+ dependencies:
+ fs-exists-sync "^0.1.0"
+
+detect-indent@4.0.0, detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
dependencies:
@@ -3960,7 +4017,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.7.0:
+es-abstract@^1.5.0, es-abstract@^1.7.0:
version "1.8.2"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee"
dependencies:
@@ -4458,8 +4515,8 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
safe-buffer "^5.1.1"
exec-sh@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10"
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38"
dependencies:
merge "^1.1.3"
@@ -4505,6 +4562,10 @@ execall@^1.0.0:
dependencies:
clone-regexp "^1.0.0"
+exit-hook@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@@ -4517,6 +4578,12 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
+expand-tilde@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
+ dependencies:
+ os-homedir "^1.0.1"
+
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
@@ -4580,6 +4647,14 @@ extend@^3.0.0, extend@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+external-editor@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b"
+ dependencies:
+ extend "^3.0.0"
+ spawn-sync "^1.0.15"
+ tmp "^0.0.29"
+
external-editor@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
@@ -4681,8 +4756,8 @@ fb-watchman@^2.0.0:
bser "^2.0.0"
fbjs@^0.8.5, fbjs@^0.8.9:
- version "0.8.14"
- resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.15.tgz#4f0695fdfcc16c37c0b07facec8cb4c4091685b9"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
@@ -4692,6 +4767,13 @@ fbjs@^0.8.5, fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
+figures@^1.3.5:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
@@ -4772,10 +4854,21 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0"
pkg-dir "^2.0.0"
+find-node-modules@1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-1.0.4.tgz#b6deb3cccb699c87037677bcede2c5f5862b2550"
+ dependencies:
+ findup-sync "0.4.2"
+ merge "^1.2.0"
+
find-rc@3.0.x:
version "3.0.1"
resolved "https://registry.yarnpkg.com/find-rc/-/find-rc-3.0.1.tgz#54a4178370f10bc9371fa8d1b2c2809a2afa0cce"
+find-root@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a"
+
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -4789,6 +4882,15 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
+findup-sync@0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5"
+ dependencies:
+ detect-file "^0.1.0"
+ is-glob "^2.0.1"
+ micromatch "^2.3.7"
+ resolve-dir "^0.1.0"
+
findup@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb"
@@ -4824,6 +4926,12 @@ fn-name@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
+for-each@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
+ dependencies:
+ is-function "~1.0.0"
+
for-in@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -4888,6 +4996,10 @@ from@~0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+
fs-extra@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
@@ -4916,6 +5028,14 @@ fs-extra@^0.30.0:
path-is-absolute "^1.0.0"
rimraf "^2.2.8"
+fs-extra@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^2.1.0"
+ klaw "^1.0.0"
+
fs-extra@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
@@ -4969,7 +5089,7 @@ fullstore@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fullstore/-/fullstore-1.1.0.tgz#a7a8b00ca07d86faca05fb825c45e5d1c3bba97e"
-function-bind@^1.0.2, function-bind@^1.1.1:
+function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -5139,7 +5259,18 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob@7.x.x, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2:
+glob@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@7.x.x, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -5178,6 +5309,22 @@ global-modules@1.0.0, global-modules@^1.0.0:
is-windows "^1.0.1"
resolve-dir "^1.0.0"
+global-modules@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
+ dependencies:
+ global-prefix "^0.1.4"
+ is-windows "^0.2.0"
+
+global-prefix@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
+ dependencies:
+ homedir-polyfill "^1.0.0"
+ ini "^1.3.4"
+ is-windows "^0.2.0"
+ which "^1.2.12"
+
global-prefix@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
@@ -5308,11 +5455,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6,
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
graphi@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/graphi/-/graphi-3.0.0.tgz#78efaa2c47b9f946e6441b6217e75f8cced1ea30"
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/graphi/-/graphi-3.1.0.tgz#e1dac4ab8dfd0f634b4d3672ed08b5815584e041"
dependencies:
boom "^5.2.0"
- graphql "^0.10.5"
+ graphql "^0.11.2"
graphql-server-module-graphiql "^1.1.2"
graphql-anywhere@^3.0.1:
@@ -5329,7 +5476,7 @@ graphql-tag@^2.0.0, graphql-tag@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.4.2.tgz#6a63297d8522d03a2b72d26f1b239aab343840cd"
-graphql@^0.10.0, graphql@^0.10.3, graphql@^0.10.5:
+graphql@^0.10.0, graphql@^0.10.3:
version "0.10.5"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.10.5.tgz#c9be17ca2bdfdbd134077ffd9bbaa48b8becd298"
dependencies:
@@ -5461,7 +5608,7 @@ has-yarn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7"
-has@^1.0.1:
+has@^1.0.1, has@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
@@ -5563,7 +5710,7 @@ home-or-tmp@^2.0.0:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
-homedir-polyfill@^1.0.1:
+homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
dependencies:
@@ -5648,16 +5795,7 @@ http-deceiver@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
-http-errors@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
- dependencies:
- depd "1.1.0"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
-http-errors@^1.3.0, http-errors@~1.6.1, http-errors@~1.6.2:
+http-errors@1.6.2, http-errors@^1.3.0, http-errors@~1.6.1, http-errors@~1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
@@ -5829,6 +5967,25 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
+inquirer@1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918"
+ dependencies:
+ ansi-escapes "^1.1.0"
+ chalk "^1.0.0"
+ cli-cursor "^1.0.1"
+ cli-width "^2.0.0"
+ external-editor "^1.1.0"
+ figures "^1.3.5"
+ lodash "^4.3.0"
+ mute-stream "0.0.6"
+ pinkie-promise "^2.0.0"
+ run-async "^2.2.0"
+ rx "^4.1.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.0"
+ through "^2.3.6"
+
inquirer@3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175"
@@ -6024,7 +6181,7 @@ is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-is-function@^1.0.1:
+is-function@^1.0.1, is-function@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
@@ -6200,6 +6357,10 @@ is-whitespace-character@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz#9ae0176f3282b65457a1992cdb084f8a5f833e3b"
+is-windows@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
+
is-windows@^1.0.0, is-windows@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
@@ -6875,8 +7036,8 @@ joi@8.1.x:
topo "2.x.x"
joyent-ui-toolkit@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/joyent-ui-toolkit/-/joyent-ui-toolkit-1.2.0.tgz#f59c169ad06cfd89615f562866382f9fd161be3f"
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/joyent-ui-toolkit/-/joyent-ui-toolkit-1.2.1.tgz#b2cbdffc64f8f1ce52ee5fed2bc78151cc6bfbf9"
dependencies:
babel-cli "^6.26.0"
babel-generator "^6.26.0"
@@ -7217,7 +7378,7 @@ ldjson-stream@^1.2.1:
lerna-wizard@ramitos/lerna-wizard#7bcdc11:
version "1.0.9"
- resolved "https://codeload.github.com/ramitos/lerna-wizard/tar.gz/7bcdc11838452cbc5450aba05dffe033efebcdf1"
+ resolved "https://codeload.github.com/ramitos/lerna-wizard/tar.gz/7bcdc11"
dependencies:
babel-polyfill "^6.23.0"
execa "^0.6.3"
@@ -7533,6 +7694,10 @@ lodash.keys@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205"
+lodash.map@^4.5.1:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
+
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -7582,6 +7747,10 @@ lodash.uniqby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
+lodash@4.17.2:
+ version "4.17.2"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
+
lodash@4.17.4, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.7.0:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -7810,7 +7979,7 @@ merge-source-map@^1.0.2:
dependencies:
source-map "^0.5.6"
-merge@^1.1.3:
+merge@^1.1.3, merge@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
@@ -7818,7 +7987,7 @@ methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-micromatch@^2.1.5, micromatch@^2.3.11:
+micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
dependencies:
@@ -7904,14 +8073,14 @@ minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
minimist@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de"
-minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
@@ -8006,6 +8175,10 @@ multimatch@^2.0.0, multimatch@^2.1.0:
arrify "^1.0.0"
minimatch "^3.0.0"
+mute-stream@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
+
mute-stream@0.0.7, mute-stream@~0.0.4:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -8104,8 +8277,8 @@ node-dir@^0.1.10:
minimatch "^3.0.2"
node-fetch@^1.0.1, node-fetch@^1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
+ 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"
@@ -8156,8 +8329,8 @@ node-notifier@^5.0.2:
which "^1.2.12"
node-pre-gyp@^0.6.36:
- version "0.6.36"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
+ version "0.6.37"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz#3c872b236b2e266e4140578fe1ee88f693323a05"
dependencies:
mkdirp "^0.5.1"
nopt "^4.0.1"
@@ -8166,6 +8339,7 @@ node-pre-gyp@^0.6.36:
request "^2.81.0"
rimraf "^2.6.1"
semver "^5.3.0"
+ tape "^4.6.3"
tar "^2.2.1"
tar-pack "^3.4.0"
@@ -8335,6 +8509,10 @@ object-hash@^1.1.4:
version "1.1.8"
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c"
+object-inspect@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.3.0.tgz#5b1eb8e6742e2ee83342a637034d844928ba2f6d"
+
object-keys@^1.0.6, object-keys@^1.0.7, object-keys@^1.0.8, object-keys@^1.0.9:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
@@ -8387,6 +8565,10 @@ onecolor@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.4.tgz#75a46f80da6c7aaa5b4daae17a47198bd9652494"
+onetime@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+
onetime@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
@@ -8473,6 +8655,10 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
+os-shim@^0.1.2:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
+
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -8557,6 +8743,12 @@ package-json@^4.0.0:
registry-url "^3.0.3"
semver "^5.1.0"
+pad-right@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774"
+ dependencies:
+ repeat-string "^1.5.2"
+
pako@~0.2.0:
version "0.2.9"
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -8657,7 +8849,7 @@ path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
-path-exists@^2.0.0:
+path-exists@2.1.0, path-exists@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
dependencies:
@@ -9486,11 +9678,11 @@ range-parser@^1.0.3, range-parser@~1.2.0:
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
raw-body@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.0.tgz#f79ce1acacaba5b6362d33454d785d7129f4bc67"
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.1.tgz#30f95e2a67a14e2e4413d8d51fdd92c877e8f2ed"
dependencies:
- bytes "2.5.0"
- http-errors "1.6.1"
+ bytes "3.0.0"
+ http-errors "1.6.2"
iconv-lite "0.4.18"
unpipe "1.0.0"
@@ -10006,6 +10198,12 @@ recast@0.12.6, recast@^0.12.6:
private "~0.1.5"
source-map "~0.5.0"
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ dependencies:
+ resolve "^1.1.6"
+
recursive-readdir@2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99"
@@ -10390,6 +10588,13 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
+resolve-dir@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
+ dependencies:
+ expand-tilde "^1.2.2"
+ global-modules "^0.2.3"
+
resolve-dir@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -10421,7 +10626,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.2.0, resolve@^1.3.2:
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0, resolve@^1.3.2, resolve@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
dependencies:
@@ -10462,6 +10667,13 @@ restify-errors@^3.1.0:
lodash "^3.10.1"
verror "^1.6.0"
+restore-cursor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ dependencies:
+ exit-hook "^1.0.0"
+ onetime "^1.0.0"
+
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
@@ -10469,6 +10681,12 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+resumer@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759"
+ dependencies:
+ through "~2.3.4"
+
retext-equality@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/retext-equality/-/retext-equality-3.2.0.tgz#65d20ed4958e977814c9e60cc3dbe741b36b9b35"
@@ -10568,6 +10786,10 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
+right-pad@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0"
+
rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
@@ -10647,6 +10869,10 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+rx@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
+
safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -10819,6 +11045,14 @@ shell-quote@1.6.1:
array-reduce "~0.0.0"
jsonify "~0.0.0"
+shelljs@0.7.6:
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad"
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
shellwords@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
@@ -11014,6 +11248,13 @@ sparkles@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
+spawn-sync@^1.0.15:
+ version "1.0.15"
+ resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
+ dependencies:
+ concat-stream "^1.4.7"
+ os-shim "^0.1.2"
+
spawn-wrap@^1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.8.tgz#fa2a79b990cbb0bb0018dca6748d88367b19ec31"
@@ -11249,6 +11490,14 @@ string-width@^2.0.0, string-width@^2.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
+string.prototype.trim@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.5.0"
+ function-bind "^1.0.2"
+
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -11324,7 +11573,7 @@ strip-indent@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
-strip-json-comments@~2.0.1:
+strip-json-comments@2.0.1, strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -11439,7 +11688,7 @@ stylelint-processor-styled-components@^0.4.0:
stylelint-processor-styled-components@styled-components/stylelint-processor-styled-components#2a33b5f:
version "0.2.1"
- resolved "https://codeload.github.com/styled-components/stylelint-processor-styled-components/tar.gz/2a33b5ffbaef51a37266e6c2097a50141944667a"
+ resolved "https://codeload.github.com/styled-components/stylelint-processor-styled-components/tar.gz/2a33b5f"
dependencies:
babel-traverse "^6.16.0"
babylon "^6.12.0"
@@ -11711,6 +11960,24 @@ tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
+tape@^4.6.3:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/tape/-/tape-4.8.0.tgz#f6a9fec41cc50a1de50fa33603ab580991f6068e"
+ dependencies:
+ deep-equal "~1.0.1"
+ defined "~1.0.0"
+ for-each "~0.3.2"
+ function-bind "~1.1.0"
+ glob "~7.1.2"
+ has "~1.0.1"
+ inherits "~2.0.3"
+ minimist "~1.2.0"
+ object-inspect "~1.3.0"
+ resolve "~1.4.0"
+ resumer "~0.0.0"
+ string.prototype.trim "~1.1.2"
+ through "~2.3.8"
+
tar-fs@~1.12.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.12.0.tgz#a6a80553d8a54c73de1d0ae0e79de77035605e1d"
@@ -11849,7 +12116,7 @@ through2@^2.0.0, through2@^2.0.2, through2@~2.0.0:
readable-stream "^2.1.5"
xtend "~4.0.1"
-through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4:
+through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -11899,6 +12166,12 @@ title-case@^2.1.1:
no-case "^2.2.0"
upper-case "^1.0.3"
+tmp@^0.0.29:
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0"
+ dependencies:
+ os-tmpdir "~1.0.1"
+
tmp@^0.0.31:
version "0.0.31"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
@@ -12802,6 +13075,10 @@ window-size@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
+word-wrap@^1.0.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"