summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E. Blair <jeblair@redhat.com>2018-09-29 11:50:22 -0700
committerJames E. Blair <jeblair@redhat.com>2018-09-29 11:51:43 -0700
commit3dba813c643ec8f4b3323c2a09c6aecf8ad4d338 (patch)
tree4931b06e75e56b9d0480f24bb09c13993f6fcaec
parentca199eb9dbb64e25490ee5803e4f18c91f34681d (diff)
downloadzuul-3dba813c643ec8f4b3323c2a09c6aecf8ad4d338.tar.gz
Revert "web: rewrite interface in react"
Revert "Fix publish-openstack-javascript-content" This reverts commit ca199eb9dbb64e25490ee5803e4f18c91f34681d. This reverts commit 1082faae958bffa719ab333c3f5ae9776a8b26d7. This appears to remove the tarball publishing system that we rely on. Change-Id: Id746fb826dfc01b157c5b772adc1d2991ddcd93a
-rw-r--r--.babelrc8
-rw-r--r--.eslintrc7
-rw-r--r--.zuul.yaml34
-rw-r--r--MANIFEST.in1
-rw-r--r--TESTING.rst6
-rw-r--r--doc/source/admin/installation.rst101
-rw-r--r--doc/source/developer/javascript.rst133
-rw-r--r--package.json86
-rw-r--r--playbooks/dashboard/multi.yaml21
-rw-r--r--playbooks/dashboard/run.yaml27
-rw-r--r--releasenotes/notes/react-zuul-a593c7627ca22b37.yaml11
-rwxr-xr-xtests/unit/test_web.py4
-rw-r--r--tests/unit/test_web_urls.py16
-rw-r--r--[-rwxr-xr-x]tools/pip.sh6
-rw-r--r--tsconfig.json17
-rw-r--r--tslint.json7
-rw-r--r--web/.eslintrc23
-rw-r--r--web/.gitignore1
-rw-r--r--web/.jshintignore1
-rw-r--r--web/.jshintrc21
-rw-r--r--web/app-routing.module.ts84
-rw-r--r--web/app.component.ts28
-rw-r--r--web/app.module.ts73
l---------web/build1
-rw-r--r--web/builds/build.ts28
-rw-r--r--web/builds/builds.component.html67
-rw-r--r--web/builds/builds.component.ts78
-rw-r--r--web/config/main.ejs24
-rw-r--r--web/config/status-basic.json178
-rw-r--r--web/config/status-openstack.json312
-rw-r--r--web/config/status-tree.json1
-rw-r--r--web/config/webpack.common.js147
-rw-r--r--web/config/webpack.dev.js23
-rw-r--r--web/config/webpack.lint.js47
-rw-r--r--web/config/webpack.prod.js32
-rw-r--r--web/core/core.module.ts24
-rw-r--r--web/images/black.pngbin0 -> 267 bytes
-rw-r--r--web/images/green.pngbin0 -> 283 bytes
-rw-r--r--web/images/grey.pngbin0 -> 282 bytes
-rw-r--r--web/images/line-angle.png (renamed from web/src/images/line-angle.png)bin262 -> 262 bytes
-rw-r--r--web/images/line-t.png (renamed from web/src/images/line-t.png)bin204 -> 204 bytes
-rw-r--r--web/images/line.png (renamed from web/src/images/line.png)bin183 -> 183 bytes
-rw-r--r--web/images/red.pngbin0 -> 286 bytes
-rw-r--r--web/jobs/details.ts17
-rw-r--r--web/jobs/job.ts25
-rw-r--r--web/jobs/jobs.component.html47
-rw-r--r--web/jobs/jobs.component.ts54
-rw-r--r--web/main.ts22
-rw-r--r--web/navigation/navigation.component.html30
-rw-r--r--web/navigation/navigation.component.ts34
-rw-r--r--web/package.json41
-rw-r--r--web/public/favicon.icobin15086 -> 0 bytes
-rw-r--r--web/public/index.html17
-rw-r--r--web/public/manifest.json15
-rw-r--r--web/src/App.jsx162
-rw-r--r--web/src/App.test.jsx102
-rw-r--r--web/src/api.js133
-rw-r--r--web/src/containers/TableFilters.jsx237
-rw-r--r--web/src/containers/status/Change.jsx99
-rw-r--r--web/src/containers/status/ChangePanel.jsx317
-rw-r--r--web/src/containers/status/ChangePanel.test.jsx64
-rw-r--r--web/src/containers/status/ChangeQueue.jsx54
-rw-r--r--web/src/containers/status/Pipeline.jsx136
-rw-r--r--web/src/images/logo.pngbin930 -> 0 bytes
-rw-r--r--web/src/images/logo.svg83
-rw-r--r--web/src/index.css122
-rw-r--r--web/src/index.js40
-rw-r--r--web/src/pages/Builds.jsx159
-rw-r--r--web/src/pages/Jobs.jsx99
-rw-r--r--web/src/pages/Status.jsx289
-rw-r--r--web/src/pages/Stream.jsx158
-rw-r--r--web/src/pages/Tenants.jsx79
-rw-r--r--web/src/reducers.js94
-rw-r--r--web/src/registerServiceWorker.js119
-rw-r--r--web/src/routes.js52
-rw-r--r--web/status/jquery.zuul.js944
-rw-r--r--web/status/status.component.html32
-rw-r--r--web/status/status.component.ts57
-rw-r--r--web/status/zuulStart.js102
-rw-r--r--web/stream/stream.component.css18
-rw-r--r--web/stream/stream.component.html24
-rw-r--r--web/stream/stream.component.ts90
-rw-r--r--web/styles/zuul.css65
-rw-r--r--web/tenants/tenant.ts18
-rw-r--r--web/tenants/tenants.component.html40
-rw-r--r--web/tenants/tenants.component.ts38
-rw-r--r--web/zuul/description.ts18
-rw-r--r--web/zuul/info.ts18
-rw-r--r--web/zuul/infoResponse.ts19
-rw-r--r--web/zuul/zuul.service.ts152
-rw-r--r--webpack.config.js3
-rw-r--r--yarn.lock (renamed from web/yarn.lock)5597
-rw-r--r--zuul/_setup_hook.py12
-rwxr-xr-xzuul/web/__init__.py44
-rw-r--r--zuul/web/static/.keep0
95 files changed, 5914 insertions, 5955 deletions
diff --git a/.babelrc b/.babelrc
new file mode 100644
index 000000000..6df7c0c92
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,8 @@
+{
+ "presets": ['env'],
+ "plugins": [[
+ "angularjs-annotate", {
+ "explicitOnly": false
+ }
+ ]]
+}
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 000000000..a6f53586d
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,7 @@
+parser: babel-eslint
+plugins:
+ - standard
+rules:
+ camelcase: off
+extends:
+ - ./node_modules/eslint-config-standard/eslintrc.json
diff --git a/.zuul.yaml b/.zuul.yaml
index 53eb7e091..b2e3c5457 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -42,20 +42,27 @@
- job:
name: zuul-build-dashboard
parent: build-javascript-content
- success-url: 'npm/html/'
+ success-url: 'npm/html/status.html'
files:
+ - package.json
+ - tsconfig.json
+ - tslint.json
- web/.*
+ - webpack.config.js
+ - yarn.lock
vars:
- javascript_content_dir: "../zuul/web/static"
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
+ javascript_content_dir: zuul/web/static
zuul_api_url: https://zuul.openstack.org
run: playbooks/dashboard/run.yaml
- job:
name: zuul-build-dashboard-multi-tenant
parent: zuul-build-dashboard
+ success-url: 'npm/html/tenants.html'
+ post-run: playbooks/dashboard/multi.yaml
vars:
zuul_api_url: https://softwarefactory-project.io/zuul
+ javascript_copy_links: false
- project:
check:
@@ -75,15 +82,15 @@
- zuul-build-dashboard-multi-tenant
- nodejs-npm-run-lint:
vars:
- node_version: 8
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
- - nodejs-npm-run-test:
- vars:
node_version: 8
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
success-url: 'npm/reports/bundle.html'
files:
+ - package.json
+ - tsconfig.json
+ - tslint.json
- web/.*
+ - webpack.config.js
+ - yarn.lock
- zuul-stream-functional
- zuul-tox-remote
- pbrx-build-container-images:
@@ -107,15 +114,15 @@
- zuul-build-dashboard
- nodejs-npm-run-lint:
vars:
- node_version: 8
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
- - nodejs-npm-run-test:
- vars:
node_version: 8
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
success-url: 'npm/reports/bundle.html'
files:
+ - package.json
+ - tsconfig.json
+ - tslint.json
- web/.*
+ - webpack.config.js
+ - yarn.lock
- zuul-stream-functional
- zuul-tox-remote
- pbrx-build-container-images:
@@ -128,7 +135,6 @@
- publish-openstack-javascript-content:
vars:
node_version: 8
- zuul_work_dir: "{{ zuul.project.src_dir }}/web"
- openstackzuul-pbrx-push-container-images:
vars:
pbrx_prefix: zuul
diff --git a/MANIFEST.in b/MANIFEST.in
index 3a94f83b3..429cf108e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,7 +1,6 @@
include AUTHORS
include ChangeLog
include zuul/web/static/*
-include zuul/web/static/static/*/*
exclude .gitignore
exclude .gitreview
diff --git a/TESTING.rst b/TESTING.rst
index f4172755b..24da82da9 100644
--- a/TESTING.rst
+++ b/TESTING.rst
@@ -38,15 +38,11 @@ As of zuul v3, a running zookeeper is required to execute tests.
*Install javascript dependencies*::
- pushd web
yarn install
- popd
*Build javascript assets*::
- pushd web
- yarn build
- popd
+ npm run build:dev
Run The Tests
-------------
diff --git a/doc/source/admin/installation.rst b/doc/source/admin/installation.rst
index 3c9f15a41..3be964a2f 100644
--- a/doc/source/admin/installation.rst
+++ b/doc/source/admin/installation.rst
@@ -95,7 +95,7 @@ Static External
Sub-URL
Serve a Zuul dashboard from a location below the root URL as part of
presenting integration with other application.
- https://softwarefactory-project.io/zuul/ is an example of a Zuul dashboard
+ https://softwarefactory-project.io/zuul3/ is an example of a Zuul dashboard
that is being served from a Sub-URL.
None of those make any sense for simple non-production oriented deployments, so
@@ -121,71 +121,18 @@ simplest reverse-proxy case is::
Static Offload
--------------
-To have the Reverse Proxy serve the static html/javascript assets instead of
+To have the Reverse Proxy serve the static html/javscript assets instead of
proxying them to the REST layer, register the location where you unpacked
-the web application as the document root and add rewrite rules::
+the web application as the document root and add a simple rewrite rule::
- <Directory /usr/share/zuul>
+ DocumentRoot /var/lib/html
+ <Directory /var/lib/html>
Require all granted
</Directory>
- Alias / /usr/share/zuul/
- <Location />
- RewriteEngine on
- RewriteBase /
- # Rewrite api to the zuul-web endpoint
- RewriteRule api/tenant/(.*)/console-stream ws://localhost:9000/api/tenant/$1/console-stream [P,L]
- RewriteRule api/(.*)$ http://localhost:9000/api/$1 [P,L]
- # Backward compatible rewrite
- RewriteRule t/(.*)/(.*).html(.*) /t/$1/$2$3 [R=301,L,NE]
-
- # Don't rewrite files or directories
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.html [L]
- </Location>
-
-
-Sub directory serving
----------------------
-
-The web application needs to be rebuild to update the internal location of
-the static files. Set the homepage setting in the package.json to an
-absolute path or url. For example, to deploy the web interface through a
-'/zuul/' sub directory:
-
-.. note::
-
- The web dashboard source code and package.json are located in the ``web``
- directory. All the yarn commands need to be executed from the ``web``
- directory.
-
-.. code-block:: bash
-
- sed -e 's#"homepage": "/"#"homepage": "/zuul/"#' -i package.json
- yarn build
-
-Then assuming the web application is unpacked in /usr/share/zuul,
-add the following rewrite rules::
-
- <Directory /usr/share/zuul>
- Require all granted
- </Directory>
- Alias /zuul /usr/share/zuul/
- <Location /zuul>
- RewriteEngine on
- RewriteBase /zuul
- # Rewrite api to the zuul-web endpoint
- RewriteRule api/tenant/(.*)/console-stream ws://localhost:9000/api/tenant/$1/console-stream [P,L]
- RewriteRule api/(.*)$ http://localhost:9000/api/$1 [P,L]
- # Backward compatible rewrite
- RewriteRule t/(.*)/(.*).html(.*) /t/$1/$2$3 [R=301,L,NE]
-
- # Don't rewrite files or directories
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /zuul/index.html [L]
- </Location>
-
+ RewriteEngine on
+ RewriteRule ^/t/.*/(.*)$ /$1 [L]
+ RewriteRule ^/api/tenant/(.*)/console-stream ws://localhost:9000/api/tenant/$1/console-stream [P]
+ RewriteRule ^/api/(.*)$ http://localhost:9000/api/$1 [P]
White Labeled Tenant
--------------------
@@ -200,27 +147,14 @@ rule to ensure connection webhooks don't try to get put into the tenant scope.
Assuming the zuul tenant name is "example", the rewrite rules are::
- <Directory /usr/share/zuul>
+ DocumentRoot /var/lib/html
+ <Directory /var/lib/html>
Require all granted
</Directory>
- Alias / /usr/share/zuul/
- <Location />
- RewriteEngine on
- RewriteBase /
- # Rewrite api to the zuul-web endpoint
- RewriteRule api/connection/(.*)$ http://localhost:9000/api/connection/$1 [P,L]
- RewriteRule api/console-stream ws://localhost:9000/api/tenant/example/console-stream [P,L]
- RewriteRule api/(.*)$ http://localhost:9000/api/tenant/example/$1 [P,L]
- # Backward compatible rewrite
- RewriteRule t/(.*)/(.*).html(.*) /t/$1/$2$3 [R=301,L,NE]
-
- # Don't rewrite files or directories
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.html [L]
- </Location>
-
-
+ RewriteEngine on
+ RewriteRule ^/api/connection/(.*)$ http://localhost:9000/api/connection/$1 [P]
+ RewriteRule ^/api/console-stream ws://localhost:9000/api/tenant/example/console-stream [P]
+ RewriteRule ^/api/(.*)$ http://localhost:9000/api/tenant/example/$1 [P]
Static External
---------------
@@ -231,8 +165,9 @@ Static External
dynamic url rewrite rules only works for white-labeled deployments.
In order to serve the zuul dashboard code from an external static location,
-``REACT_APP_ZUUl_API`` must be set at javascript build time:
+``ZUUL_API_URL`` must be set at javascript build time by passing the
+``--define`` flag to the ``npm build:dist`` command.
.. code-block:: bash
- REACT_APP_ZUUL_API='http://zuul-web.example.com' yarn build
+ npm build:dist -- --define "ZUUL_API_URL='http://zuul-web.example.com'"
diff --git a/doc/source/developer/javascript.rst b/doc/source/developer/javascript.rst
index 7a1c5d397..7e85d6b33 100644
--- a/doc/source/developer/javascript.rst
+++ b/doc/source/developer/javascript.rst
@@ -6,15 +6,9 @@ is managed using Javascript toolchains. It is intended to be served by zuul-web
directly from zuul/web/static in the simple case, or to be published to
an alternate static web location, such as an Apache server.
-The web dashboard is written in `React`_ and `Patternfly`_ and is
-managed by `create-react-app`_ and `yarn`_ which in turn both assume a
-functioning and recent `nodejs`_ installation.
-
-.. note::
-
- The web dashboard source code and package.json are located in the ``web``
- directory. All the yarn commands need to be executed from the ``web``
- directory.
+The web dashboard is written in `Typescript`_ and `Angular`_ and is
+managed by `yarn`_ and `webpack`_ which in turn both assume a functioning
+and recent `nodejs`_ installation.
For the impatient who don't want deal with javascript toolchains
----------------------------------------------------------------
@@ -104,27 +98,28 @@ conflicts is to first resolve the conflicts, if any, in ``package.json``. Then:
Which causes yarn to discard the ``yarn.lock`` file, recalculate the
dependencies and write new content.
-React Components
-----------------
+webpack asset management
+------------------------
-Each page is a React Component. For instance the status.html page code is
-``web/src/pages/status.jsx``.
+`webpack`_ takes care of bundling web assets for deployment, including tasks
+such as minifying and transpiling for older browsers. It takes a
+javascript-first approach, and generates a html file that includes the
+appropriate javascript and CSS to get going.
-Mapping of pages/urls to components can be found in the route list in
-``web/src/routes.js``.
+The main `webpack`_ config file is ``webpack.config.js``. In the Zuul tree that
+file is a stub file that includes either a dev or a prod environment from
+``web/config/webpack.dev.js`` or ``web/config/webpack.prod.js``. Most of the
+important bits are in ``web/config/webpack.common.js``.
-Here are some useful documentation about the different libraries:
+Angular Components
+------------------
-- https://reactjs.org/docs/getting-started.html
-- https://reacttraining.com/react-router/web/guides/philosophy
-- https://react-bootstrap.github.io/components/forms/
-- https://redux.js.org/introduction/coreconcepts
-- https://www.patternfly.org/pattern-library/
-- https://rawgit.com/patternfly/patternfly-react/gh-pages/
+Each page has an `Angular Component`_ associated with it. For instance, the
+``status.html`` page has code in ``web/status/status.component.ts`` and the
+relevant HTML can be found in ``web/status/status.component.html``.
-The gh-pages are built from storybook present in the patternfly-react
-repository. Sometime the 'View Info' is not enough and using grep in the
-repository may yield better documentation.
+Mapping of pages/urls to components can be found in the routing module in
+``web/app-routing.module.ts``.
Development
-----------
@@ -133,43 +128,68 @@ Building the code can be done with:
.. code-block:: bash
- yarn build
+ npm run build
zuul-web has a ``static`` route defined which serves files from
-``zuul/web/static``. ``yarn build`` will put the build output files
+``zuul/web/static``. ``npm run build`` will put the build output files
into the ``zuul/web/static`` directory so that zuul-web can serve them.
-Development server that handles things like reloading and
-hot-updating of code can be started with:
+There is a also a development-oriented version of that same command:
+
+.. code-block:: bash
+
+ npm run build:dev
+
+which will build for the ``dev`` environment. This causes some sample data
+to be bundled and included.
+
+Webpack includes a development server that handles things like reloading and
+hot-updating of code. The following:
+
+.. code-block:: bash
+
+ npm run start
+
+will build the code and launch the dev server on `localhost:8080`. It will
+be configured to use the API endpoint from OpenStack's Zuul. The
+``webpack-dev-server`` watches for changes to the files and
+re-compiles/refresh as needed.
.. code-block:: bash
- yarn start
+ npm run start:multi
-will build the code and launch the dev server on `localhost:3000`. Fake
-api response needs to be set in the ``web/public/api`` directory::
+will do the same but will be pointed at the SoftwareFactory Project Zuul, which
+is multi-tenant.
+
+Arbitrary command line options will be passed through after a ``--`` such as:
.. code-block:: bash
- mkdir public/api/
- for route in info status jobs builds; do
- curl -o public/api/${route} https://zuul.openstack.org/api/${route}
- done
+ npm run start -- --open-file='status.html'
+
+That's kind of annoying though, so additional targets exist for common tasks:
-To use an existing zuul api, uses the REACT_APP_ZUUl_API environment
-variable:
+Run status against `basic` built-in demo data.
.. code-block:: bash
- # Use openstack zuul's api:
- yarn start:openstack
+ npm run start:basic
+
+Run status against `openstack` built-in demo data
- # Use software-factory multi-tenant zuul's api:
- yarn start:multi
+.. code-block:: bash
+
+ npm run start:openstack
- # Use a custom zuul:
- REACT_APP_ZUUL_API="https://zuul.example.com/api/" yarn start
+Run status against `tree` built-in demo data.
+.. code-block:: bash
+
+ npm run start:tree
+
+Additional run commands can be added in `package.json` in the ``scripts``
+section.
Deploying
---------
@@ -179,16 +199,31 @@ by zuul-web from its ``static`` route. In order to make sure this works
properly, the javascript build needs to be performed so that the javascript
files are in the ``zuul/web/static`` directory. Because the javascript
build outputs into the ``zuul/web/static`` directory, as long as
-``yarn build`` has been done before ``pip install .`` or
+``npm run build`` has been done before ``pip install .`` or
``python setup.py sdist``, all the files will be where they need to be.
As long as `yarn`_ is installed, the installation of zuul will run
-``yarn build`` appropriately.
+``npm run build`` appropriately.
+
+Debugging minified code
+-----------------------
+
+Both the ``dev`` and ``prod`` ennvironments use the same `devtool`_
+called ``source-map`` which makes debugging errors easier by including mapping
+information from the minified and bundled resources to their approriate
+non-minified source code locations. Javascript errors in the browser as seen
+in the developer console can be clicked on and the appropriate actual source
+code location will be shown.
+
+``source-map`` is considered an appropriate `devtool`_ for production, but has
+the downside that it is slower to update. However, since it includes the most
+complete mapping information and doesn't impact execution performance, so in
+our case we use it for both.
.. _yarn: https://yarnpkg.com/en/
.. _nodejs: https://nodejs.org/
.. _webpack: https://webpack.js.org/
.. _devtool: https://webpack.js.org/configuration/devtool/#devtool
.. _nodeenv: https://pypi.org/project/nodeenv
-.. _React: https://reactjs.org/
-.. _Patternfly: https://www.patternfly.org/
-.. _create-react-app: https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md
+.. _Angular: https://angular.io
+.. _Angular Component: https://angular.io/guide/architecture-components
+.. _Typescript: https://www.typescriptlang.org/
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..7830848ff
--- /dev/null
+++ b/package.json
@@ -0,0 +1,86 @@
+{
+ "name": "@zuul-ci/dashboard",
+ "version": "1.0.0",
+ "description": "Web Dashboard for Zuul",
+ "main": "web/main.ts",
+ "repository": "https://git.zuul-ci.org/zuul",
+ "author": "OpenStack Infra",
+ "license": "Apache-2.0",
+ "babel": {
+ "presets": [
+ "env"
+ ]
+ },
+ "dependencies": {
+ "@angular/common": "^6.0.3",
+ "@angular/compiler": "^6.0.3",
+ "@angular/core": "^6.0.3",
+ "@angular/forms": "^6.0.3",
+ "@angular/platform-browser": "^6.0.3",
+ "@angular/platform-browser-dynamic": "^6.0.3",
+ "@angular/router": "^6.0.3",
+ "bootstrap": "3.1.1",
+ "core-js": "^2.5.3",
+ "graphitejs": "https://github.com/prestontimmons/graphitejs/archive/master.tar.gz",
+ "jquery": "^3.3.1",
+ "jquery-visibility": "https://github.com/mathiasbynens/jquery-visibility/archive/master.tar.gz",
+ "reflect-metadata": "^0.1.12",
+ "rxjs": "^6.2.0",
+ "rxjs-compat": "^6.0.0-rc.0",
+ "zone.js": "^0.8.26"
+ },
+ "scripts": {
+ "build": "npm run build:dist",
+ "build:dev": "webpack --env=dev",
+ "build:dist": "webpack --env=prod",
+ "build:dist-with-depends": "yarn install && npm run build:dist",
+ "format": "tslint --project tsconfig.json -c tslint.json --fix",
+ "lint": "webpack --env=lint",
+ "start": "webpack-dev-server --env=dev --define ZUUL_API_URL=\"'https://zuul.openstack.org'\" --open-page='status.html'",
+ "start:multi": "webpack-dev-server --env=dev --define ZUUL_API_URL=\"'https://softwarefactory-project.io/zuul'\" --open-page='tenants.html'",
+ "start:basic": "webpack-dev-server --env=dev --open-page='status.html?demo=basic'",
+ "start:openstack": "webpack-dev-server --env=dev --open-page='status.html?demo=openstack'",
+ "start:tree": "webpack-dev-server --env=dev --open-page='status.html?demo=tree'"
+ },
+ "devDependencies": {
+ "@types/angular": "^1.6.43",
+ "@types/bootstrap": "^4.0.0",
+ "@types/core-js": "^0.9.46",
+ "@types/jquery": "^3.3.1",
+ "@types/node": "^9.4.7",
+ "babel-core": "^6.26.0",
+ "babel-eslint": "^8.0.3",
+ "babel-loader": "^7.1.2",
+ "babel-plugin-angularjs-annotate": "^0.8.2",
+ "babel-preset-env": "^1.6.1",
+ "clean-webpack-plugin": "^0.1.16",
+ "codelyzer": "^4.2.1",
+ "css-loader": "^0.28.10",
+ "eslint": ">=3.19.0",
+ "eslint-config-standard": "^11.0.0-beta.0",
+ "eslint-loader": "^2.0.0",
+ "eslint-plugin-import": "^2.8.0",
+ "eslint-plugin-node": "^6.0.0",
+ "eslint-plugin-promise": "^3.6.0",
+ "eslint-plugin-standard": "^3.0.1",
+ "file-loader": "^1.1.11",
+ "fork-ts-checker-webpack-plugin": "^0.4.1",
+ "html-loader": "^0.5.5",
+ "html-webpack-plugin": "^3.0.0",
+ "resolve-url-loader": "^2.1.0",
+ "style-loader": "^0.20.3",
+ "ts-loader": "^4.1.0",
+ "ts-node": "^5.0.1",
+ "tslint": "^5.9.1",
+ "tslint-angular": "^1.1.1",
+ "tslint-loader": "^3.6.0",
+ "typescript": "2.7.2",
+ "url-loader": "^0.5.9",
+ "webpack": "^4.4.0",
+ "webpack-archive-plugin": "^3.0.0",
+ "webpack-bundle-analyzer": "^2.9.1",
+ "webpack-cli": "^2.0.11",
+ "webpack-dev-server": "^3.0.0",
+ "webpack-merge": "^4.1.0"
+ }
+}
diff --git a/playbooks/dashboard/multi.yaml b/playbooks/dashboard/multi.yaml
new file mode 100644
index 000000000..49f8602c6
--- /dev/null
+++ b/playbooks/dashboard/multi.yaml
@@ -0,0 +1,21 @@
+- hosts: all
+ tasks:
+
+ - name: Make tenant subdir
+ file:
+ state: directory
+ dest: '{{ zuul.project.src_dir }}/{{ javascript_content_dir }}/t'
+
+ - name: Copy the html/javascript content into subdirs
+ shell: |
+ CONTENT_DIR="{{ zuul.project.src_dir }}/{{ javascript_content_dir }}"
+ mkdir $CONTENT_DIR/t/{{ item }}
+ for f in $(find $CONTENT_DIR -type f -mindepth 1 -maxdepth 1) ; do
+ cp $f $CONTENT_DIR/t/{{ item }}
+ done
+ with_items:
+ - local
+ - ansible
+ - ansible-dev
+ - openstack.org
+ - rdoproject.org
diff --git a/playbooks/dashboard/run.yaml b/playbooks/dashboard/run.yaml
index 056739db0..9b210a17c 100644
--- a/playbooks/dashboard/run.yaml
+++ b/playbooks/dashboard/run.yaml
@@ -1,19 +1,18 @@
- hosts: all
- pre_tasks:
- - name: Update homepage for sub directory deployment
- replace:
- path: '{{ zuul.project.src_dir }}/web/package.json'
- regexp: '"homepage": "/"'
- replace: '"homepage": "./"'
- # NOTE: using "./" is not enough to support html5 links, even with
- # rewrite rules for unknown files, accessing 'job/devstack' will make
- # the dashboard load static files from 'job/static/...'
- # This works for the preview dashboard that can only be loaded from the
- # npm/html directory anyway.
roles:
- revoke-sudo
- set-zuul-log-path-fact
+ # Both sets of quotes are required.
+ # The "" quotes are for the shell to protect the '' quotes.
+ # We need the '' quotes because defines here are essentially
+ # direct string substitutions. Therefore:
+ # --define "ZUUL_API_URL='https://zuul.openstack.org'"
+ # with the javascript code:
+ # return ZUUL_API_URL
+ # results in
+ # return 'https://zuul.openstack.org'
+ # in the compiled javascript.
- role: npm
- npm_command: build
- environment:
- REACT_APP_ZUUL_API: "{{ zuul_api_url }}/api/"
+ npm_command: >-
+ build:dist --
+ --define "ZUUL_API_URL='{{ zuul_api_url }}'"
diff --git a/releasenotes/notes/react-zuul-a593c7627ca22b37.yaml b/releasenotes/notes/react-zuul-a593c7627ca22b37.yaml
deleted file mode 100644
index 6d9f3c26e..000000000
--- a/releasenotes/notes/react-zuul-a593c7627ca22b37.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
----
-features:
- - |
- The Zuul web dashboard has been rewritten in React.
-upgrade:
- - |
- The Zuul web dashboard is now a single index.html and static offload
- server needs new rewrite rules. Check the install instruction for backward
- compatible rewrite rules. Note that serving the web dashboard from a
- sub-directory requires the application to be rebuilt using the desired
- homepage location.
diff --git a/tests/unit/test_web.py b/tests/unit/test_web.py
index 15acd9298..1ffe4c4c4 100755
--- a/tests/unit/test_web.py
+++ b/tests/unit/test_web.py
@@ -245,9 +245,9 @@ class TestWeb(BaseTestWeb):
self.assertEqual(1, data[0]['queue'])
def test_web_bad_url(self):
- # do we redirect to index.html
+ # do we 404 correctly
resp = self.get_url("status/foo")
- self.assertEqual(200, resp.status_code)
+ self.assertEqual(404, resp.status_code)
def test_web_find_change(self):
# can we filter by change id
diff --git a/tests/unit/test_web_urls.py b/tests/unit/test_web_urls.py
index 54eee1bda..f187c7291 100644
--- a/tests/unit/test_web_urls.py
+++ b/tests/unit/test_web_urls.py
@@ -51,8 +51,10 @@ class TestWebURLs(ZuulTestCase):
]:
for item in page.find_all(tag):
suburl = item.get(attr)
- if suburl.startswith('/'):
- suburl = suburl[1:]
+ # Skip empty urls. Also skip the navbar relative link for now.
+ # TODO(mordred) Remove when we have the top navbar link sorted.
+ if suburl is None or suburl == "../":
+ continue
link = urllib.parse.urljoin(url, suburl)
self._get(self.port, link)
@@ -64,8 +66,7 @@ class TestDirect(TestWebURLs):
self.port = self.web.port
def test_status_page(self):
- self._crawl('/')
- self._crawl('/t/tenant-one/status')
+ self._crawl('/t/tenant-one/status.html')
class TestWhiteLabel(TestWebURLs):
@@ -80,8 +81,7 @@ class TestWhiteLabel(TestWebURLs):
self.port = self.proxy.port
def test_status_page(self):
- self._crawl('/')
- self._crawl('/status')
+ self._crawl('/status.html')
class TestWhiteLabelAPI(TestWebURLs):
@@ -108,11 +108,11 @@ class TestSuburl(TestWebURLs):
def setUp(self):
super(TestSuburl, self).setUp()
rules = [
- ('^/zuul/(.*)$', 'http://localhost:{}/\\1'.format(
+ ('^/zuul3/(.*)$', 'http://localhost:{}/\\1'.format(
self.web.port)),
]
self.proxy = self.useFixture(WebProxyFixture(rules))
self.port = self.proxy.port
def test_status_page(self):
- self._crawl('/zuul/')
+ self._crawl('/zuul3/t/tenant-one/status.html')
diff --git a/tools/pip.sh b/tools/pip.sh
index 233f6a1f9..cf2d0f5e5 100755..100644
--- a/tools/pip.sh
+++ b/tools/pip.sh
@@ -32,9 +32,7 @@ then
fi
if [[ ! -f zuul/web/static/status.html ]]
then
- pushd web/
- yarn install
- yarn build
- popd
+ yarn install
+ npm run build:dev
fi
pip install $*
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 000000000..8a87417f2
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "sourceMap": true,
+ "moduleResolution": "node",
+ "outDir": "./zuul/web/static/",
+ "noImplicitAny": false,
+ "target": "es6",
+ "lib": [ "es2015", "dom" ],
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "allowJs": false
+ },
+ "include": [
+ "webpack.config.ts",
+ "web/**/*.ts"
+ ]
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 000000000..eeec36db1
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,7 @@
+{
+ "extends": ["tslint-angular"],
+ "rules": {
+ "array-type": [true, "array-simple"],
+ "semicolon": [true, "never"]
+ }
+}
diff --git a/web/.eslintrc b/web/.eslintrc
deleted file mode 100644
index f7a147486..000000000
--- a/web/.eslintrc
+++ /dev/null
@@ -1,23 +0,0 @@
-parser: babel-eslint
-plugins:
- - standard
- - jest
-rules:
- no-console: off
- semi: [error, never]
- quotes: [error, single]
- lines-between-class-members: error
- react/prop-types: error
- react/jsx-key: error
- react/no-did-mount-set-state: error
- react/no-did-update-set-state: error
- react/no-deprecated: error
-extends:
- - eslint:recommended
- - plugin:react/recommended
-settings:
- react:
- version: 16.4
-env:
- jest/globals: true
- browser: true
diff --git a/web/.gitignore b/web/.gitignore
new file mode 100644
index 000000000..218f297df
--- /dev/null
+++ b/web/.gitignore
@@ -0,0 +1 @@
+public_html/lib
diff --git a/web/.jshintignore b/web/.jshintignore
new file mode 100644
index 000000000..218f297df
--- /dev/null
+++ b/web/.jshintignore
@@ -0,0 +1 @@
+public_html/lib
diff --git a/web/.jshintrc b/web/.jshintrc
new file mode 100644
index 000000000..15bd571e7
--- /dev/null
+++ b/web/.jshintrc
@@ -0,0 +1,21 @@
+{
+ "bitwise": true,
+ "eqeqeq": true,
+ "forin": true,
+ "latedef": true,
+ "newcap": true,
+ "noarg": true,
+ "noempty": true,
+ "nonew": true,
+ "undef": true,
+ "unused": true,
+
+ "strict": false,
+ "laxbreak": true,
+ "browser": true,
+
+ "predef": [
+ "jQuery",
+ "zuul"
+ ]
+}
diff --git a/web/app-routing.module.ts b/web/app-routing.module.ts
new file mode 100644
index 000000000..15a2a1d98
--- /dev/null
+++ b/web/app-routing.module.ts
@@ -0,0 +1,84 @@
+// Routing information for Zuul dashboard pages
+//
+// Copyright 2018 Red Hat, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { NgModule, isDevMode } from '@angular/core'
+import { RouterModule, Routes } from '@angular/router'
+
+import BuildsComponent from './builds/builds.component'
+import JobsComponent from './jobs/jobs.component'
+import StatusComponent from './status/status.component'
+import StreamComponent from './stream/stream.component'
+import TenantsComponent from './tenants/tenants.component'
+
+// Have all routes go to builds.html for now
+const appRoutes: Routes = [
+ {
+ path: 't/:tenant/builds.html',
+ component: BuildsComponent
+ },
+ {
+ path: 'builds.html',
+ component: BuildsComponent
+ },
+ {
+ path: 't/:tenant/status.html',
+ component: StatusComponent
+ },
+ {
+ path: 'status.html',
+ component: StatusComponent
+ },
+ {
+ path: 't/:tenant/jobs.html',
+ component: JobsComponent
+ },
+ {
+ path: 'jobs.html',
+ component: JobsComponent
+ },
+ {
+ path: 'stream.html',
+ component: StreamComponent
+ },
+ {
+ path: 't/:tenant/stream.html',
+ component: StreamComponent
+ },
+ {
+ path: 'tenants.html',
+ component: TenantsComponent
+ },
+ {
+ path: 't/tenants.html',
+ component: TenantsComponent
+ },
+ {
+ path: '**',
+ component: StatusComponent
+ }
+]
+
+@NgModule({
+ imports: [
+ RouterModule.forRoot(
+ appRoutes,
+ // Enable router tracing in devel mode. This prints router decisions
+ // to the console.log.
+ { enableTracing: isDevMode() }
+ )],
+ exports: [RouterModule]
+})
+export class AppRoutingModule { }
diff --git a/web/app.component.ts b/web/app.component.ts
new file mode 100644
index 000000000..e9f173cdc
--- /dev/null
+++ b/web/app.component.ts
@@ -0,0 +1,28 @@
+// Main dashboard component
+//
+// Copyright 2018 Red Hat, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Component } from '@angular/core'
+
+@Component({
+ selector: 'zuul-dashboard',
+ template: `
+ <navigation></navigation>
+ <div class="container-fluid">
+ <router-outlet></router-outlet>
+ </div>
+ `
+})
+export class AppComponent {}
diff --git a/web/app.module.ts b/web/app.module.ts
new file mode 100644
index 000000000..2f977a792
--- /dev/null
+++ b/web/app.module.ts
@@ -0,0 +1,73 @@
+// Entrypoint for Zuul dashboard pages
+//
+// Copyright 2018 Red Hat, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import './styles/zuul.css'
+
+import { APP_BASE_HREF } from '@angular/common'
+import { NgModule } from '@angular/core'
+import { BrowserModule } from '@angular/platform-browser'
+import { HttpClientModule } from '@angular/common/http'
+import { FormsModule } from '@angular/forms'
+
+import { CoreModule } from './core/core.module'
+
+import { AppRoutingModule } from './app-routing.module'
+import { AppComponent } from './app.component'
+import { getAppBaseHref } from './zuul/zuul.service'
+
+import BuildsComponent from './builds/builds.component'
+import NavigationComponent from './navigation/navigation.component'
+import JobsComponent from './jobs/jobs.component'
+import StatusComponent from './status/status.component'
+import StreamComponent from './stream/stream.component'
+import TenantsComponent from './tenants/tenants.component'
+import ZuulService from './zuul/zuul.service'
+
+
+@NgModule({
+ imports: [
+ BrowserModule,
+ HttpClientModule,
+ FormsModule,
+ CoreModule.forRoot({}),
+ AppRoutingModule,
+ ],
+ declarations: [
+ AppComponent,
+ BuildsComponent,
+ NavigationComponent,
+ JobsComponent,
+ StatusComponent,
+ StreamComponent,
+ TenantsComponent
+ ],
+ entryComponents: [
+ BuildsComponent,
+ NavigationComponent,
+ JobsComponent,
+ StatusComponent,
+ StreamComponent,
+ TenantsComponent
+ ],
+ providers: [
+ ZuulService,
+ {provide: APP_BASE_HREF, useValue: getAppBaseHref()}
+ ],
+ bootstrap: [
+ AppComponent
+ ]
+})
+export class AppModule { }
diff --git a/web/build b/web/build
deleted file mode 120000
index 45dc67777..000000000
--- a/web/build
+++ /dev/null
@@ -1 +0,0 @@
-../zuul/web/static/ \ No newline at end of file
diff --git a/web/builds/build.ts b/web/builds/build.ts
new file mode 100644
index 000000000..f7252f8ba
--- /dev/null
+++ b/web/builds/build.ts
@@ -0,0 +1,28 @@
+// Copyright 2017 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+export default class Build {
+
+ constructor(
+ public job_name: string,
+ public result: string,
+ public project: string,
+ public pipeline: string,
+ public ref_url: string,
+ public duration: number,
+ public start_time: string,
+ public log_url?: string,
+ ) {}
+
+}
diff --git a/web/builds/builds.component.html b/web/builds/builds.component.html
new file mode 100644
index 000000000..7ce5de2de
--- /dev/null
+++ b/web/builds/builds.component.html
@@ -0,0 +1,67 @@
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<div class="container-fluid">
+ <span style="float: right; margin-top: 7px;">
+ <form class="form-inline" #buildsForm="ngForm">
+ <div class="form-group">
+ <label for="pipeline">Pipeline:</label>
+ <input class="form-control" id="pipeline"
+ [(ngModel)]="pipeline" name="pipeline" />
+ </div>
+ <div class="form-group">
+ <label for="job_name">Job:</label>
+ <input class="form-control" id="job_name"
+ [(ngModel)]="job_name" name="job_name" />
+ </div>
+ <div class="form-group">
+ <label for="project">Project:</label>
+ <input class="form-control" id="project"
+ [(ngModel)]="project" name="project">
+ </div>
+ <button type="submit" class="btn" (click)='buildsFetch()'>
+ Refresh
+ </button>
+ </form>
+ </span>
+</div>
+<table class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>Job</th>
+ <th>Project</th>
+ <th>Branch</th>
+ <th>Pipeline</th>
+ <th>Change</th>
+ <th>Duration</th>
+ <th>Log url</th>
+ <th>Start time</th>
+ <th>Result</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr *ngFor="let build of builds" [class]="getRowClass(build)">
+ <td>{{ build.job_name }}</td>
+ <td>{{ build.project }}</td>
+ <td>{{ build.branch }}</td>
+ <td>{{ build.pipeline }}</td>
+ <td><a href="{{ build.ref_url }}" target="_self">change</a></td>
+ <td>{{ build.duration }} seconds</td>
+ <td><a *ngIf="build.log_url" href="{{ build.log_url }}" target="_self">logs</a></td>
+ <td>{{ build.start_time }}</td>
+ <td>{{ build.result }}</td>
+ </tr>
+ </tbody>
+</table>
diff --git a/web/builds/builds.component.ts b/web/builds/builds.component.ts
new file mode 100644
index 000000000..5ef2dea46
--- /dev/null
+++ b/web/builds/builds.component.ts
@@ -0,0 +1,78 @@
+// Copyright 2017 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Component, OnInit } from '@angular/core'
+import { ActivatedRoute } from '@angular/router'
+import { HttpClient, HttpParams } from '@angular/common/http'
+import { Observable } from 'rxjs/Observable'
+import 'rxjs/add/operator/map'
+
+import ZuulService from '../zuul/zuul.service'
+import Build from './build'
+
+
+@Component({
+ template: require('./builds.component.html')
+})
+export default class BuildsComponent implements OnInit {
+ builds: Build[]
+ pipeline: string
+ job_name: string
+ project: string
+
+ constructor(
+ private http: HttpClient, private route: ActivatedRoute,
+ private zuul: ZuulService
+ ) {}
+
+ async ngOnInit() {
+ await this.zuul.setTenant(this.route.snapshot.paramMap.get('tenant'))
+
+ this.pipeline = this.route.snapshot.queryParamMap.get('pipeline')
+ this.job_name = this.route.snapshot.queryParamMap.get('job_name')
+ this.project = this.route.snapshot.queryParamMap.get('project')
+
+ this.buildsFetch()
+ }
+
+ buildsFetch(): void {
+ let params = new HttpParams()
+ if (this.pipeline) { params = params.set('pipeline', this.pipeline) }
+ if (this.job_name) { params = params.set('job_name', this.job_name) }
+ if (this.project) { params = params.set('project', this.project) }
+
+ const remoteLocation = this.zuul.getSourceUrl('builds')
+ if (remoteLocation) {
+ this.http.get<Build[]>(remoteLocation, {params: params})
+ .subscribe(builds => {
+ for (const build of builds) {
+ /* Fix incorect url for post_failure job */
+ /* TODO(mordred) Maybe let's fix this server side? */
+ if (build.log_url === build.job_name) {
+ build.log_url = undefined
+ }
+ }
+ this.builds = builds
+ })
+ }
+ }
+
+ getRowClass(build: Build): string {
+ if (build.result === 'SUCCESS') {
+ return 'success'
+ } else {
+ return 'warning'
+ }
+ }
+}
diff --git a/web/config/main.ejs b/web/config/main.ejs
new file mode 100644
index 000000000..94bd434da
--- /dev/null
+++ b/web/config/main.ejs
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<html>
+<head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
+ <title id='pagetitle'><%= htmlWebpackPlugin.options.title %></title>
+</head>
+<body>
+ <zuul-dashboard></zuul-dashboard>
+</body></html>
diff --git a/web/config/status-basic.json b/web/config/status-basic.json
new file mode 100644
index 000000000..63745a30b
--- /dev/null
+++ b/web/config/status-basic.json
@@ -0,0 +1,178 @@
+{
+ "last_reconfigured": 1389381756000,
+ "message": "Example info message",
+ "pipelines": [
+ {
+ "name": "test",
+ "description": "Lint and unit tests",
+ "change_queues": [
+ {
+ "name": "some-jobs@worker301.ci-example.org",
+ "heads": [
+ [
+ {
+ "id": "10101,1",
+ "url": "#!/review.example.org/r/10101",
+ "project": "openstack/infra/zuul",
+ "jobs": [
+ {
+ "name": "zuul-merge",
+ "url": "#!/jenkins.example.org/job/zuul-merge/201",
+ "result": "SUCCESS",
+ "voting": true
+ },
+ {
+ "name": "zuul-lint",
+ "url": "#!/jenkins.example.org/job/zuul-lint/201",
+ "result": "SUCCESS",
+ "voting": true
+ },
+ {
+ "name": "zuul-test",
+ "url": "#!/jenkins.example.org/job/zuul-test/201",
+ "result": "SUCCESS",
+ "voting": true
+ }
+ ]
+ }
+ ],
+ [
+ {
+ "id": "10103,1",
+ "url": "#!/review.example.org/r/10103",
+ "project": "google/gerrit",
+ "jobs": [
+ {
+ "name": "gerrit-merge",
+ "url": "#!/jenkins.example.org/job/gerrit-merge/203",
+ "result": "SUCCESS",
+ "voting": false
+ }
+ ]
+ }
+ ]
+ ]
+ },
+ {
+ "name": "other-jobs@worker301.ci-example.org",
+ "heads": [
+ [
+ {
+ "id": "10102,1",
+ "url": "#!/review.example.org/r/10102",
+ "project": "google/gerrit",
+ "jobs": [
+ {
+ "name": "gerrit-merge",
+ "url": "#!/jenkins.example.org/job/gerrit-merge/202",
+ "result": "UNSTABLE",
+ "voting": false
+ }
+ ]
+ }
+ ],
+ [
+ {
+ "id": "10104,1",
+ "url": "#!/review.example.org/r/10104",
+ "project": "openstack/infra/zuul",
+ "jobs": [
+ {
+ "name": "zuul-merge",
+ "url": "#!/jenkins.example.org/job/zuul-merge/204",
+ "result": "SUCCESS",
+ "voting": true
+ },
+ {
+ "name": "zuul-lint",
+ "url": "#!/jenkins.example.org/job/zuul-lint/204",
+ "result": "FAILURE",
+ "voting": true
+ },
+ {
+ "name": "zuul-test",
+ "url": "#!/jenkins.example.org/job/zuul-test/204",
+ "result": null,
+ "voting": true
+ }
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "name": "gate-and-submit",
+ "change_queues": []
+ },
+ {
+ "name": "postmerge",
+ "change_queues": [
+ {
+ "name": "some-jobs@worker301.ci-example.org",
+ "heads": [
+ [
+ {
+ "id": "7f1d65cb0f663c907698f915da01c008c7ef4748",
+ "url": "#!/review.example.org/r/10100",
+ "project": "openstack/infra/zuul",
+ "jobs": [
+ {
+ "name": "zuul-lint",
+ "url": "#!/jenkins.example.org/job/zuul-lint/200",
+ "result": "SUCCESS",
+ "voting": true
+ },
+ {
+ "name": "zuul-test",
+ "url": "#!/jenkins.example.org/job/zuul-test/200",
+ "result": "FAILURE",
+ "voting": true
+ },
+ {
+ "name": "zuul-regression-python2",
+ "url": "#!/jenkins.example.org/job/zuul-regression-python2/200",
+ "result": "SUCCESS",
+ "voting": true
+ },
+ {
+ "name": "zuul-regression-python3",
+ "url": "#!/jenkins.example.org/job/zuul-regression-python3/200",
+ "result": "FAILURE",
+ "voting": true
+ },
+ {
+ "name": "zuul-performance-python2",
+ "url": null,
+ "result": null,
+ "voting": true
+ },
+ {
+ "name": "zuul-performance-python3",
+ "url": null,
+ "result": null,
+ "voting": true
+ },
+ {
+ "name": "zuul-docs-publish",
+ "url": null,
+ "result": null,
+ "voting": true
+ }
+ ]
+ }
+ ]
+ ]
+ }
+ ]
+ }
+ ],
+ "trigger_event_queue": {
+ "length": 0
+ },
+ "result_event_queue": {
+ "length": 0
+ },
+ "zuul_version": "2.0.0.19"
+}
diff --git a/web/config/status-openstack.json b/web/config/status-openstack.json
new file mode 100644
index 000000000..41c231a39
--- /dev/null
+++ b/web/config/status-openstack.json
@@ -0,0 +1,312 @@
+{
+ "last_reconfigured": 1389381756000,
+ "pipelines": [
+ {
+ "name": "check",
+ "description": "Newly uploaded patchsets enter this pipeline to receive an initial +/-1 Verified vote from Jenkins.",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": "stackforge/tripleo-image-elements"
+ }
+ ]
+ },
+ {
+ "description": "Changes that have been approved by core developers are enqueued in order in this pipeline, and .",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": "openstack-detackforge/reddwarf-integration"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/moniker"
+ },
+ {
+ "heads": [
+ [
+ {
+ "url": "https://review.openstack.org/26292",
+ "project": "openstack/quantum",
+ "jobs": [
+ {
+ "url": "https://jenkins.openstack.org/job/gate-quantum-docs/5501/consoleFull",
+ "voting": true,
+ "result": "SUCCESS",
+ "name": "gate-quantum-docs"
+ },
+ {
+ "url": "https://jenkins.openstack.org/job/gate-quantum-pep8/6254/consoleFull",
+ "voting": true,
+ "result": "SUCCESS",
+ "name": "gate-quantum-pep8"
+ },
+ {
+ "url": "https://jenkins.openstack.org/job/gate-quantum-python26/5876/",
+ "voting": true,
+ "result": null,
+ "name": "gate-quantum-python26"
+ },
+ {
+ "url": "https://jenkins.openstack.org/job/gate-quantum-python27/5887/",
+ "voting": true,
+ "result": null,
+ "name": "gate-quantum-python27"
+ },
+ {
+ "url": "https://jenkins.openstack.org/job/gate-tempest-devstack-vm-quantum/17548/",
+ "voting": true,
+ "result": null,
+ "name": "gate-tempest-devstack-vm-quantum"
+ }
+ ],
+ "id": "26292,1"
+ }
+ ]
+ ],
+ "name": "openstack-dev/devstack, openstack-infra/devstack-gate, openstack/cinder, openstack/glance, openstack/horizon, openstack/keystone, openstack/nova, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-keystoneclient, openstack/python-novaclient, openstack/python-quantumclient, openstack/quantum, openstack/swift, openstack/tempest, z/tempest"
+ },
+ {
+ "heads": [],
+ "name": "openstack/ceilometer"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-openstack"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-cinder"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/marconi"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/config"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/tripleo-image-elements"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/kwapi"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/python-reddwarfclient"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/python-savannaclient"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/python-monikerclient"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/packstack"
+ },
+ {
+ "heads": [],
+ "name": "openstack/oslo.config"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/jenkins-job-builder"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-horizon"
+ },
+ {
+ "heads": [],
+ "name": "openstack/heat-cfntools"
+ },
+ {
+ "heads": [],
+ "name": "openstack/oslo-incubator"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/os-config-applier"
+ },
+ {
+ "heads": [],
+ "name": "openstack/requirements"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-glance"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/gearman-plugin"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-keystone"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-nova"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/climate"
+ },
+ {
+ "heads": [],
+ "name": "openstack/python-swiftclient"
+ },
+ {
+ "heads": [],
+ "name": "openstack/python-ceilometerclient"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/git-review"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/bufunfa"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/puppet-swift"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/statusbot"
+ },
+ {
+ "heads": [],
+ "name": "openstack/openstack-planet"
+ },
+ {
+ "heads": [],
+ "name": "openstack/python-openstackclient"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/diskimage-builder"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/gerritlib"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/zuul"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/reddwarf"
+ },
+ {
+ "heads": [],
+ "name": "openstack-dev/hacking"
+ },
+ {
+ "heads": [],
+ "name": "openstack/python-heatclient"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/python-libraclient"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/reviewday"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/jeepyb"
+ },
+ {
+ "heads": [],
+ "name": "openstack/heat"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/libra"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/gerrit"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/healthnmon"
+ },
+ {
+ "heads": [],
+ "name": "openstack-infra/gerritbot"
+ },
+ {
+ "heads": [],
+ "name": "openstack-dev/pbr"
+ },
+ {
+ "heads": [],
+ "name": "stackforge/savanna"
+ },
+ {
+ "heads": [],
+ "name": "openstack/openstack-manuals"
+ }
+ ],
+ "name": "gate"
+ },
+ {
+ "description": "This pipeline runs jobs that operate after each change is merged.",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": "openstack-dev/hacking, openstack-dev/openstack-qa, openstack-dev/pbr, openstack-infra/config, openstack-infra/gearman-plugin, openstack-infra/gerrit, openstack-infra/gerritbot, openstack-infra/git-review, openstack-infra/jenkins-job-builder, openstack-infra/nose-html-output, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/zuul, openstack/api-site, openstack/ceilometer, openstack/cinder, openstack/compute-api, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/identity-api, openstack/image-api, openstack/keystone, openstack/netconn-api, openstack/nova, openstack/object-api, openstack/openstack-manuals, openstack/oslo-incubator, openstack/oslo.config, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-quantumclient, openstack/python-swiftclient, openstack/quantum, openstack/requirements, openstack/swift, openstack/volume-api, stackforge/bufunfa, stackforge/diskimage-builder, stackforge/moniker, stackforge/os-config-applier, stackforge/python-monikerclient, stackforge/python-savannaclient, stackforge/reddwarf, stackforge/savanna, stackforge/tripleo-image-elements"
+ }
+ ],
+ "name": "post"
+ },
+ {
+ "description": "This pipeline runs jobs on projects in response to pre-release tags.",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": "openstack-dev/hacking, openstack-dev/pbr, openstack-infra/gerritbot, openstack-infra/gerritlib, openstack-infra/git-review, openstack-infra/jeepyb, openstack-infra/jenkins-job-builder, openstack-infra/nose-html-output, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/zuul, openstack/ceilometer, openstack/cinder, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/keystone, openstack/nova, openstack/oslo.config, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-quantumclient, openstack/python-swiftclient, openstack/quantum, openstack/swift, stackforge/moniker, stackforge/python-monikerclient, stackforge/python-reddwarfclient, stackforge/python-savannaclient, stackforge/savanna"
+ }
+ ],
+ "name": "pre-release"
+ },
+ {
+ "description": "When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": "openstack-dev/hacking, openstack-dev/openstack-qa, openstack-dev/pbr, openstack-infra/gerritbot, openstack-infra/gerritlib, openstack-infra/git-review, openstack-infra/jeepyb, openstack-infra/jenkins-job-builder, openstack-infra/nose-html-output, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/zuul, openstack/ceilometer, openstack/cinder, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/keystone, openstack/nova, openstack/oslo-incubator, openstack/oslo.config, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-quantumclient, openstack/python-swiftclient, openstack/quantum, openstack/swift, stackforge/moniker, stackforge/python-monikerclient, stackforge/python-reddwarfclient, stackforge/python-savannaclient, stackforge/savanna"
+ }
+ ],
+ "name": "release"
+ },
+ {
+ "description": "This pipeline is used for silently testing new jobs.",
+ "change_queues": [
+ {
+ "heads": [],
+ "name": ""
+ }
+ ],
+ "name": "silent"
+ }
+ ],
+ "trigger_event_queue": {
+ "length": 0
+ },
+ "result_event_queue": {
+ "length": 0
+ },
+ "zuul_version": "2.0.0.19"
+}
diff --git a/web/config/status-tree.json b/web/config/status-tree.json
new file mode 100644
index 000000000..31a37c8aa
--- /dev/null
+++ b/web/config/status-tree.json
@@ -0,0 +1 @@
+{"pipelines": [{"description": "Newly uploaded patchsets enter this pipeline to receive an initial +/-1 Verified vote from Jenkins.", "change_queues": [{"heads": [[{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 271291, "name": "gate-nova-pep8", "url": "https://jenkins02.openstack.org/job/gate-nova-pep8/4691/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 229630, "name": "gate-nova-docs", "url": "https://jenkins02.openstack.org/job/gate-nova-docs/4628/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1136580, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5766/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 686242, "name": "gate-nova-python27", "url": "https://jenkins02.openstack.org/job/gate-nova-python27/5832/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2119040, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/5/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2120037, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/4/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 1621689, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/5/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1044129, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-large-ops/1/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1977057, "name": "check-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/check-grenade-devstack-vm/4/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 678310, "name": "gate-nova-pylint", "url": "https://jenkins01.openstack.org/job/gate-nova-pylint/3023/", "voting": false, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48721", "item_ahead": null, "enqueue_time": 1380308488015, "project": "openstack/nova", "remaining_time": 0, "id": "48721,1"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 582992, "name": "gate-requirements-install", "url": "https://jenkins02.openstack.org/job/gate-requirements-install/225/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 23168, "name": "gate-requirements-pep8", "url": "https://jenkins01.openstack.org/job/gate-requirements-pep8/268/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 109904, "name": "gate-requirements-python27", "url": "https://jenkins01.openstack.org/job/gate-requirements-python27/273/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 190547, "name": "gate-requirements-pypy", "url": "https://jenkins01.openstack.org/job/gate-requirements-pypy/54/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2120035, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/4/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2127801, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/1/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2113881, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/1/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1005847, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/1/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1885169, "name": "check-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/check-grenade-devstack-vm/2/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 854611, "name": "check-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/check-swift-devstack-vm-functional/1/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48722", "item_ahead": null, "enqueue_time": 1380308971613, "project": "openstack/requirements", "remaining_time": 0, "id": "48722,1"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 133600, "name": "gate-neutron-pep8", "url": "https://jenkins02.openstack.org/job/gate-neutron-pep8/1416/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 131277, "name": "gate-neutron-docs", "url": "https://jenkins02.openstack.org/job/gate-neutron-docs/1467/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2251822, "name": "gate-neutron-python26", "url": "https://jenkins01.openstack.org/job/gate-neutron-python26/1771/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1452497, "name": "gate-neutron-python27", "url": "https://jenkins02.openstack.org/job/gate-neutron-python27/1678/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 2124032, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/1/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 1945001, "name": "check-tempest-devstack-vm-neutron-pg", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron-pg/1/", "voting": false, "remaining_time": 0, "result": "FAILURE"}], "url": "https://review.openstack.org/45677", "item_ahead": null, "enqueue_time": 1380308990019, "project": "openstack/neutron", "remaining_time": 0, "id": "45677,4"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 94738, "name": "gate-tempest-pep8", "url": "https://jenkins01.openstack.org/job/gate-tempest-pep8/1576/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 208144, "name": "gate-tempest-docs", "url": "https://jenkins01.openstack.org/job/gate-tempest-docs/1492/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2126572, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-full/1/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2119030, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/5/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 1622822, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/3/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 989220, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-large-ops/3/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 2119038, "name": "check-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/check-grenade-devstack-vm/3/", "voting": true, "remaining_time": 0, "result": null}], "url": "https://review.openstack.org/48147", "item_ahead": null, "enqueue_time": 1380309029918, "project": "openstack/tempest", "remaining_time": 0, "id": "48147,8"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 105321, "name": "gate-heat-pep8", "url": "https://jenkins02.openstack.org/job/gate-heat-pep8/1627/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 120878, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1411/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 137196, "name": "gate-heat-python26", "url": "https://jenkins02.openstack.org/job/gate-heat-python26/1658/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 105580, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1951/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2126107, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/2/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2070327, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/2/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1688657, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/4/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 973734, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-large-ops/2/", "voting": true, "remaining_time": 0, "result": "FAILURE"}], "url": "https://review.openstack.org/48727", "item_ahead": null, "enqueue_time": 1380309606606, "project": "openstack/heat", "remaining_time": 0, "id": "48727,1"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 259891, "name": "gate-nova-pep8", "url": "https://jenkins01.openstack.org/job/gate-nova-pep8/6686/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 179999, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6789/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1102654, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5777/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 818856, "name": "gate-nova-python27", "url": "https://jenkins01.openstack.org/job/gate-nova-python27/5498/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2127117, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/1/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2070550, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/1/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1674929, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/2/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1066930, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-large-ops/4/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 2101177, "name": "check-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/check-grenade-devstack-vm/1/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 682941, "name": "gate-nova-pylint", "url": "https://jenkins02.openstack.org/job/gate-nova-pylint/2934/", "voting": false, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/42736", "item_ahead": null, "enqueue_time": 1380309629537, "project": "openstack/nova", "remaining_time": 0, "id": "42736,16"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 169641, "name": "gate-cinder-pep8", "url": "https://jenkins01.openstack.org/job/gate-cinder-pep8/1643/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 527224, "name": "gate-cinder-docs", "url": "https://jenkins02.openstack.org/job/gate-cinder-docs/1120/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 354497, "name": "gate-cinder-python26", "url": "https://jenkins02.openstack.org/job/gate-cinder-python26/1316/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 265127, "name": "gate-cinder-python27", "url": "https://jenkins01.openstack.org/job/gate-cinder-python27/1468/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 291907, "name": "gate-cinder-pylint", "url": "https://jenkins01.openstack.org/job/gate-cinder-pylint/843/", "voting": false, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2121705, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/3/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2124111, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/3/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2107674, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/3/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1132023, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/3/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1953058, "name": "check-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/check-grenade-devstack-vm/2/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48387", "item_ahead": null, "enqueue_time": 1380309658104, "project": "openstack/cinder", "remaining_time": 0, "id": "48387,2"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 2124616, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-full/2/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2124614, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/2/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2092452, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/4/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1016557, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/2/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1962618, "name": "check-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/check-grenade-devstack-vm/1/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 843816, "name": "check-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/check-swift-devstack-vm-functional/2/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48411", "item_ahead": null, "enqueue_time": 1380309825203, "project": "openstack-dev/devstack", "remaining_time": 0, "id": "48411,2"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 129512, "name": "gate-heat-pep8", "url": "https://jenkins01.openstack.org/job/gate-heat-pep8/2137/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 121344, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1412/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 139891, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1887/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 99492, "name": "gate-heat-python27", "url": "https://jenkins02.openstack.org/job/gate-heat-python27/1796/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2120214, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-full/5/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2121195, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/3/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2119197, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/6/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 1172776, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/4/", "voting": true, "remaining_time": 0, "result": "FAILURE"}], "url": "https://review.openstack.org/48730", "item_ahead": null, "enqueue_time": 1380309894142, "project": "openstack/heat", "remaining_time": 0, "id": "48730,1"}], [{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 228482, "name": "gate-nova-pep8", "url": "https://jenkins01.openstack.org/job/gate-nova-pep8/6687/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 261211, "name": "gate-nova-docs", "url": "https://jenkins02.openstack.org/job/gate-nova-docs/4642/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 871252, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5778/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 808633, "name": "gate-nova-python27", "url": "https://jenkins01.openstack.org/job/gate-nova-python27/5499/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 2121220, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-full/4/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 2035444, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/5/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 2089448, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/7/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 790327, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/6/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1747827, "name": "check-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/check-grenade-devstack-vm/4/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 887417, "name": "gate-nova-pylint", "url": "https://jenkins01.openstack.org/job/gate-nova-pylint/3024/", "voting": false, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48666", "item_ahead": null, "enqueue_time": 1380310094572, "project": "openstack/nova", "remaining_time": 0, "id": "48666,1"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 53467, "name": "gate-python-keystoneclient-pep8", "url": "https://jenkins01.openstack.org/job/gate-python-keystoneclient-pep8/391/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 59025, "name": "gate-python-keystoneclient-docs", "url": "https://jenkins01.openstack.org/job/gate-python-keystoneclient-docs/388/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 53179, "name": "gate-python-keystoneclient-python26", "url": "https://jenkins02.openstack.org/job/gate-python-keystoneclient-python26/334/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 49841, "name": "gate-python-keystoneclient-python27", "url": "https://jenkins02.openstack.org/job/gate-python-keystoneclient-python27/325/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 19429, "name": "gate-python-keystoneclient-python33", "url": "https://jenkins01.openstack.org/job/gate-python-keystoneclient-python33/242/", "voting": false, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 98806, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/6/", "voting": true, "remaining_time": 2016562, "result": null}, {"elapsed_time": 97555, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/6/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 97553, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-neutron/10/", "voting": true, "remaining_time": 1828676, "result": null}, {"elapsed_time": 97548, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/7/", "voting": true, "remaining_time": 691118, "result": null}, {"elapsed_time": 98513, "name": "check-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/check-grenade-devstack-vm/5/", "voting": true, "remaining_time": 1886679, "result": null}], "url": "https://review.openstack.org/40703", "item_ahead": null, "enqueue_time": 1380314139375, "project": "openstack/python-keystoneclient", "remaining_time": 2016562, "id": "40703,7"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 45817, "name": "gate-heat-pep8", "url": "https://jenkins01.openstack.org/job/gate-heat-pep8/2171/", "voting": true, "remaining_time": 48324, "result": null}, {"elapsed_time": 45858, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1446/", "voting": true, "remaining_time": 94144, "result": null}, {"elapsed_time": 45815, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1924/", "voting": true, "remaining_time": 99244, "result": null}, {"elapsed_time": 45813, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1989/", "voting": true, "remaining_time": 72904, "result": null}, {"elapsed_time": 45793, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/7/", "voting": true, "remaining_time": 2069575, "result": null}, {"elapsed_time": 45795, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-postgres-full/6/", "voting": true, "remaining_time": 2022237, "result": null}, {"elapsed_time": 45749, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/7/", "voting": true, "remaining_time": 1588997, "result": null}, {"elapsed_time": 45594, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/8/", "voting": true, "remaining_time": 743072, "result": null}], "url": "https://review.openstack.org/44534", "item_ahead": null, "enqueue_time": 1380314190372, "project": "openstack/heat", "remaining_time": 2069575, "id": "44534,9"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 24513, "name": "gate-nova-pep8", "url": "https://jenkins01.openstack.org/job/gate-nova-pep8/6722/", "voting": true, "remaining_time": 221251, "result": null}, {"elapsed_time": 24476, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6823/", "voting": true, "remaining_time": 213900, "result": null}, {"elapsed_time": 24418, "name": "gate-nova-python26", "url": "https://jenkins02.openstack.org/job/gate-nova-python26/5157/", "voting": true, "remaining_time": 1052059, "result": null}, {"elapsed_time": 24471, "name": "gate-nova-python27", "url": "https://jenkins01.openstack.org/job/gate-nova-python27/5532/", "voting": true, "remaining_time": 723110, "result": null}, {"elapsed_time": 24466, "name": "check-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-full/8/", "voting": true, "remaining_time": 2090902, "result": null}, {"elapsed_time": 24412, "name": "check-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-postgres-full/7/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 24253, "name": "check-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/check-tempest-devstack-vm-neutron/8/", "voting": true, "remaining_time": 1610493, "result": null}, {"elapsed_time": 24324, "name": "check-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/check-tempest-devstack-vm-large-ops/9/", "voting": true, "remaining_time": 764342, "result": null}, {"elapsed_time": 24104, "name": "check-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/check-grenade-devstack-vm/5/", "voting": true, "remaining_time": 1859269, "result": null}, {"elapsed_time": 24294, "name": "gate-nova-pylint", "url": "https://jenkins02.openstack.org/job/gate-nova-pylint/2935/", "voting": false, "remaining_time": 717239, "result": null}], "url": "https://review.openstack.org/48544", "item_ahead": null, "enqueue_time": 1380314204556, "project": "openstack/nova", "remaining_time": 2090902, "id": "48544,2"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 8576, "name": "gate-barbican-pep8", "url": "https://jenkins01.openstack.org/job/gate-barbican-pep8/63/", "voting": true, "remaining_time": 29785, "result": null}, {"elapsed_time": 8575, "name": "gate-barbican-python27", "url": "https://jenkins01.openstack.org/job/gate-barbican-python27/54/", "voting": true, "remaining_time": 79333, "result": null}], "url": "https://review.openstack.org/48734", "item_ahead": null, "enqueue_time": 1380314228789, "project": "stackforge/barbican", "remaining_time": 79333, "id": "48734,1"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 1337, "name": "gate-python-swiftclient-requirements", "url": "https://jenkins02.openstack.org/job/gate-python-swiftclient-requirements/9/", "voting": true, "remaining_time": 3536, "result": null}, {"elapsed_time": 1342, "name": "gate-python-swiftclient-pep8", "url": "https://jenkins02.openstack.org/job/gate-python-swiftclient-pep8/22/", "voting": true, "remaining_time": 31997, "result": null}, {"elapsed_time": 3342, "name": "gate-python-swiftclient-docs", "url": "https://jenkins01.openstack.org/job/gate-python-swiftclient-docs/39/", "voting": true, "remaining_time": 40808, "result": null}, {"elapsed_time": 3338, "name": "gate-python-swiftclient-python26", "url": "https://jenkins01.openstack.org/job/gate-python-swiftclient-python26/34/", "voting": true, "remaining_time": 41947, "result": null}, {"elapsed_time": 3336, "name": "gate-python-swiftclient-python27", "url": "https://jenkins01.openstack.org/job/gate-python-swiftclient-python27/21/", "voting": true, "remaining_time": 33146, "result": null}, {"elapsed_time": 3344, "name": "gate-python-swiftclient-python33", "url": "https://jenkins01.openstack.org/job/gate-python-swiftclient-python33/35/", "voting": false, "remaining_time": 0, "result": null}, {"elapsed_time": 1748, "name": "gate-python-swiftclient-pypy", "url": "https://jenkins01.openstack.org/job/gate-python-swiftclient-pypy/27/", "voting": true, "remaining_time": 82666, "result": null}, {"elapsed_time": 1746, "name": "check-swift-devstack-vm-functional", "url": "https://jenkins01.openstack.org/job/check-swift-devstack-vm-functional/2/", "voting": true, "remaining_time": 0, "result": null}], "url": "https://review.openstack.org/48724", "item_ahead": null, "enqueue_time": 1380314236719, "project": "openstack/python-swiftclient", "remaining_time": 82666, "id": "48724,3"}]], "name": "openstack-dev/cookiecutter, openstack-dev/devstack, openstack-dev/grenade, openstack-dev/hacking, openstack-dev/heat-cfnclient, openstack-dev/openstack-nose, openstack-dev/openstack-qa, openstack-dev/pbr, openstack-dev/sandbox, openstack-infra/activity-board, openstack-infra/askbot-theme, openstack-infra/config, openstack-infra/devstack-gate, openstack-infra/elastic-recheck, openstack-infra/gear, openstack-infra/gearman-plugin, openstack-infra/gerrit, openstack-infra/gerritbot, openstack-infra/gerritlib, openstack-infra/git-review, openstack-infra/gitdm, openstack-infra/groups, openstack-infra/jeepyb, openstack-infra/jenkins-job-builder, openstack-infra/lodgeit, openstack-infra/meetbot, openstack-infra/nodepool, openstack-infra/nose-html-output, openstack-infra/odsreg, openstack-infra/publications, openstack-infra/puppet-apparmor, openstack-infra/puppet-dashboard, openstack-infra/puppet-vcsrepo, openstack-infra/pypi-mirror, openstack-infra/releasestatus, openstack-infra/reviewday, openstack-infra/reviewstats, openstack-infra/statusbot, openstack-infra/storyboard, openstack-infra/tripleo-ci, openstack-infra/zmq-event-publisher, openstack-infra/zuul, openstack/api-site, openstack/ceilometer, openstack/cinder, openstack/compute-api, openstack/database-api, openstack/diskimage-builder, openstack/django_openstack_auth, openstack/glance, openstack/governance, openstack/heat, openstack/heat-cfntools, openstack/heat-templates, openstack/horizon, openstack/identity-api, openstack/image-api, openstack/ironic, openstack/keystone, openstack/marconi, openstack/netconn-api, openstack/neutron, openstack/nova, openstack/object-api, openstack/openstack-chef, openstack/openstack-manuals, openstack/openstack-planet, openstack/operations-guide, openstack/os-apply-config, openstack/os-collect-config, openstack/os-refresh-config, openstack/oslo-incubator, openstack/oslo.config, openstack/oslo.messaging, openstack/oslo.sphinx, openstack/oslo.version, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-ironicclient, openstack/python-keystoneclient, openstack/python-marconiclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-swiftclient, openstack/python-troveclient, openstack/requirements, openstack/swift, openstack/tempest, openstack/tripleo-heat-templates, openstack/tripleo-image-elements, openstack/tripleo-incubator, openstack/trove, openstack/trove-integration, openstack/volume-api, stackforge/MRaaS, stackforge/anvil, stackforge/barbican, stackforge/billingstack, stackforge/bindep, stackforge/bufunfa, stackforge/cl-openstack-client, stackforge/climate, stackforge/cloudcafe, stackforge/clouddocs-maven-plugin, stackforge/cloudroast, stackforge/cookbook-openstack-block-storage, stackforge/cookbook-openstack-common, stackforge/cookbook-openstack-compute, stackforge/cookbook-openstack-dashboard, stackforge/cookbook-openstack-identity, stackforge/cookbook-openstack-image, stackforge/cookbook-openstack-metering, stackforge/cookbook-openstack-network, stackforge/cookbook-openstack-object-storage, stackforge/cookbook-openstack-ops-database, stackforge/cookbook-openstack-ops-messaging, stackforge/cookbook-openstack-orchestration, stackforge/designate, stackforge/fuel-astute, stackforge/fuel-main, stackforge/fuel-ostf-plugin, stackforge/fuel-ostf-tests, stackforge/fuel-web, stackforge/golang-client, stackforge/healthnmon, stackforge/inception, stackforge/kwapi, stackforge/libra, stackforge/manila, stackforge/murano-agent, stackforge/murano-api, stackforge/murano-common, stackforge/murano-conductor, stackforge/murano-dashboard, stackforge/murano-deployment, stackforge/murano-docs, stackforge/murano-tests, stackforge/novaimagebuilder, stackforge/occi-os, stackforge/opencafe, stackforge/openstack-chef-repo, stackforge/openvz-nova-driver, stackforge/packstack, stackforge/pecan, stackforge/puppet-ceilometer, stackforge/puppet-cinder, stackforge/puppet-glance, stackforge/puppet-heat, stackforge/puppet-horizon, stackforge/puppet-keystone, stackforge/puppet-neutron, stackforge/puppet-nova, stackforge/puppet-openstack, stackforge/puppet-openstack_dev_env, stackforge/puppet-savanna, stackforge/puppet-swift, stackforge/puppet-tempest, stackforge/pycadf, stackforge/pyghmi, stackforge/python-climateclient, stackforge/python-designateclient, stackforge/python-libraclient, stackforge/python-manilaclient, stackforge/python-muranoclient, stackforge/python-savannaclient, stackforge/python-tuskarclient, stackforge/rally, stackforge/savanna, stackforge/savanna-dashboard, stackforge/savanna-extra, stackforge/savanna-image-elements, stackforge/sqlalchemy-migrate, stackforge/staccato, stackforge/stackalytics, stackforge/taskflow, stackforge/tuskar, stackforge/tuskar-ui, stackforge/wsme"}], "name": "check"}, {"description": "Changes that have been approved by core developers are enqueued in order in this pipeline, and if they pass tests in Jenkins, will be merged.", "change_queues": [{"heads": [], "name": "stackforge/puppet-horizon"}, {"heads": [], "name": "openstack-dev/heat-cfnclient"}, {"heads": [[{"failing_reasons": ["at least one job failed"], "items_behind": ["48423,2"], "jobs": [{"elapsed_time": 199240, "name": "gate-ceilometer-docs", "url": "https://jenkins01.openstack.org/job/gate-ceilometer-docs/1113/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 88267, "name": "gate-ceilometer-pep8", "url": "https://jenkins01.openstack.org/job/gate-ceilometer-pep8/1146/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 621409, "name": "gate-ceilometer-python26", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-python26/1014/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 11124, "name": "gate-ceilometer-python27", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-python27/1003/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 1585675, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14925/", "voting": true, "remaining_time": 340565, "result": null}, {"elapsed_time": 1582866, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14693/", "voting": true, "remaining_time": 138052, "result": null}, {"elapsed_time": 1155105, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16378/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 882181, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4288/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 612572, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins01.openstack.org/job/gate-swift-devstack-vm-functional/1678/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48418", "item_ahead": null, "enqueue_time": 1380275100319, "project": "openstack/ceilometer", "remaining_time": 340565, "id": "48418,1"}, {"failing_reasons": ["a needed change is failing", "at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 1581332, "name": "gate-ceilometer-docs", "url": "https://jenkins01.openstack.org/job/gate-ceilometer-docs/1114/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 78975, "name": "gate-ceilometer-pep8", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-pep8/961/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 1581499, "name": "gate-ceilometer-python26", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-python26/1015/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 1581346, "name": "gate-ceilometer-python27", "url": "https://jenkins01.openstack.org/job/gate-ceilometer-python27/1099/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 1524357, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15590/", "voting": true, "remaining_time": 264284, "result": "CANCELED"}, {"elapsed_time": 1522887, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14951/", "voting": true, "remaining_time": 281026, "result": "CANCELED"}, {"elapsed_time": 1512715, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16379/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 1501341, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4047/", "voting": true, "remaining_time": 0, "result": "CANCELED"}, {"elapsed_time": 1486370, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins01.openstack.org/job/gate-swift-devstack-vm-functional/1679/", "voting": true, "remaining_time": 0, "result": "CANCELED"}], "url": "https://review.openstack.org/48423", "item_ahead": "48418,1", "enqueue_time": 1380275122088, "project": "openstack/ceilometer", "remaining_time": 340565, "id": "48423,2"}], [{"failing_reasons": [], "items_behind": ["48385,1"], "jobs": [{"elapsed_time": 84934, "name": "gate-tempest-pep8", "url": "https://jenkins02.openstack.org/job/gate-tempest-pep8/1189/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 214743, "name": "gate-tempest-docs", "url": "https://jenkins01.openstack.org/job/gate-tempest-docs/1514/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1399439, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15592/", "voting": true, "remaining_time": 384946, "result": null}, {"elapsed_time": 1391747, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14953/", "voting": true, "remaining_time": 521249, "result": null}, {"elapsed_time": 1387288, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16381/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 805938, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4289/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1326300, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12622/", "voting": true, "remaining_time": 328649, "result": null}], "url": "https://review.openstack.org/48271", "item_ahead": null, "enqueue_time": 1380276878515, "project": "openstack/tempest", "remaining_time": 521249, "id": "48271,1"}, {"failing_reasons": [], "items_behind": ["48240,1"], "jobs": [{"elapsed_time": 266700, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6815/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 288292, "name": "gate-nova-pep8", "url": "https://jenkins01.openstack.org/job/gate-nova-pep8/6716/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1053388, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5799/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 806482, "name": "gate-nova-python27", "url": "https://jenkins01.openstack.org/job/gate-nova-python27/5525/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1297198, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14927/", "voting": true, "remaining_time": 629042, "result": null}, {"elapsed_time": 1288003, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14954/", "voting": true, "remaining_time": 624993, "result": null}, {"elapsed_time": 1255139, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16430/", "voting": true, "remaining_time": 59370, "result": null}, {"elapsed_time": 652956, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4049/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1207574, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12623/", "voting": true, "remaining_time": 447375, "result": null}], "url": "https://review.openstack.org/48385", "item_ahead": "48271,1", "enqueue_time": 1380282964803, "project": "openstack/nova", "remaining_time": 629042, "id": "48385,1"}, {"failing_reasons": [], "items_behind": ["48242,1"], "jobs": [{"elapsed_time": 109796, "name": "gate-heat-pep8", "url": "https://jenkins01.openstack.org/job/gate-heat-pep8/2164/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 104030, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1439/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 141262, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1917/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 113583, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1981/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1205403, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14928/", "voting": true, "remaining_time": 720837, "result": null}, {"elapsed_time": 1166515, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14955/", "voting": true, "remaining_time": 746481, "result": null}, {"elapsed_time": 1161162, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16382/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 673234, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4050/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48240", "item_ahead": "48385,1", "enqueue_time": 1380283569407, "project": "openstack/heat", "remaining_time": 746481, "id": "48240,1"}, {"failing_reasons": [], "items_behind": ["48243,1"], "jobs": [{"elapsed_time": 118066, "name": "gate-heat-pep8", "url": "https://jenkins01.openstack.org/job/gate-heat-pep8/2165/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 138169, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1440/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 135068, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1918/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 115149, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1982/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1119221, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14929/", "voting": true, "remaining_time": 807019, "result": null}, {"elapsed_time": 1107201, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14956/", "voting": true, "remaining_time": 805795, "result": null}, {"elapsed_time": 1094770, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16383/", "voting": true, "remaining_time": 45791, "result": null}, {"elapsed_time": 654451, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4051/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48242", "item_ahead": "48240,1", "enqueue_time": 1380283569962, "project": "openstack/heat", "remaining_time": 807019, "id": "48242,1"}, {"failing_reasons": [], "items_behind": ["47860,4"], "jobs": [{"elapsed_time": 115274, "name": "gate-heat-pep8", "url": "https://jenkins02.openstack.org/job/gate-heat-pep8/1663/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 221959, "name": "gate-heat-docs", "url": "https://jenkins02.openstack.org/job/gate-heat-docs/1274/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 170541, "name": "gate-heat-python26", "url": "https://jenkins02.openstack.org/job/gate-heat-python26/1675/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 128771, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1983/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1080686, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14930/", "voting": true, "remaining_time": 845554, "result": null}, {"elapsed_time": 1070273, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14694/", "voting": true, "remaining_time": 650645, "result": null}, {"elapsed_time": 1065343, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16384/", "voting": true, "remaining_time": 75218, "result": null}, {"elapsed_time": 672944, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4290/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48243", "item_ahead": "48242,1", "enqueue_time": 1380283570607, "project": "openstack/heat", "remaining_time": 845554, "id": "48243,1"}, {"failing_reasons": [], "items_behind": ["48155,3"], "jobs": [{"elapsed_time": 98153, "name": "gate-heat-pep8", "url": "https://jenkins02.openstack.org/job/gate-heat-pep8/1664/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 253092, "name": "gate-heat-docs", "url": "https://jenkins02.openstack.org/job/gate-heat-docs/1275/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 142179, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1919/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 138551, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1984/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1044832, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15593/", "voting": true, "remaining_time": 739553, "result": null}, {"elapsed_time": 1032808, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14957/", "voting": true, "remaining_time": 880188, "result": null}, {"elapsed_time": 1030352, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16385/", "voting": true, "remaining_time": 110209, "result": null}, {"elapsed_time": 661805, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4291/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/47860", "item_ahead": "48243,1", "enqueue_time": 1380283597382, "project": "openstack/heat", "remaining_time": 880188, "id": "47860,4"}, {"failing_reasons": [], "items_behind": ["48591,1", "48111,7"], "jobs": [{"elapsed_time": 143371, "name": "gate-heat-pep8", "url": "https://jenkins02.openstack.org/job/gate-heat-pep8/1665/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 159850, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1441/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 153069, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1920/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 104530, "name": "gate-heat-python27", "url": "https://jenkins01.openstack.org/job/gate-heat-python27/1985/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 999795, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15594/", "voting": true, "remaining_time": 784590, "result": null}, {"elapsed_time": 998656, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14958/", "voting": true, "remaining_time": 914340, "result": null}, {"elapsed_time": 988798, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16431/", "voting": true, "remaining_time": 325711, "result": null}, {"elapsed_time": 682055, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4052/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48155", "item_ahead": "47860,4", "enqueue_time": 1380284449273, "project": "openstack/heat", "remaining_time": 914340, "id": "48155,3"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 108212, "name": "gate-neutron-docs", "url": "https://jenkins01.openstack.org/job/gate-neutron-docs/2037/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 137419, "name": "gate-neutron-pep8", "url": "https://jenkins01.openstack.org/job/gate-neutron-pep8/2074/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1361580, "name": "gate-neutron-python26", "url": "https://jenkins02.openstack.org/job/gate-neutron-python26/1628/", "voting": true, "remaining_time": 780221, "result": null}, {"elapsed_time": 22586, "name": "gate-neutron-python27", "url": "https://jenkins02.openstack.org/job/gate-neutron-python27/1689/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 963152, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16432/", "voting": true, "remaining_time": 351357, "result": null}], "url": "https://review.openstack.org/48591", "item_ahead": "48155,3", "enqueue_time": 1380287876076, "project": "openstack/neutron", "remaining_time": 914340, "id": "48591,1"}, {"failing_reasons": [], "items_behind": ["46123,21"], "jobs": [{"elapsed_time": 79014, "name": "gate-keystone-docs", "url": "https://jenkins01.openstack.org/job/gate-keystone-docs/1206/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 75321, "name": "gate-keystone-pep8", "url": "https://jenkins02.openstack.org/job/gate-keystone-pep8/998/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1055592, "name": "gate-keystone-python26", "url": "https://jenkins02.openstack.org/job/gate-keystone-python26/1057/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 846093, "name": "gate-keystone-python27", "url": "https://jenkins01.openstack.org/job/gate-keystone-python27/1103/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 960841, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15595/", "voting": true, "remaining_time": 823544, "result": null}, {"elapsed_time": 950223, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14695/", "voting": true, "remaining_time": 770695, "result": null}, {"elapsed_time": 938442, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16433/", "voting": true, "remaining_time": 376067, "result": null}, {"elapsed_time": 762279, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4292/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 914795, "name": "gate-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/gate-grenade-devstack-vm/12022/", "voting": true, "remaining_time": 741441, "result": null}, {"elapsed_time": 795754, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/gate-swift-devstack-vm-functional/1792/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48111", "item_ahead": "48155,3", "enqueue_time": 1380288460992, "project": "openstack/keystone", "remaining_time": 914340, "id": "48111,7"}, {"failing_reasons": [], "items_behind": ["48168,4"], "jobs": [{"elapsed_time": 86559, "name": "gate-keystone-docs", "url": "https://jenkins01.openstack.org/job/gate-keystone-docs/1207/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 90221, "name": "gate-keystone-pep8", "url": "https://jenkins02.openstack.org/job/gate-keystone-pep8/999/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1171771, "name": "gate-keystone-python26", "url": "https://jenkins01.openstack.org/job/gate-keystone-python26/1058/", "voting": true, "remaining_time": 124855, "result": null}, {"elapsed_time": 859978, "name": "gate-keystone-python27", "url": "https://jenkins01.openstack.org/job/gate-keystone-python27/1104/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 899159, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15596/", "voting": true, "remaining_time": 885226, "result": null}, {"elapsed_time": 883709, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14959/", "voting": true, "remaining_time": 1029287, "result": null}, {"elapsed_time": 848838, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16434/", "voting": true, "remaining_time": 465671, "result": null}, {"elapsed_time": 651313, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4053/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 829582, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12624/", "voting": true, "remaining_time": 825367, "result": null}, {"elapsed_time": 742887, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/gate-swift-devstack-vm-functional/1793/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/46123", "item_ahead": "48111,7", "enqueue_time": 1380288462307, "project": "openstack/keystone", "remaining_time": 1029287, "id": "46123,21"}, {"failing_reasons": [], "items_behind": ["47546,2"], "jobs": [{"elapsed_time": 87433, "name": "gate-tempest-pep8", "url": "https://jenkins02.openstack.org/job/gate-tempest-pep8/1193/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 221562, "name": "gate-tempest-docs", "url": "https://jenkins01.openstack.org/job/gate-tempest-docs/1516/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 802529, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15597/", "voting": true, "remaining_time": 981856, "result": null}, {"elapsed_time": 788099, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14696/", "voting": true, "remaining_time": 932819, "result": null}, {"elapsed_time": 774143, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16386/", "voting": true, "remaining_time": 366418, "result": null}, {"elapsed_time": 683464, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4293/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 757249, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12625/", "voting": true, "remaining_time": 897700, "result": null}], "url": "https://review.openstack.org/48168", "item_ahead": "46123,21", "enqueue_time": 1380288896067, "project": "openstack/tempest", "remaining_time": 1029287, "id": "48168,4"}, {"failing_reasons": [], "items_behind": ["48534,1"], "jobs": [{"elapsed_time": 241419, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6816/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 269854, "name": "gate-nova-pep8", "url": "https://jenkins01.openstack.org/job/gate-nova-pep8/6718/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1040776, "name": "gate-nova-python26", "url": "https://jenkins02.openstack.org/job/gate-nova-python26/5151/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 850596, "name": "gate-nova-python27", "url": "https://jenkins02.openstack.org/job/gate-nova-python27/5870/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 745448, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15598/", "voting": true, "remaining_time": 1038937, "result": null}, {"elapsed_time": 720692, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14960/", "voting": true, "remaining_time": 1192304, "result": null}, {"elapsed_time": 715260, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16387/", "voting": true, "remaining_time": 425301, "result": null}, {"elapsed_time": 626189, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4054/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 684699, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12626/", "voting": true, "remaining_time": 970250, "result": null}], "url": "https://review.openstack.org/47546", "item_ahead": "48168,4", "enqueue_time": 1380289298528, "project": "openstack/nova", "remaining_time": 1192304, "id": "47546,2"}, {"failing_reasons": [], "items_behind": ["48516,4"], "jobs": [{"elapsed_time": 115419, "name": "gate-keystone-docs", "url": "https://jenkins02.openstack.org/job/gate-keystone-docs/1003/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 75258, "name": "gate-keystone-pep8", "url": "https://jenkins02.openstack.org/job/gate-keystone-pep8/1000/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1160955, "name": "gate-keystone-python26", "url": "https://jenkins01.openstack.org/job/gate-keystone-python26/1059/", "voting": true, "remaining_time": 135671, "result": null}, {"elapsed_time": 854661, "name": "gate-keystone-python27", "url": "https://jenkins01.openstack.org/job/gate-keystone-python27/1105/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 684605, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14931/", "voting": true, "remaining_time": 1241635, "result": null}, {"elapsed_time": 683344, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14697/", "voting": true, "remaining_time": 1037574, "result": null}, {"elapsed_time": 672761, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16388/", "voting": true, "remaining_time": 467800, "result": null}, {"elapsed_time": 658114, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4294/", "voting": true, "remaining_time": 40884, "result": null}, {"elapsed_time": 653007, "name": "gate-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/gate-grenade-devstack-vm/12023/", "voting": true, "remaining_time": 1003229, "result": null}, {"elapsed_time": 639570, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins01.openstack.org/job/gate-swift-devstack-vm-functional/1680/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}], "url": "https://review.openstack.org/48534", "item_ahead": "47546,2", "enqueue_time": 1380290773932, "project": "openstack/keystone", "remaining_time": 1241635, "id": "48534,1"}, {"failing_reasons": [], "items_behind": ["47479,2", "39668,13", "48625,1", "48627,1", "48601,1", "48164,1", "46291,2"], "jobs": [{"elapsed_time": 119304, "name": "gate-tempest-pep8", "url": "https://jenkins01.openstack.org/job/gate-tempest-pep8/1601/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 373183, "name": "gate-tempest-docs", "url": "https://jenkins02.openstack.org/job/gate-tempest-docs/1168/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 635471, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15599/", "voting": true, "remaining_time": 1148914, "result": null}, {"elapsed_time": 605990, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14961/", "voting": true, "remaining_time": 1307006, "result": null}, {"elapsed_time": 603764, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16389/", "voting": true, "remaining_time": 536797, "result": null}, {"elapsed_time": 573906, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4295/", "voting": true, "remaining_time": 125092, "result": null}, {"elapsed_time": 570202, "name": "gate-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/gate-grenade-devstack-vm/12024/", "voting": true, "remaining_time": 1086034, "result": null}], "url": "https://review.openstack.org/48516", "item_ahead": "48534,1", "enqueue_time": 1380293089245, "project": "openstack/tempest", "remaining_time": 1307006, "id": "48516,4"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 225181, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6817/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 250970, "name": "gate-nova-pep8", "url": "https://jenkins02.openstack.org/job/gate-nova-pep8/4724/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1160801, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5803/", "voting": true, "remaining_time": 0, "result": null}, {"elapsed_time": 11087, "name": "gate-nova-python27", "url": "https://jenkins02.openstack.org/job/gate-nova-python27/5871/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 551403, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15600/", "voting": true, "remaining_time": 1232982, "result": null}, {"elapsed_time": 538724, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14698/", "voting": true, "remaining_time": 1182194, "result": null}, {"elapsed_time": 518413, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16390/", "voting": true, "remaining_time": 622148, "result": null}, {"elapsed_time": 513228, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4296/", "voting": true, "remaining_time": 185770, "result": null}, {"elapsed_time": 488201, "name": "gate-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/gate-grenade-devstack-vm/12025/", "voting": true, "remaining_time": 1168035, "result": null}], "url": "https://review.openstack.org/47479", "item_ahead": "48516,4", "enqueue_time": 1380293138283, "project": "openstack/nova", "remaining_time": 1307006, "id": "47479,2"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 4238, "name": "gate-nova-docs", "url": "https://jenkins02.openstack.org/job/gate-nova-docs/4674/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 2365, "name": "gate-nova-pep8", "url": "https://jenkins02.openstack.org/job/gate-nova-pep8/4727/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 854913, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5806/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 776630, "name": "gate-nova-python27", "url": "https://jenkins02.openstack.org/job/gate-nova-python27/5874/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 477284, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14932/", "voting": true, "remaining_time": 1448956, "result": null}, {"elapsed_time": 474443, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14699/", "voting": true, "remaining_time": 1246475, "result": null}, {"elapsed_time": 472601, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16435/", "voting": true, "remaining_time": 841908, "result": null}, {"elapsed_time": 453504, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4055/", "voting": true, "remaining_time": 191249, "result": null}, {"elapsed_time": 444138, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12627/", "voting": true, "remaining_time": 1210811, "result": null}], "url": "https://review.openstack.org/39668", "item_ahead": "48516,4", "enqueue_time": 1380296032916, "project": "openstack/nova", "remaining_time": 1448956, "id": "39668,13"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 104102, "name": "gate-heat-pep8", "url": "https://jenkins01.openstack.org/job/gate-heat-pep8/2169/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 78608, "name": "gate-heat-docs", "url": "https://jenkins02.openstack.org/job/gate-heat-docs/1279/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 135647, "name": "gate-heat-python26", "url": "https://jenkins02.openstack.org/job/gate-heat-python26/1681/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 131232, "name": "gate-heat-python27", "url": "https://jenkins02.openstack.org/job/gate-heat-python27/1833/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 437367, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15601/", "voting": true, "remaining_time": 1347018, "result": null}, {"elapsed_time": 419164, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14700/", "voting": true, "remaining_time": 1301754, "result": null}, {"elapsed_time": 405004, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-neutron/16391/", "voting": true, "remaining_time": 735557, "result": null}, {"elapsed_time": 388934, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4056/", "voting": true, "remaining_time": 255819, "result": null}], "url": "https://review.openstack.org/48625", "item_ahead": "48516,4", "enqueue_time": 1380298199735, "project": "openstack/heat", "remaining_time": 1448956, "id": "48625,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 2383, "name": "gate-heat-pep8", "url": "https://jenkins02.openstack.org/job/gate-heat-pep8/1669/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 123063, "name": "gate-heat-docs", "url": "https://jenkins01.openstack.org/job/gate-heat-docs/1445/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 140643, "name": "gate-heat-python26", "url": "https://jenkins01.openstack.org/job/gate-heat-python26/1923/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 120361, "name": "gate-heat-python27", "url": "https://jenkins02.openstack.org/job/gate-heat-python27/1834/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 355849, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15602/", "voting": true, "remaining_time": 1428536, "result": null}, {"elapsed_time": 349963, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14962/", "voting": true, "remaining_time": 1563033, "result": null}, {"elapsed_time": 325802, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16436/", "voting": true, "remaining_time": 988707, "result": null}, {"elapsed_time": 309685, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-large-ops/4057/", "voting": true, "remaining_time": 335068, "result": null}], "url": "https://review.openstack.org/48627", "item_ahead": "48516,4", "enqueue_time": 1380298279387, "project": "openstack/heat", "remaining_time": 1563033, "id": "48627,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 39984, "name": "gate-swift-docs", "url": "https://jenkins02.openstack.org/job/gate-swift-docs/659/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 62434, "name": "gate-swift-pep8", "url": "https://jenkins02.openstack.org/job/gate-swift-pep8/651/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 135465, "name": "gate-swift-python26", "url": "https://jenkins02.openstack.org/job/gate-swift-python26/714/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 84251, "name": "gate-swift-python27", "url": "https://jenkins02.openstack.org/job/gate-swift-python27/723/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 289217, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/gate-swift-devstack-vm-functional/1794/", "voting": true, "remaining_time": 503200, "result": null}, {"elapsed_time": 264841, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15603/", "voting": true, "remaining_time": 1519544, "result": null}, {"elapsed_time": 241185, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16437/", "voting": true, "remaining_time": 1073324, "result": null}, {"elapsed_time": 215778, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14963/", "voting": true, "remaining_time": 1697218, "result": null}, {"elapsed_time": 190054, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4297/", "voting": true, "remaining_time": 508944, "result": null}, {"elapsed_time": 166190, "name": "gate-grenade-devstack-vm", "url": "https://jenkins01.openstack.org/job/gate-grenade-devstack-vm/12026/", "voting": true, "remaining_time": 1490046, "result": null}], "url": "https://review.openstack.org/48601", "item_ahead": "48516,4", "enqueue_time": 1380298994701, "project": "openstack/swift", "remaining_time": 1697218, "id": "48601,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 100330, "name": "gate-swift-docs", "url": "https://jenkins02.openstack.org/job/gate-swift-docs/662/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 64171, "name": "gate-swift-pep8", "url": "https://jenkins02.openstack.org/job/gate-swift-pep8/652/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 121329, "name": "gate-swift-python26", "url": "https://jenkins01.openstack.org/job/gate-swift-python26/683/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 5623, "name": "gate-swift-python27", "url": "https://jenkins02.openstack.org/job/gate-swift-python27/726/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": 159076, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/gate-swift-devstack-vm-functional/1795/", "voting": true, "remaining_time": 633341, "result": null}, {"elapsed_time": 149233, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-full/15604/", "voting": true, "remaining_time": 1635152, "result": null}, {"elapsed_time": 139770, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16438/", "voting": true, "remaining_time": 1174739, "result": null}, {"elapsed_time": 133160, "name": "gate-tempest-devstack-vm-postgres-full", "url": "https://jenkins01.openstack.org/job/gate-tempest-devstack-vm-postgres-full/14701/", "voting": true, "remaining_time": 1587758, "result": null}, {"elapsed_time": 117650, "name": "gate-tempest-devstack-vm-large-ops", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-large-ops/4298/", "voting": true, "remaining_time": 581348, "result": null}, {"elapsed_time": 115132, "name": "gate-grenade-devstack-vm", "url": "https://jenkins02.openstack.org/job/gate-grenade-devstack-vm/12628/", "voting": true, "remaining_time": 1539817, "result": null}], "url": "https://review.openstack.org/48164", "item_ahead": "48516,4", "enqueue_time": 1380299009131, "project": "openstack/swift", "remaining_time": 1697218, "id": "48164,1"}, {"failing_reasons": [], "items_behind": ["48503,1"], "jobs": [{"elapsed_time": 80662, "name": "gate-swift-docs", "url": "https://jenkins01.openstack.org/job/gate-swift-docs/794/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 61048, "name": "gate-swift-pep8", "url": "https://jenkins01.openstack.org/job/gate-swift-pep8/801/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 118183, "name": "gate-swift-python26", "url": "https://jenkins02.openstack.org/job/gate-swift-python26/717/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 99494, "name": "gate-swift-python27", "url": "https://jenkins01.openstack.org/job/gate-swift-python27/723/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 110549, "name": "gate-swift-devstack-vm-functional", "url": "https://jenkins02.openstack.org/job/gate-swift-devstack-vm-functional/1796/", "voting": true, "remaining_time": 681868, "result": null}, {"elapsed_time": 70538, "name": "gate-tempest-devstack-vm-full", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-full/14933/", "voting": true, "remaining_time": 1855702, "result": null}, {"elapsed_time": 60891, "name": "gate-tempest-devstack-vm-neutron", "url": "https://jenkins02.openstack.org/job/gate-tempest-devstack-vm-neutron/16439/", "voting": true, "remaining_time": 1253618, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/46291", "item_ahead": "48516,4", "enqueue_time": 1380299228671, "project": "openstack/swift", "remaining_time": null, "id": "46291,2"}, {"failing_reasons": [], "items_behind": ["48202,1", "48553,4", "47718,7"], "jobs": [{"elapsed_time": 98382, "name": "gate-glance-docs", "url": "https://jenkins02.openstack.org/job/gate-glance-docs/640/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 171699, "name": "gate-glance-pep8", "url": "https://jenkins02.openstack.org/job/gate-glance-pep8/626/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 589539, "name": "gate-glance-python26", "url": "https://jenkins02.openstack.org/job/gate-glance-python26/689/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 520779, "name": "gate-glance-python27", "url": "https://jenkins02.openstack.org/job/gate-glance-python27/726/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48503", "item_ahead": "46291,2", "enqueue_time": 1380299426335, "project": "openstack/glance", "remaining_time": null, "id": "48503,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 579487, "name": "gate-horizon-docs", "url": "https://jenkins02.openstack.org/job/gate-horizon-docs/616/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 118371, "name": "gate-horizon-pep8", "url": "https://jenkins01.openstack.org/job/gate-horizon-pep8/826/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 234012, "name": "gate-horizon-python26", "url": "https://jenkins02.openstack.org/job/gate-horizon-python26/756/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 216372, "name": "gate-horizon-python27", "url": "https://jenkins02.openstack.org/job/gate-horizon-python27/716/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 188521, "name": "gate-horizon-python27-django14", "url": "https://jenkins02.openstack.org/job/gate-horizon-python27-django14/685/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 1847, "name": "gate-horizon-selenium", "url": "https://jenkins02.openstack.org/job/gate-horizon-selenium/734/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48202", "item_ahead": "48503,1", "enqueue_time": 1380304046069, "project": "openstack/horizon", "remaining_time": null, "id": "48202,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 79009, "name": "gate-keystone-docs", "url": "https://jenkins01.openstack.org/job/gate-keystone-docs/1215/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 89394, "name": "gate-keystone-pep8", "url": "https://jenkins02.openstack.org/job/gate-keystone-pep8/1007/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 633149, "name": "gate-keystone-python26", "url": "https://jenkins02.openstack.org/job/gate-keystone-python26/1065/", "voting": true, "remaining_time": 448519, "result": null}, {"elapsed_time": 8840, "name": "gate-keystone-python27", "url": "https://jenkins02.openstack.org/job/gate-keystone-python27/1097/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-swift-devstack-vm-functional", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48553", "item_ahead": "48503,1", "enqueue_time": 1380304548765, "project": "openstack/keystone", "remaining_time": null, "id": "48553,4"}, {"failing_reasons": [], "items_behind": ["48721,1"], "jobs": [{"elapsed_time": 93320, "name": "gate-glance-docs", "url": "https://jenkins02.openstack.org/job/gate-glance-docs/641/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 98965, "name": "gate-glance-pep8", "url": "https://jenkins01.openstack.org/job/gate-glance-pep8/816/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 601959, "name": "gate-glance-python26", "url": "https://jenkins01.openstack.org/job/gate-glance-python26/666/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 588646, "name": "gate-glance-python27", "url": "https://jenkins02.openstack.org/job/gate-glance-python27/729/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/47718", "item_ahead": "48503,1", "enqueue_time": 1380307097942, "project": "openstack/glance", "remaining_time": null, "id": "47718,7"}, {"failing_reasons": [], "items_behind": ["48636,3", "48560,1"], "jobs": [{"elapsed_time": 250871, "name": "gate-nova-docs", "url": "https://jenkins01.openstack.org/job/gate-nova-docs/6822/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 271342, "name": "gate-nova-pep8", "url": "https://jenkins02.openstack.org/job/gate-nova-pep8/4733/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 603753, "name": "gate-nova-python26", "url": "https://jenkins01.openstack.org/job/gate-nova-python26/5810/", "voting": true, "remaining_time": 378103, "result": null}, {"elapsed_time": 607935, "name": "gate-nova-python27", "url": "https://jenkins02.openstack.org/job/gate-nova-python27/5878/", "voting": true, "remaining_time": 201525, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48721", "item_ahead": "47718,7", "enqueue_time": 1380308978350, "project": "openstack/nova", "remaining_time": null, "id": "48721,1"}, {"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 220348, "name": "gate-ceilometer-docs", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-docs/995/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 70164, "name": "gate-ceilometer-pep8", "url": "https://jenkins01.openstack.org/job/gate-ceilometer-pep8/1153/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 554806, "name": "gate-ceilometer-python26", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-python26/1021/", "voting": true, "remaining_time": 43, "result": null}, {"elapsed_time": 329706, "name": "gate-ceilometer-python27", "url": "https://jenkins02.openstack.org/job/gate-ceilometer-python27/1009/", "voting": true, "remaining_time": 0, "result": "FAILURE"}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-swift-devstack-vm-functional", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48636", "item_ahead": "48721,1", "enqueue_time": 1380309007955, "project": "openstack/ceilometer", "remaining_time": null, "id": "48636,3"}, {"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 5555, "name": "gate-tempest-requirements", "url": "https://jenkins01.openstack.org/job/gate-tempest-requirements/35/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 103859, "name": "gate-tempest-pep8", "url": "https://jenkins01.openstack.org/job/gate-tempest-pep8/1605/", "voting": true, "remaining_time": 0, "result": "SUCCESS"}, {"elapsed_time": 263246, "name": "gate-tempest-docs", "url": "https://jenkins02.openstack.org/job/gate-tempest-docs/1175/", "voting": true, "remaining_time": 157235, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-postgres-full", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-neutron", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-tempest-devstack-vm-large-ops", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": null, "name": "gate-grenade-devstack-vm", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/48560", "item_ahead": "48721,1", "enqueue_time": 1380309816876, "project": "openstack/tempest", "remaining_time": null, "id": "48560,1"}]], "name": "openstack-dev/devstack, openstack-dev/grenade, openstack-dev/pbr, openstack-infra/devstack-gate, openstack/ceilometer, openstack/cinder, openstack/glance, openstack/heat, openstack/horizon, openstack/keystone, openstack/neutron, openstack/nova, openstack/oslo.config, openstack/oslo.messaging, openstack/oslo.version, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/python-swiftclient, openstack/requirements, openstack/swift, openstack/tempest, z/tempest"}, {"heads": [], "name": "openstack/ironic"}, {"heads": [], "name": "openstack-dev/cookiecutter, openstack-dev/openstack-nose, openstack-dev/openstack-qa, openstack-dev/sandbox, openstack-infra/activity-board, openstack-infra/askbot-theme, openstack-infra/groups, openstack-infra/lodgeit, openstack-infra/meetbot, openstack-infra/nose-html-output, openstack-infra/odsreg, openstack-infra/publications, openstack-infra/puppet-apparmor, openstack-infra/puppet-dashboard, openstack-infra/puppet-vcsrepo, openstack-infra/releasestatus, openstack-infra/reviewstats, openstack-infra/tripleo-ci, openstack/api-site, openstack/compute-api, openstack/database-api, openstack/governance, openstack/heat-templates, openstack/identity-api, openstack/image-api, openstack/netconn-api, openstack/object-api, openstack/openstack-chef, openstack/tripleo-heat-templates, openstack/tripleo-image-elements, openstack/trove-integration, openstack/volume-api, stackforge/MRaaS, stackforge/cloudcafe, stackforge/clouddocs-maven-plugin, stackforge/cloudroast, stackforge/fuel-astute, stackforge/fuel-main, stackforge/fuel-ostf-plugin, stackforge/fuel-ostf-tests, stackforge/fuel-web, stackforge/golang-client, stackforge/murano-agent, stackforge/murano-deployment, stackforge/murano-docs, stackforge/murano-tests, stackforge/novaimagebuilder, stackforge/occi-os, stackforge/opencafe, stackforge/openvz-nova-driver, stackforge/puppet-openstack_dev_env, stackforge/puppet-savanna, stackforge/python-climateclient, stackforge/savanna-extra, stackforge/savanna-image-elements, stackforge/staccato, stackforge/tuskar-ui"}, {"heads": [], "name": "stackforge/savanna"}, {"heads": [], "name": "stackforge/cookbook-openstack-image"}, {"heads": [], "name": "stackforge/puppet-cinder"}, {"heads": [], "name": "openstack/trove"}, {"heads": [], "name": "openstack/python-ironicclient"}, {"heads": [], "name": "stackforge/cookbook-openstack-identity"}, {"heads": [], "name": "stackforge/python-tuskarclient"}, {"heads": [], "name": "stackforge/bufunfa"}, {"heads": [], "name": "openstack-infra/gerrit"}, {"heads": [], "name": "openstack/heat-cfntools"}, {"heads": [], "name": "stackforge/taskflow"}, {"heads": [], "name": "openstack/openstack-planet"}, {"heads": [], "name": "stackforge/barbican"}, {"heads": [], "name": "stackforge/pycadf"}, {"heads": [], "name": "openstack-infra/jeepyb"}, {"heads": [], "name": "stackforge/puppet-heat"}, {"heads": [], "name": "stackforge/packstack"}, {"heads": [], "name": "openstack/oslo.sphinx"}, {"heads": [], "name": "stackforge/murano-conductor"}, {"heads": [], "name": "openstack-infra/reviewday"}, {"heads": [], "name": "openstack/python-marconiclient"}, {"heads": [], "name": "stackforge/puppet-glance"}, {"heads": [], "name": "stackforge/anvil"}, {"heads": [], "name": "stackforge/puppet-nova"}, {"heads": [], "name": "stackforge/murano-api"}, {"heads": [], "name": "stackforge/cookbook-openstack-dashboard"}, {"heads": [], "name": "stackforge/murano-common"}, {"heads": [], "name": "openstack-infra/gearman-plugin"}, {"heads": [], "name": "openstack-infra/gerritbot"}, {"heads": [], "name": "stackforge/python-savannaclient"}, {"heads": [], "name": "openstack-infra/elastic-recheck"}, {"heads": [], "name": "stackforge/pecan"}, {"heads": [], "name": "openstack/diskimage-builder"}, {"heads": [], "name": "stackforge/cookbook-openstack-orchestration"}, {"heads": [], "name": "stackforge/cookbook-openstack-common"}, {"heads": [], "name": "stackforge/cookbook-openstack-object-storage"}, {"heads": [], "name": "openstack-infra/nodepool"}, {"heads": [], "name": "stackforge/cookbook-openstack-compute"}, {"heads": [], "name": "openstack/python-troveclient"}, {"heads": [], "name": "stackforge/climate"}, {"heads": [], "name": "openstack-infra/git-review"}, {"heads": [], "name": "openstack-infra/gitdm"}, {"heads": [], "name": "stackforge/designate"}, {"heads": [], "name": "openstack-infra/config"}, {"heads": [], "name": "stackforge/tuskar"}, {"heads": [], "name": "stackforge/murano-dashboard"}, {"heads": [], "name": "stackforge/pyghmi"}, {"heads": [], "name": "openstack/operations-guide"}, {"heads": [], "name": "stackforge/cl-openstack-client"}, {"heads": [], "name": "stackforge/puppet-neutron"}, {"heads": [], "name": "stackforge/stackalytics"}, {"heads": [], "name": "stackforge/python-manilaclient"}, {"heads": [], "name": "stackforge/puppet-openstack"}, {"heads": [], "name": "stackforge/cookbook-openstack-metering"}, {"heads": [], "name": "openstack-infra/gerritlib"}, {"heads": [], "name": "stackforge/sqlalchemy-migrate"}, {"heads": [], "name": "stackforge/manila"}, {"heads": [], "name": "stackforge/kwapi"}, {"heads": [], "name": "openstack-infra/zmq-event-publisher"}, {"heads": [], "name": "openstack/os-collect-config"}, {"heads": [], "name": "openstack-infra/statusbot"}, {"heads": [], "name": "stackforge/python-libraclient"}, {"heads": [], "name": "openstack-infra/gear"}, {"heads": [], "name": "openstack-infra/zuul"}, {"heads": [], "name": "stackforge/libra"}, {"heads": [], "name": "stackforge/bindep"}, {"heads": [], "name": "stackforge/savanna-dashboard"}, {"heads": [], "name": "openstack/os-apply-config"}, {"heads": [], "name": "stackforge/openstack-chef-repo"}, {"heads": [], "name": "openstack-infra/storyboard"}, {"heads": [], "name": "stackforge/cookbook-openstack-network"}, {"heads": [], "name": "stackforge/cookbook-openstack-ops-database"}, {"heads": [], "name": "openstack-infra/pypi-mirror"}, {"heads": [], "name": "openstack/oslo-incubator"}, {"heads": [], "name": "stackforge/puppet-swift"}, {"heads": [], "name": "openstack-dev/hacking"}, {"heads": [], "name": "stackforge/cookbook-openstack-ops-messaging"}, {"heads": [], "name": "stackforge/puppet-keystone"}, {"heads": [], "name": "stackforge/inception"}, {"heads": [], "name": "openstack/os-refresh-config"}, {"heads": [], "name": "stackforge/healthnmon"}, {"heads": [], "name": "openstack-infra/jenkins-job-builder"}, {"heads": [], "name": "stackforge/python-muranoclient"}, {"heads": [], "name": "stackforge/python-designateclient"}, {"heads": [], "name": "stackforge/puppet-ceilometer"}, {"heads": [], "name": "openstack/django_openstack_auth"}, {"heads": [], "name": "stackforge/cookbook-openstack-block-storage"}, {"heads": [], "name": "stackforge/puppet-tempest"}, {"heads": [], "name": "stackforge/billingstack"}, {"heads": [], "name": "openstack/tripleo-incubator"}, {"heads": [], "name": "stackforge/rally"}, {"heads": [], "name": "stackforge/wsme"}, {"heads": [], "name": "openstack/python-openstackclient"}, {"heads": [], "name": "openstack/marconi"}, {"heads": [], "name": "openstack/openstack-manuals"}], "name": "gate"}, {"description": "This pipeline runs jobs that operate after each change is merged.", "change_queues": [{"heads": [[{"failing_reasons": ["at least one job failed"], "items_behind": [], "jobs": [{"elapsed_time": 111939, "name": "nova-branch-tarball", "url": "https://jenkins01.openstack.org/job/nova-branch-tarball/399/", "voting": true, "remaining_time": 71193, "result": null}, {"elapsed_time": 111936, "name": "nova-coverage", "url": "https://jenkins01.openstack.org/job/nova-coverage/395/", "voting": true, "remaining_time": 902451, "result": null}, {"elapsed_time": 111938, "name": "nova-docs", "url": "https://jenkins01.openstack.org/job/nova-docs/376/", "voting": true, "remaining_time": 204320, "result": null}, {"elapsed_time": 102513, "name": "nova-upstream-translation-update", "url": "https://jenkins.openstack.org/job/nova-upstream-translation-update/4393/", "voting": true, "remaining_time": 0, "result": "FAILURE"}], "url": "https://review.openstack.org/gitweb?p=openstack/nova.git;a=commitdiff;h=839b5e593f54dbd94f430af45e77f174329942b5", "item_ahead": null, "enqueue_time": 1380314129491, "project": "openstack/nova", "remaining_time": 902451, "id": "839b5e593f54dbd94f430af45e77f174329942b5"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 79896, "name": "tempest-docs", "url": "https://jenkins02.openstack.org/job/tempest-docs/83/", "voting": true, "remaining_time": 150587, "result": null}, {"elapsed_time": 79831, "name": "tempest-branch-tarball", "url": "https://jenkins02.openstack.org/job/tempest-branch-tarball/90/", "voting": true, "remaining_time": 92417, "result": null}], "url": "https://review.openstack.org/gitweb?p=openstack/tempest.git;a=commitdiff;h=6d4eecc3ca744a6b6d78f57b4a9177652bcab166", "item_ahead": null, "enqueue_time": 1380314162965, "project": "openstack/tempest", "remaining_time": 150587, "id": "6d4eecc3ca744a6b6d78f57b4a9177652bcab166"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": null, "name": "nova-branch-tarball", "url": null, "voting": true, "remaining_time": null, "result": null}, {"elapsed_time": 72296, "name": "nova-coverage", "url": "https://jenkins01.openstack.org/job/nova-coverage/396/", "voting": true, "remaining_time": 942091, "result": null}, {"elapsed_time": 72128, "name": "nova-docs", "url": "https://jenkins02.openstack.org/job/nova-docs/328/", "voting": true, "remaining_time": 226661, "result": null}, {"elapsed_time": 10567, "name": "nova-upstream-translation-update", "url": "https://jenkins.openstack.org/job/nova-upstream-translation-update/4394/", "voting": true, "remaining_time": 139, "result": null}], "url": "https://review.openstack.org/gitweb?p=openstack/nova.git;a=commitdiff;h=a9890c554685959199cb01dfff4a989c2e410649", "item_ahead": null, "enqueue_time": 1380314170606, "project": "openstack/nova", "remaining_time": null, "id": "a9890c554685959199cb01dfff4a989c2e410649"}], [{"failing_reasons": [], "items_behind": [], "jobs": [{"elapsed_time": 58196, "name": "nova-branch-tarball", "url": "https://jenkins02.openstack.org/job/nova-branch-tarball/306/", "voting": true, "remaining_time": 162209, "result": null}, {"elapsed_time": 58156, "name": "nova-coverage", "url": "https://jenkins02.openstack.org/job/nova-coverage/308/", "voting": true, "remaining_time": 1164893, "result": null}, {"elapsed_time": 58150, "name": "nova-docs", "url": "https://jenkins02.openstack.org/job/nova-docs/329/", "voting": true, "remaining_time": 240639, "result": null}, {"elapsed_time": null, "name": "nova-upstream-translation-update", "url": null, "voting": true, "remaining_time": null, "result": null}], "url": "https://review.openstack.org/gitweb?p=openstack/nova.git;a=commitdiff;h=2d5755416c6ae52f61ec342d100cec9be6ff4539", "item_ahead": null, "enqueue_time": 1380314184610, "project": "openstack/nova", "remaining_time": null, "id": "2d5755416c6ae52f61ec342d100cec9be6ff4539"}]], "name": "openstack-dev/hacking, openstack-dev/openstack-qa, openstack-dev/pbr, openstack-infra/config, openstack-infra/gear, openstack-infra/gearman-plugin, openstack-infra/gerrit, openstack-infra/gerritbot, openstack-infra/git-review, openstack-infra/jenkins-job-builder, openstack-infra/nodepool, openstack-infra/nose-html-output, openstack-infra/publications, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/storyboard, openstack-infra/zmq-event-publisher, openstack-infra/zuul, openstack/api-site, openstack/ceilometer, openstack/cinder, openstack/compute-api, openstack/diskimage-builder, openstack/django_openstack_auth, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/identity-api, openstack/image-api, openstack/ironic, openstack/keystone, openstack/marconi, openstack/netconn-api, openstack/neutron, openstack/nova, openstack/object-api, openstack/openstack-manuals, openstack/operations-guide, openstack/os-apply-config, openstack/os-collect-config, openstack/os-refresh-config, openstack/oslo-incubator, openstack/oslo.config, openstack/oslo.messaging, openstack/oslo.sphinx, openstack/oslo.version, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-ironicclient, openstack/python-keystoneclient, openstack/python-marconiclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-swiftclient, openstack/python-troveclient, openstack/requirements, openstack/swift, openstack/tempest, openstack/tripleo-image-elements, openstack/tripleo-incubator, openstack/trove, openstack/volume-api, stackforge/barbican, stackforge/billingstack, stackforge/bindep, stackforge/bufunfa, stackforge/designate, stackforge/libra, stackforge/manila, stackforge/murano-api, stackforge/murano-common, stackforge/murano-conductor, stackforge/murano-dashboard, stackforge/pecan, stackforge/pycadf, stackforge/python-designateclient, stackforge/python-manilaclient, stackforge/python-muranoclient, stackforge/python-savannaclient, stackforge/python-tuskarclient, stackforge/rally, stackforge/savanna, stackforge/savanna-dashboard, stackforge/sqlalchemy-migrate, stackforge/stackalytics, stackforge/wsme"}], "name": "post"}, {"description": "This pipeline runs jobs on projects in response to pre-release tags.", "change_queues": [{"heads": [], "name": "openstack-dev/hacking, openstack-dev/pbr, openstack-infra/gear, openstack-infra/gerritbot, openstack-infra/gerritlib, openstack-infra/git-review, openstack-infra/jeepyb, openstack-infra/jenkins-job-builder, openstack-infra/nodepool, openstack-infra/nose-html-output, openstack-infra/pypi-mirror, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/storyboard, openstack-infra/zuul, openstack/ceilometer, openstack/cinder, openstack/diskimage-builder, openstack/django_openstack_auth, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/ironic, openstack/keystone, openstack/marconi, openstack/neutron, openstack/nova, openstack/os-apply-config, openstack/os-collect-config, openstack/os-refresh-config, openstack/oslo.config, openstack/oslo.messaging, openstack/oslo.sphinx, openstack/oslo.version, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-marconiclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-swiftclient, openstack/python-troveclient, openstack/swift, openstack/tripleo-image-elements, openstack/tripleo-incubator, openstack/trove, stackforge/billingstack, stackforge/bindep, stackforge/designate, stackforge/libra, stackforge/murano-api, stackforge/murano-common, stackforge/murano-conductor, stackforge/murano-dashboard, stackforge/pecan, stackforge/pycadf, stackforge/python-designateclient, stackforge/python-muranoclient, stackforge/python-savannaclient, stackforge/rally, stackforge/savanna, stackforge/savanna-dashboard, stackforge/sqlalchemy-migrate, stackforge/stackalytics, stackforge/wsme"}], "name": "pre-release"}, {"description": "When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.", "change_queues": [{"heads": [], "name": "openstack-dev/hacking, openstack-dev/openstack-qa, openstack-dev/pbr, openstack-infra/gear, openstack-infra/gearman-plugin, openstack-infra/gerritbot, openstack-infra/gerritlib, openstack-infra/git-review, openstack-infra/jeepyb, openstack-infra/jenkins-job-builder, openstack-infra/nodepool, openstack-infra/nose-html-output, openstack-infra/pypi-mirror, openstack-infra/reviewday, openstack-infra/statusbot, openstack-infra/storyboard, openstack-infra/zmq-event-publisher, openstack-infra/zuul, openstack/ceilometer, openstack/cinder, openstack/diskimage-builder, openstack/django_openstack_auth, openstack/glance, openstack/heat, openstack/heat-cfntools, openstack/horizon, openstack/ironic, openstack/keystone, openstack/marconi, openstack/neutron, openstack/nova, openstack/os-apply-config, openstack/os-collect-config, openstack/os-refresh-config, openstack/oslo-incubator, openstack/oslo.config, openstack/oslo.messaging, openstack/oslo.sphinx, openstack/oslo.version, openstack/python-ceilometerclient, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-marconiclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/python-openstackclient, openstack/python-swiftclient, openstack/python-troveclient, openstack/swift, openstack/tripleo-image-elements, openstack/tripleo-incubator, openstack/trove, stackforge/billingstack, stackforge/bindep, stackforge/designate, stackforge/libra, stackforge/murano-api, stackforge/murano-common, stackforge/murano-conductor, stackforge/murano-dashboard, stackforge/pecan, stackforge/pycadf, stackforge/python-designateclient, stackforge/python-muranoclient, stackforge/python-savannaclient, stackforge/rally, stackforge/savanna, stackforge/savanna-dashboard, stackforge/sqlalchemy-migrate, stackforge/stackalytics, stackforge/wsme"}], "name": "release"}, {"description": "This pipeline is used for silently testing new jobs.", "change_queues": [{"heads": [], "name": ""}], "name": "silent"}, {"description": "On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of \"check experimental\" to run jobs in this pipeline.", "change_queues": [{"heads": [], "name": "openstack-dev/devstack, openstack-dev/grenade, openstack-dev/pbr, openstack-infra/devstack-gate, openstack/cinder, openstack/glance, openstack/heat, openstack/horizon, openstack/keystone, openstack/neutron, openstack/nova, openstack/oslo-incubator, openstack/python-cinderclient, openstack/python-glanceclient, openstack/python-heatclient, openstack/python-keystoneclient, openstack/python-neutronclient, openstack/python-novaclient, openstack/swift, openstack/tempest, stackforge/sqlalchemy-migrate"}], "name": "experimental"}, {"description": "Jobs in this queue are triggered on a timer.", "change_queues": [{"heads": [], "name": "openstack-infra/gitdm, openstack-infra/zuul, openstack/ceilometer, openstack/cinder, openstack/glance, openstack/heat, openstack/horizon, openstack/keystone, openstack/neutron, openstack/nova, openstack/openstack-manuals, openstack/requirements, openstack/tempest, stackforge/savanna"}], "name": "periodic"}], "trigger_event_queue": {"length": 85}, "result_event_queue": {"length": 2}} \ No newline at end of file
diff --git a/web/config/webpack.common.js b/web/config/webpack.common.js
new file mode 100644
index 000000000..ce27980d8
--- /dev/null
+++ b/web/config/webpack.common.js
@@ -0,0 +1,147 @@
+const path = require('path')
+const webpack = require('webpack')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
+
+module.exports = {
+ entry: './web/main.ts',
+ resolve: {
+ extensions: [ '.tsx', '.ts', '.js' ]
+ },
+ output: {
+ filename: '[name].js',
+ // path.resolve(__dirname winds up relative to the config dir
+ path: path.resolve(__dirname, '../../zuul/web/static'),
+ publicPath: ''
+ },
+ // Some folks prefer "cheaper" source-map for dev and one that is more
+ // expensive to build for prod. Debugging without the full source-map sucks,
+ // so define it here in common.
+ devtool: 'source-map',
+ optimization: {
+ runtimeChunk: true,
+ splitChunks: {
+ cacheGroups: {
+ commons: {
+ test: /node_modules/,
+ name: 'vendor',
+ chunks: 'all'
+ }
+ }
+ }
+ },
+ plugins: [
+ new ForkTsCheckerWebpackPlugin(),
+ new webpack.ProvidePlugin({
+ $: 'jquery/dist/jquery',
+ jQuery: 'jquery/dist/jquery',
+ }),
+ // Each of the entries below lists a specific 'chunk' which is one of the
+ // entry items from above. We can collapse this to just do one single
+ // output file.
+ new HtmlWebpackPlugin({
+ filename: 'index.html',
+ template: 'web/config/main.ejs',
+ title: 'Zuul Status'
+ }),
+ new HtmlWebpackPlugin({
+ filename: 'status.html',
+ template: 'web/config/main.ejs',
+ title: 'Zuul Status'
+ }),
+ new HtmlWebpackPlugin({
+ title: 'Zuul Builds',
+ template: 'web/config/main.ejs',
+ filename: 'builds.html'
+ }),
+ new HtmlWebpackPlugin({
+ title: 'Zuul Jobs',
+ template: 'web/config/main.ejs',
+ filename: 'jobs.html'
+ }),
+ new HtmlWebpackPlugin({
+ title: 'Zuul Tenants',
+ template: 'web/config/main.ejs',
+ filename: 'tenants.html'
+ }),
+ new HtmlWebpackPlugin({
+ title: 'Zuul Console Stream',
+ template: 'web/config/main.ejs',
+ filename: 'stream.html'
+ })
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: {
+ loader: 'ts-loader',
+ options: {
+ // disable type checker - we will use it in fork plugin
+ transpileOnly: true
+ }
+ }
+ },
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: [
+ 'babel-loader'
+ ]
+ },
+ {
+ test: /.css$/,
+ use: [
+ 'style-loader',
+ 'css-loader'
+ ]
+ },
+ {
+ test: /\.(png|svg|jpg|gif)$/,
+ use: ['file-loader'],
+ },
+ // The majority of the rules below are all about getting bootstrap copied
+ // appropriately.
+ {
+ test: /\.woff(2)?(\?v=\d+\.\d+\.\d+)?$/,
+ use: {
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ mimetype: 'application/font-woff'
+ }
+ }
+ },
+ {
+ test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
+ use: {
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ mimetype: 'application/octet-stream'
+ }
+ }
+ },
+ {
+ test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
+ use: ['file-loader'],
+ },
+ {
+ test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
+ use: {
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ mimetype: 'image/svg+xml'
+ }
+ }
+ },
+ {
+ test: /\.html$/,
+ use: ['html-loader'],
+ exclude: /node_modules/
+ }
+ ]
+ }
+};
diff --git a/web/config/webpack.dev.js b/web/config/webpack.dev.js
new file mode 100644
index 000000000..6a9a98a8b
--- /dev/null
+++ b/web/config/webpack.dev.js
@@ -0,0 +1,23 @@
+const path = require('path');
+const webpack = require('webpack');
+const Merge = require('webpack-merge');
+const CommonConfig = require('./webpack.common.js');
+
+module.exports = Merge(CommonConfig, {
+ mode: 'development',
+ // Enable Hot Module Replacement for devServer
+ devServer: {
+ hot: true,
+ contentBase: path.resolve(__dirname, './zuul/web/static'),
+ publicPath: '/'
+ },
+ plugins: [
+ new webpack.HotModuleReplacementPlugin(),
+ // We only need to bundle the demo files when we're running locally
+ new webpack.ProvidePlugin({
+ DemoStatusBasic: '../config/status-basic.json',
+ DemoStatusOpenStack: '../config/status-openstack.json',
+ DemoStatusTree: '../config/status-tree.json'
+ }),
+ ]
+})
diff --git a/web/config/webpack.lint.js b/web/config/webpack.lint.js
new file mode 100644
index 000000000..40fd03a73
--- /dev/null
+++ b/web/config/webpack.lint.js
@@ -0,0 +1,47 @@
+const path = require('path');
+const webpack = require('webpack');
+const Merge = require('webpack-merge');
+const CommonConfig = require('./webpack.common.js');
+const BundleAnalyzer = require('webpack-bundle-analyzer');
+
+module.exports = Merge(CommonConfig, {
+ mode: 'development',
+ module: {
+ rules: [
+ {
+ enforce: 'pre',
+ test: /\.ts$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'tslint-loader',
+ options: {
+ emitErrors: true,
+ typeCheck: false,
+
+ }
+ }
+ ]
+ },
+ {
+ enforce: 'pre',
+ test: /\.js$/,
+ use: [
+ 'babel-loader',
+ 'eslint-loader'
+ ],
+ exclude: /node_modules/,
+ }
+ ]
+ },
+ plugins: [
+ new webpack.HotModuleReplacementPlugin(),
+ new BundleAnalyzer.BundleAnalyzerPlugin({
+ analyzerMode: 'static',
+ reportFilename: '../../../reports/bundle.html',
+ generateStatsFile: true,
+ openAnalyzer: false,
+ statsFilename: '../../../reports/stats.json',
+ }),
+ ]
+})
diff --git a/web/config/webpack.prod.js b/web/config/webpack.prod.js
new file mode 100644
index 000000000..8bc0d37d7
--- /dev/null
+++ b/web/config/webpack.prod.js
@@ -0,0 +1,32 @@
+const path = require('path');
+const webpack = require('webpack');
+const Merge = require('webpack-merge');
+const CommonConfig = require('./webpack.common.js');
+const CleanWebpackPlugin = require('clean-webpack-plugin');
+const ArchivePlugin = require('webpack-archive-plugin');
+
+module.exports = Merge(CommonConfig, {
+ mode: 'production',
+ output: {
+ filename: '[name].[chunkhash].js',
+ // path.resolve(__dirname winds up relative to the config dir
+ path: path.resolve(__dirname, '../../zuul/web/static'),
+ publicPath: ''
+ },
+ optimization: {
+ minimize: true
+ },
+ plugins: [
+ new CleanWebpackPlugin(
+ ['zuul/web/static'], { root: path.resolve(__dirname, '../..')}),
+ // Keeps the vendor bundle from changing needlessly.
+ new webpack.HashedModuleIdsPlugin(),
+ new ArchivePlugin({
+ output: path.resolve(__dirname, '../../zuul-web'),
+ format: [
+ 'tar',
+ ],
+ ext: 'tgz'
+ })
+ ]
+})
diff --git a/web/core/core.module.ts b/web/core/core.module.ts
new file mode 100644
index 000000000..645192f9c
--- /dev/null
+++ b/web/core/core.module.ts
@@ -0,0 +1,24 @@
+import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'
+
+import { CommonModule } from '@angular/common'
+
+import { ZuulService } from '../zuul/zuul.service'
+
+@NgModule({
+ imports: [ CommonModule ],
+ providers: [ ZuulService ]
+})
+export class CoreModule {
+ constructor (@Optional() @SkipSelf() parentModule: CoreModule) {
+ if (parentModule) {
+ throw new Error(
+ 'CoreModule is already loaded. Import it in the AppModule only')
+ }
+ }
+
+ static forRoot(config: {}): ModuleWithProviders {
+ return {
+ ngModule: CoreModule,
+ }
+ }
+}
diff --git a/web/images/black.png b/web/images/black.png
new file mode 100644
index 000000000..252d87470
--- /dev/null
+++ b/web/images/black.png
Binary files differ
diff --git a/web/images/green.png b/web/images/green.png
new file mode 100644
index 000000000..a8765f141
--- /dev/null
+++ b/web/images/green.png
Binary files differ
diff --git a/web/images/grey.png b/web/images/grey.png
new file mode 100644
index 000000000..eaee0d7ce
--- /dev/null
+++ b/web/images/grey.png
Binary files differ
diff --git a/web/src/images/line-angle.png b/web/images/line-angle.png
index fa748682a..fa748682a 100644
--- a/web/src/images/line-angle.png
+++ b/web/images/line-angle.png
Binary files differ
diff --git a/web/src/images/line-t.png b/web/images/line-t.png
index cfd3111a3..cfd3111a3 100644
--- a/web/src/images/line-t.png
+++ b/web/images/line-t.png
Binary files differ
diff --git a/web/src/images/line.png b/web/images/line.png
index ace6bab3d..ace6bab3d 100644
--- a/web/src/images/line.png
+++ b/web/images/line.png
Binary files differ
diff --git a/web/images/red.png b/web/images/red.png
new file mode 100644
index 000000000..e9956e8c5
--- /dev/null
+++ b/web/images/red.png
Binary files differ
diff --git a/web/jobs/details.ts b/web/jobs/details.ts
new file mode 100644
index 000000000..8dd7b3831
--- /dev/null
+++ b/web/jobs/details.ts
@@ -0,0 +1,17 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+export default class JobDetails {
+ source_context: string
+}
diff --git a/web/jobs/job.ts b/web/jobs/job.ts
new file mode 100644
index 000000000..0ce6c0cbd
--- /dev/null
+++ b/web/jobs/job.ts
@@ -0,0 +1,25 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import JobDetails from './details'
+
+export default class Job {
+ expanded: boolean
+ details: JobDetails
+ name: string
+
+ constructor() {
+ this.expanded = false
+ }
+}
diff --git a/web/jobs/jobs.component.html b/web/jobs/jobs.component.html
new file mode 100644
index 000000000..87cdbb619
--- /dev/null
+++ b/web/jobs/jobs.component.html
@@ -0,0 +1,47 @@
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<div class="container-fluid">
+ <table class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Description</th>
+ <th>Last builds</th>
+ </tr>
+ </thead>
+ <tbody>
+ <ng-container *ngFor="let job of jobs">
+ <tr>
+ <td>{{ job.name }}</td>
+ <td>{{ job.description }}</td>
+ <td><a [routerLink]="['../builds.html']"
+ [queryParams]="{job_name: job.name}" target="_self">
+ builds</a></td>
+ </tr>
+ <tr *ngIf="job.expanded">
+ <td colspan="3">
+ <ul class="list-group">
+ <li class="list-group-item" *ngFor="let detail of job.details">
+ <!-- TODO: make clickable link to cgit files ? -->
+ {{ detail.source_context }}
+ </li>
+ </ul>
+ </td>
+ </tr>
+ </ng-container>
+ </tbody>
+ </table>
+</div>
diff --git a/web/jobs/jobs.component.ts b/web/jobs/jobs.component.ts
new file mode 100644
index 000000000..6323ae821
--- /dev/null
+++ b/web/jobs/jobs.component.ts
@@ -0,0 +1,54 @@
+// Copyright 2017 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Component, OnInit } from '@angular/core'
+import { HttpClient } from '@angular/common/http'
+import { ActivatedRoute } from '@angular/router'
+
+import ZuulService from '../zuul/zuul.service'
+import JobDetails from './details'
+import Job from './job'
+
+@Component({
+ template: require('./jobs.component.html')
+})
+export default class JobsComponent implements OnInit {
+
+ jobs: Job[]
+
+ constructor(
+ private http: HttpClient, private route: ActivatedRoute,
+ private zuul: ZuulService
+ ) {}
+
+ async ngOnInit() {
+ await this.zuul.setTenant(this.route.snapshot.paramMap.get('tenant'))
+ this.jobsFetch()
+ }
+
+ jobsFetch(): void {
+ const remoteLocation = this.zuul.getSourceUrl('jobs')
+ if (remoteLocation) {
+ this.http.get<Job[]>(remoteLocation)
+ .subscribe(jobs => this.injestJobs(jobs))
+ }
+ }
+
+ injestJobs(jobs: Job[]): void {
+ for (const job of jobs) {
+ job.expanded = false
+ }
+ this.jobs = jobs
+ }
+}
diff --git a/web/main.ts b/web/main.ts
new file mode 100644
index 000000000..4ee56015f
--- /dev/null
+++ b/web/main.ts
@@ -0,0 +1,22 @@
+// Copyright 2018 Red Hat, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import 'zone.js'
+import 'reflect-metadata'
+
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
+
+import { AppModule } from './app.module'
+
+platformBrowserDynamic().bootstrapModule(AppModule)
diff --git a/web/navigation/navigation.component.html b/web/navigation/navigation.component.html
new file mode 100644
index 000000000..b253c3a5d
--- /dev/null
+++ b/web/navigation/navigation.component.html
@@ -0,0 +1,30 @@
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<nav class="navbar navbar-default">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <a *ngIf="zuul.info && !zuul.info.whiteLabel" class="navbar-brand" [routerLink]="dashboardLink" target="_self">Zuul Dashboard</a>
+ <span *ngIf="zuul.info && zuul.info.whiteLabel" class="navbar-brand">Zuul Dashboard</span>
+ </div>
+ <ul class="nav navbar-nav" *ngIf="zuul.info && zuul.info.tenant !== ''">
+ <li routerLinkActive="active" *ngFor="let route of zuul.navbarRoutes">
+ <a [routerLink]="route.url">
+ {{ route.title }}
+ </a>
+ </li>
+ </ul>
+ </div>
+</nav>
diff --git a/web/navigation/navigation.component.ts b/web/navigation/navigation.component.ts
new file mode 100644
index 000000000..af5775158
--- /dev/null
+++ b/web/navigation/navigation.component.ts
@@ -0,0 +1,34 @@
+// Copyright 2018 Red Hat, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { OnInit, Component } from '@angular/core'
+import { Router, ResolveEnd } from '@angular/router'
+import { Observable } from 'rxjs/Observable'
+import { filter } from 'rxjs/operators'
+
+import ZuulService from '../zuul/zuul.service'
+
+@Component({
+ selector: 'navigation',
+ template: require('./navigation.component.html')
+})
+export default class NavigationComponent implements OnInit {
+ dashboardLink: string
+
+ constructor(private router: Router, private zuul: ZuulService) {}
+
+ async ngOnInit() {
+ this.dashboardLink = '/t/tenants.html'
+ }
+}
diff --git a/web/package.json b/web/package.json
deleted file mode 100644
index a8c212e8d..000000000
--- a/web/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "@zuul-ci/dashboard",
- "version": "1.0.0",
- "description": "Web Dashboard for Zuul",
- "repository": "https://git.zuul-ci.org/zuul",
- "author": "OpenStack Infra",
- "license": "Apache-2.0",
- "homepage": "/",
- "private": true,
- "dependencies": {
- "axios": "^0.18.0",
- "lodash": "^4.17.10",
- "patternfly-react": "^2.13.1",
- "prop-types": "^15.6.2",
- "react": "^16.4.2",
- "react-dom": "^16.4.2",
- "react-redux": "^5.0.7",
- "react-router": "^4.3.1",
- "react-router-dom": "^4.3.1",
- "react-scripts": "1.1.4",
- "redux": "<4.0.0",
- "redux-thunk": "^2.3.0",
- "sockette": "^2.0.0"
- },
- "devDependencies": {
- "eslint": "^5.3.0",
- "eslint-plugin-jest": "^21.21.0",
- "eslint-plugin-react": "^7.11.1",
- "eslint-plugin-standard": "^3.1.0",
- "yarn": "^1.9.4"
- },
- "scripts": {
- "start:openstack": "REACT_APP_ZUUL_API='https://zuul.openstack.org/api/' react-scripts start",
- "start:multi": "REACT_APP_ZUUL_API='https://softwarefactory-project.io/zuul/api/' react-scripts start",
- "start": "react-scripts start",
- "build": "react-scripts build",
- "test": "react-scripts test --env=jsdom",
- "eject": "react-scripts eject",
- "lint": "eslint --ext .js --ext .jsx src"
- }
-}
diff --git a/web/public/favicon.ico b/web/public/favicon.ico
deleted file mode 100644
index 006c4b0ce..000000000
--- a/web/public/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/web/public/index.html b/web/public/index.html
deleted file mode 100644
index b78be0e2a..000000000
--- a/web/public/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en" class="layout-pf layout-pf-fixed">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <meta name="theme-color" content="#000000">
- <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
- <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
- <title>Zuul</title>
- </head>
- <body>
- <noscript>
- You need to enable JavaScript to run this app.
- </noscript>
- <div id="root"></div>
- </body>
-</html>
diff --git a/web/public/manifest.json b/web/public/manifest.json
deleted file mode 100644
index d810a4fcb..000000000
--- a/web/public/manifest.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "short_name": "Zuul",
- "name": "Zuul Dashboard",
- "icons": [
- {
- "src": "favicon.ico",
- "sizes": "48x48 32x32",
- "type": "image/x-icon"
- }
- ],
- "start_url": "./index.html",
- "display": "standalone",
- "theme_color": "#000000",
- "background_color": "#ffffff"
-}
diff --git a/web/src/App.jsx b/web/src/App.jsx
deleted file mode 100644
index ad6f3993c..000000000
--- a/web/src/App.jsx
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-// The App is the parent component of every pages. Each page content is
-// rendered by the Route object according to the current location.
-
-import React from 'react'
-import PropTypes from 'prop-types'
-import { matchPath, withRouter } from 'react-router'
-import { Link, Redirect, Route, Switch } from 'react-router-dom'
-import { connect } from 'react-redux'
-import { Masthead } from 'patternfly-react'
-
-import logo from './images/logo.png'
-import { routes } from './routes'
-import { setTenantAction } from './reducers'
-
-
-class App extends React.Component {
- static propTypes = {
- info: PropTypes.object,
- tenant: PropTypes.object,
- location: PropTypes.object,
- dispatch: PropTypes.func
- }
-
- constructor() {
- super()
- this.menu = routes()
- }
-
- renderMenu() {
- const { location } = this.props
- const activeItem = this.menu.find(
- item => location.pathname === item.to
- )
- return (
- <ul className='nav navbar-nav navbar-primary'>
- {this.menu.filter(item => item.title).map(item => (
- <li key={item.to} className={item === activeItem ? 'active' : ''}>
- <Link to={this.props.tenant.linkPrefix + item.to}>
- {item.title}
- </Link>
- </li>
- ))}
- </ul>
- )
- }
-
- renderContent = () => {
- const { tenant } = this.props
- const allRoutes = []
- this.menu
- // Do not include '/tenants' route in white-label setup
- .filter(item =>
- (tenant.whiteLabel && !item.globalRoute) || !tenant.whiteLabel)
- .forEach((item, index) => {
- allRoutes.push(
- <Route
- key={index}
- path={item.globalRoute ? item.to : tenant.routePrefix + item.to}
- component={item.component}
- exact
- />
- )
- })
- return (
- <Switch>
- {allRoutes}
- <Redirect from='*' to={tenant.defaultRoute} key='default-route' />
- </Switch>
- )
- }
-
- componentDidUpdate() {
- // This method is called when info property is updated
- const { tenant, info } = this.props
- if (info.capabilities) {
- let tenantName, whiteLabel
-
- if (info.tenant) {
- // White label
- whiteLabel = true
- tenantName = info.tenant
- } else if (!info.tenant) {
- // Multi tenant, look for tenant name in url
- whiteLabel = false
-
- const match = matchPath(
- this.props.location.pathname, {path: '/t/:tenant'})
-
- if (match) {
- tenantName = match.params.tenant
- } else {
- tenantName = ''
- }
- }
- // Set tenant only if it changed to prevent DidUpdate loop
- if (typeof tenant.name === 'undefined' || tenant.name !== tenantName) {
- this.props.dispatch(setTenantAction(tenantName, whiteLabel))
- }
- }
- }
-
- render() {
- const { tenant } = this.props
- if (typeof tenant.name === 'undefined') {
- return (<h2>Loading...</h2>)
- }
-
- return (
- <React.Fragment>
- <Masthead
- iconImg={logo}
- navToggle
- thin
- >
- <div className='collapse navbar-collapse'>
- {tenant.name && this.renderMenu()}
- <ul className='nav navbar-nav navbar-utility'>
- <li>
- <a href='https://zuul-ci.org/docs'
- rel='noopener noreferrer' target='_blank'>
- Documentation
- </a>
- </li>
- {tenant.name && (
- <li>
- <Link to={tenant.defaultRoute}>
- <strong>Tenant</strong> {tenant.name}
- </Link>
- </li>
- )}
- </ul>
- </div>
- </Masthead>
- <div className='container-fluid container-cards-pf'>
- {this.renderContent()}
- </div>
- </React.Fragment>
- )
- }
-}
-
-// This connect the info state from the store to the info property of the App.
-export default withRouter(connect(
- state => ({
- info: state.info,
- tenant: state.tenant
- })
-)(App))
diff --git a/web/src/App.test.jsx b/web/src/App.test.jsx
deleted file mode 100644
index a5dc77df6..000000000
--- a/web/src/App.test.jsx
+++ /dev/null
@@ -1,102 +0,0 @@
-/* global Promise, expect, jest, it, location */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import React from 'react'
-import ReactTestUtils from 'react-dom/test-utils'
-import ReactDOM from 'react-dom'
-import { Link, BrowserRouter as Router } from 'react-router-dom'
-import { Provider } from 'react-redux'
-
-import { createZuulStore, fetchInfoAction } from './reducers'
-import App from './App'
-import TenantsPage from './pages/Tenants'
-import StatusPage from './pages/Status'
-import * as api from './api'
-
-api.fetchInfo = jest.fn()
-api.fetchTenants = jest.fn()
-api.fetchStatus = jest.fn()
-
-
-it('renders without crashing', () => {
- const div = document.createElement('div')
- const store = createZuulStore()
- ReactDOM.render(<Provider store={store}><Router><App /></Router></Provider>,
- div)
- ReactDOM.unmountComponentAtNode(div)
-})
-
-it('renders multi tenant', () => {
- api.fetchInfo.mockImplementation(
- () => Promise.resolve({data: {
- info: {capabilities: {}}
- }})
- )
- api.fetchTenants.mockImplementation(
- () => Promise.resolve({data: [{name: 'openstack'}]})
- )
- const store = createZuulStore()
- const application = ReactTestUtils.renderIntoDocument(
- <Provider store={store}><Router><App /></Router></Provider>
- )
- store.dispatch(fetchInfoAction()).then(() => {
- // Link should be tenant scoped
- const topMenuLinks = ReactTestUtils.scryRenderedComponentsWithType(
- application, Link)
- expect(topMenuLinks[0].props.to).toEqual('/t/openstack/status')
- expect(topMenuLinks[1].props.to).toEqual('/t/openstack/jobs')
- // Location should be /tenants
- expect(location.pathname).toEqual('/tenants')
- // Info should tell multi tenants
- expect(store.getState().info.tenant).toEqual(undefined)
- // Tenants list has been rendered
- expect(ReactTestUtils.findRenderedComponentWithType(
- application, TenantsPage)).not.toEqual(null)
- // Fetch tenants has been called
- expect(api.fetchTenants).toBeCalled()
- })
-})
-
-it('renders single tenant', () => {
- api.fetchInfo.mockImplementation(
- () => Promise.resolve({data: {
- info: {capabilities: {}, tenant: 'openstack'}
- }})
- )
- api.fetchStatus.mockImplementation(
- () => Promise.resolve({data: {pipelines: []}})
- )
- const store = createZuulStore()
- const application = ReactTestUtils.renderIntoDocument(
- <Provider store={store}><Router><App /></Router></Provider>
- )
-
- store.dispatch(fetchInfoAction()).then(() => {
- // Link should be white-label scoped
- const topMenuLinks = ReactTestUtils.scryRenderedComponentsWithType(
- application, Link)
- expect(topMenuLinks[0].props.to).toEqual('/status')
- expect(topMenuLinks[1].props.to).toEqual('/jobs')
- // Location should be /status
- expect(location.pathname).toEqual('/status')
- // Info should tell white label tenant openstack
- expect(store.getState().info.tenant).toEqual('openstack')
- // Status page has been rendered
- expect(ReactTestUtils.findRenderedComponentWithType(
- application, StatusPage)).not.toEqual(null)
- // Fetch status has been called
- expect(api.fetchStatus).toBeCalled()
- })
-})
diff --git a/web/src/api.js b/web/src/api.js
deleted file mode 100644
index 9af4adb8e..000000000
--- a/web/src/api.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/* global process, window */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import Axios from 'axios'
-
-function getHomepageUrl (url) {
- //
- // Discover serving location from href.
- //
- // This is only needed for sub-directory serving.
- // Serving the application from '/' may simply default to '/'
- //
- // Note that this is not enough for sub-directory serving,
- // The static files location also needs to be adapted with the 'homepage'
- // settings of the package.json file.
- //
- // This homepage url is used for the Router and Link resolution logic
- //
- let baseUrl
- if (url) {
- baseUrl = url
- } else {
- baseUrl = window.location.href
- }
- // Get dirname of the current url
- baseUrl = baseUrl.replace(/\\/g, '/').replace(/\/[^/]*$/, '/')
-
- // Remove any query strings
- if (baseUrl.includes('?')) {
- baseUrl = baseUrl.slice(0, baseUrl.lastIndexOf('?'))
- }
- // Remove any hash anchor
- if (baseUrl.includes('/#')) {
- baseUrl = baseUrl.slice(0, baseUrl.lastIndexOf('/#') + 1)
- }
-
- // Remove known sub-path
- const subDir = [
- '/build/',
- '/job/',
- '/project/',
- '/stream/',
- ]
- subDir.forEach(path => {
- if (baseUrl.includes(path)) {
- baseUrl = baseUrl.slice(0, baseUrl.lastIndexOf(path) + 1)
- }
- })
-
- // Remove tenant scope
- if (baseUrl.includes('/t/')) {
- baseUrl = baseUrl.slice(0, baseUrl.lastIndexOf('/t/') + 1)
- }
- if (! baseUrl.endsWith('/')) {
- baseUrl = baseUrl + '/'
- }
- // console.log('Homepage url is ', baseUrl)
- return baseUrl
-}
-
-function getZuulUrl () {
- // Return the zuul root api absolute url
- const ZUUL_API = process.env.REACT_APP_ZUUL_API
- let apiUrl
-
- if (ZUUL_API) {
- // Api url set at build time, use it
- apiUrl = ZUUL_API
- } else {
- // Api url is relative to homepage path
- apiUrl = getHomepageUrl () + 'api/'
- }
- if (! apiUrl.endsWith('/')) {
- apiUrl = apiUrl + '/'
- }
- if (! apiUrl.endsWith('/api/')) {
- apiUrl = apiUrl + 'api/'
- }
- // console.log('Api url is ', apiUrl)
- return apiUrl
-}
-const apiUrl = getZuulUrl()
-
-
-function getStreamUrl (apiPrefix) {
- const streamUrl = (apiUrl + apiPrefix)
- .replace(/(http)(s)?:\/\//, 'ws$2://') + 'console-stream'
- // console.log('Stream url is ', streamUrl)
- return streamUrl
-}
-
-// Direct APIs
-function fetchInfo () {
- return Axios.get(apiUrl + 'info')
-}
-function fetchTenants () {
- return Axios.get(apiUrl + 'tenants')
-}
-function fetchStatus (apiPrefix) {
- return Axios.get(apiUrl + apiPrefix + 'status')
-}
-function fetchBuilds (apiPrefix, queryString) {
- let path = 'builds'
- if (queryString) {
- path += '?' + queryString.slice(1)
- }
- return Axios.get(apiUrl + apiPrefix + path)
-}
-function fetchJobs (apiPrefix) {
- return Axios.get(apiUrl + apiPrefix + 'jobs')
-}
-
-export {
- getHomepageUrl,
- getStreamUrl,
- fetchStatus,
- fetchBuilds,
- fetchJobs,
- fetchTenants,
- fetchInfo
-}
diff --git a/web/src/containers/TableFilters.jsx b/web/src/containers/TableFilters.jsx
deleted file mode 100644
index a2a23dc63..000000000
--- a/web/src/containers/TableFilters.jsx
+++ /dev/null
@@ -1,237 +0,0 @@
-/* global URLSearchParams */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-// Boiler plate code to manage table filtering
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { Button, Filter, FormControl, Toolbar } from 'patternfly-react'
-
-
-class TableFilters extends React.Component {
- static propTypes = {
- location: PropTypes.object
- }
-
- getFilterFromUrl = () => {
- const urlParams = new URLSearchParams(this.props.location.search)
- let activeFilters = []
- this.filterTypes.forEach(item => {
- urlParams.getAll(item.id).forEach(param => {
- activeFilters.push({
- label: item.title + ': ' + param,
- key: item.id,
- value: param})
- })
- })
- this.setState({activeFilters: activeFilters})
- return activeFilters
- }
-
- updateUrl (activeFilters) {
- let path = this.props.location.pathname
- if (activeFilters.length > 0) {
- path += '?'
- activeFilters.forEach((item, idx) => {
- if (idx > 0) {
- path += '&'
- }
- path += (
- encodeURIComponent(item.key)
- + '=' +
- encodeURIComponent(item.value)
- )
- })
- }
- window.history.pushState({path: path}, '', path)
- }
-
- filterAdded = (field, value) => {
- let filterText = ''
- if (field.title) {
- filterText = field.title
- } else {
- filterText = field
- }
- filterText += ': '
-
- if (value.filterCategory) {
- filterText +=
- (value.filterCategory.title || value.filterCategory) +
- '-' +
- (value.filterValue.title || value.filterValue)
- } else if (value.title) {
- filterText += value.title
- } else {
- filterText += value
- }
-
- let activeFilters = [...this.state.activeFilters, {
- label: filterText,
- key: field.id,
- value: value
- }]
- this.setState({ activeFilters: activeFilters })
- this.updateData(activeFilters)
- this.updateUrl(activeFilters)
- }
-
- selectFilterType = filterType => {
- const { currentFilterType } = this.state
- if (currentFilterType !== filterType) {
- this.setState(prevState => {
- return {
- currentValue: '',
- currentFilterType: filterType,
- filterCategory:
- filterType.filterType === 'complex-select'
- ? undefined
- : prevState.filterCategory,
- categoryValue:
- filterType.filterType === 'complex-select'
- ? ''
- : prevState.categoryValue
- }
- })
- }
- }
-
- filterValueSelected = filterValue => {
- const { currentFilterType, currentValue } = this.state
-
- if (filterValue !== currentValue) {
- this.setState({ currentValue: filterValue })
- if (filterValue) {
- this.filterAdded(currentFilterType, filterValue)
- }
- }
- }
-
- filterCategorySelected = category => {
- const { filterCategory } = this.state
- if (filterCategory !== category) {
- this.setState({ filterCategory: category, currentValue: '' })
- }
- }
-
- categoryValueSelected = value => {
- const { currentValue, currentFilterType, filterCategory } = this.state
-
- if (filterCategory && currentValue !== value) {
- this.setState({ currentValue: value })
- if (value) {
- let filterValue = {
- filterCategory: filterCategory,
- filterValue: value
- }
- this.filterAdded(currentFilterType, filterValue)
- }
- }
- }
-
- updateCurrentValue = event => {
- this.setState({ currentValue: event.target.value })
- }
-
- onValueKeyPress = keyEvent => {
- const { currentValue, currentFilterType } = this.state
-
- if (keyEvent.key === 'Enter' && currentValue && currentValue.length > 0) {
- this.setState({ currentValue: '' })
- this.filterAdded(currentFilterType, currentValue)
- keyEvent.stopPropagation()
- keyEvent.preventDefault()
- }
- }
-
- removeFilter = filter => {
- const { activeFilters } = this.state
-
- let index = activeFilters.indexOf(filter)
- if (index > -1) {
- let updated = [
- ...activeFilters.slice(0, index),
- ...activeFilters.slice(index + 1)
- ]
- this.setState({ activeFilters: updated })
- this.updateData(updated)
- this.updateUrl(updated)
- }
- }
-
- clearFilters = () => {
- this.setState({ activeFilters: [] })
- this.updateData()
- this.updateUrl([])
- }
-
- renderFilterInput() {
- const { currentFilterType, currentValue } = this.state
- if (!currentFilterType) {
- return null
- }
- return (
- <FormControl
- type={currentFilterType.filterType}
- value={currentValue}
- placeholder={currentFilterType.placeholder}
- onChange={e => this.updateCurrentValue(e)}
- onKeyPress={e => this.onValueKeyPress(e)}
- />
- )
- }
-
- renderFilter = () => {
- const { currentFilterType, activeFilters } = this.state
- return (
- <React.Fragment>
- <div style={{ width: 300 }}>
- <Filter>
- <Filter.TypeSelector
- filterTypes={this.filterTypes}
- currentFilterType={currentFilterType}
- onFilterTypeSelected={this.selectFilterType}
- />
- {this.renderFilterInput()}
- </Filter>
- </div>
- {activeFilters && activeFilters.length > 0 && (
- <Toolbar.Results>
- <Filter.ActiveLabel>{'Active Filters:'}</Filter.ActiveLabel>
- <Filter.List>
- {activeFilters.map((item, index) => {
- return (
- <Filter.Item
- key={index}
- onRemove={this.removeFilter}
- filterData={item}
- >
- {item.label}
- </Filter.Item>
- )
- })}
- </Filter.List>
- <Button onClick={e => {
- e.preventDefault()
- this.clearFilters()
- }}>Clear All Filters</Button>
- </Toolbar.Results>
- )}
- </React.Fragment>
- )
- }
-}
-
-export default TableFilters
diff --git a/web/src/containers/status/Change.jsx b/web/src/containers/status/Change.jsx
deleted file mode 100644
index ddd82a9ae..000000000
--- a/web/src/containers/status/Change.jsx
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-
-import LineAngleImage from '../../images/line-angle.png'
-import LineTImage from '../../images/line-t.png'
-import ChangePanel from './ChangePanel'
-
-
-class Change extends React.Component {
- static propTypes = {
- change: PropTypes.object.isRequired,
- queue: PropTypes.object.isRequired,
- expanded: PropTypes.bool.isRequired
- }
-
- renderStatusIcon (change) {
- let iconGlyph = 'pficon pficon-ok'
- let iconTitle = 'Succeeding'
- if (change.active !== true) {
- iconGlyph = 'pficon pficon-pending'
- iconTitle = 'Waiting until closer to head of queue to' +
- ' start jobs'
- } else if (change.live !== true) {
- iconGlyph = 'pficon pficon-info'
- iconTitle = 'Dependent change required for testing'
- } else if (change.failing_reasons &&
- change.failing_reasons.length > 0) {
- let reason = change.failing_reasons.join(', ')
- iconTitle = 'Failing because ' + reason
- if (reason.match(/merge conflict/)) {
- iconGlyph = 'pficon pficon-error-circle-o zuul-build-merge-conflict'
- } else {
- iconGlyph = 'pficon pficon-error-circle-o'
- }
- }
- return (
- <span className={'zuul-build-status ' + iconGlyph}
- title={iconTitle} />
- )
- }
-
- renderLineImg (change, i) {
- let image = LineTImage
- if (change._tree_branches.indexOf(i) === change._tree_branches.length - 1) {
- // Angle line
- image = LineAngleImage
- }
- return <img alt="Line" src={image} style={{verticalAlign: 'baseline'}} />
- }
-
- render () {
- const { change, queue, expanded } = this.props
- let row = []
- let i
- for (i = 0; i < queue._tree_columns; i++) {
- let className = ''
- if (i < change._tree.length && change._tree[i] !== null) {
- className = ' zuul-change-row-line'
- }
- row.push(
- <td key={i} className={'zuul-change-row' + className}>
- {i === change._tree_index ? this.renderStatusIcon(change) : ''}
- {change._tree_branches.indexOf(i) !== -1 ? (
- this.renderLineImg(change, i)) : ''}
- </td>)
- }
- let changeWidth = 360 - 16 * queue._tree_columns
- row.push(
- <td key={i + 1}
- className="zuul-change-cell"
- style={{width: changeWidth + 'px'}}>
- <ChangePanel change={change} globalExpanded={expanded} />
- </td>
- )
- return (
- <table className="zuul-change-box" style={{boxSizing: 'content-box'}}>
- <tbody>
- <tr>{row}</tr>
- </tbody>
- </table>
- )
- }
-}
-
-export default Change
diff --git a/web/src/containers/status/ChangePanel.jsx b/web/src/containers/status/ChangePanel.jsx
deleted file mode 100644
index cb6cb5081..000000000
--- a/web/src/containers/status/ChangePanel.jsx
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
-import { Link } from 'react-router-dom'
-
-
-class ChangePanel extends React.Component {
- static propTypes = {
- globalExpanded: PropTypes.bool.isRequired,
- change: PropTypes.object.isRequired,
- tenant: PropTypes.object
- }
-
- constructor () {
- super()
- this.state = {
- expanded: false
- }
- this.onClick = this.onClick.bind(this)
- this.clicked = false
- }
-
- onClick () {
- let expanded = this.state.expanded
- if (!this.clicked) {
- expanded = this.props.globalExpanded
- }
- this.clicked = true
- this.setState({ expanded: !expanded })
- }
-
- time (ms, words) {
- if (typeof (words) === 'undefined') {
- words = false
- }
- let seconds = (+ms) / 1000
- let minutes = Math.floor(seconds / 60)
- let hours = Math.floor(minutes / 60)
- seconds = Math.floor(seconds % 60)
- minutes = Math.floor(minutes % 60)
- let r = ''
- if (words) {
- if (hours) {
- r += hours
- r += ' hr '
- }
- r += minutes + ' min'
- } else {
- if (hours < 10) {
- r += '0'
- }
- r += hours + ':'
- if (minutes < 10) {
- r += '0'
- }
- r += minutes + ':'
- if (seconds < 10) {
- r += '0'
- }
- r += seconds
- }
- return r
- }
-
- enqueueTime (ms) {
- // Special format case for enqueue time to add style
- let hours = 60 * 60 * 1000
- let now = Date.now()
- let delta = now - ms
- let status = 'text-success'
- let text = this.time(delta, true)
- if (delta > (4 * hours)) {
- status = 'text-danger'
- } else if (delta > (2 * hours)) {
- status = 'text-warning'
- }
- return <span className={status}>{text}</span>
- }
-
- renderChangeLink (change) {
- let changeId = change.id || 'NA'
- let changeTitle = changeId
- let changeText = ''
- if (change.url !== null) {
- let githubId = changeId.match(/^([0-9]+),([0-9a-f]{40})$/)
- if (githubId) {
- changeTitle = githubId
- changeText = '#' + githubId[1]
- } else if (/^[0-9a-f]{40}$/.test(changeId)) {
- changeText = changeId.slice(0, 7)
- }
- } else if (changeId.length === 40) {
- changeText = changeId.slice(0, 7)
- }
- return (
- <small>
- <a href={change.url}>
- {changeText !== '' ? (
- <abbr title={changeTitle}>{changeText}</abbr>) : changeTitle}
- </a>
- </small>)
- }
-
- renderProgressBar (change) {
- let jobPercent = Math.floor(100 / change.jobs.length)
- return (
- <div className='progress zuul-change-total-result'>
- {change.jobs.map((job, idx) => {
- let result = job.result ? job.result.toLowerCase() : null
- if (result === null) {
- result = job.url ? 'in progress' : 'queued'
- }
- if (result !== 'queued') {
- let className = ''
- switch (result) {
- case 'success':
- className = ' progress-bar-success'
- break
- case 'lost':
- case 'failure':
- className = ' progress-bar-danger'
- break
- case 'unstable':
- className = ' progress-bar-warning'
- break
- case 'in progress':
- case 'queued':
- break
- default:
- break
- }
- return <div className={'progress-bar' + className}
- key={idx}
- title={job.name}
- style={{width: jobPercent + '%'}}/>
- } else {
- return ''
- }
- })}
- </div>
- )
- }
-
- renderTimer (change) {
- let remainingTime
- if (change.remaining_time === null) {
- remainingTime = 'unknown'
- } else {
- remainingTime = this.time(change.remaining_time, true)
- }
- return (
- <React.Fragment>
- <small title='Remaining Time' className='time'>
- {remainingTime}
- </small>
- <br />
- <small title='Elapsed Time' className='time'>
- {this.enqueueTime(change.enqueue_time)}
- </small>
- </React.Fragment>
- )
- }
-
- renderJobProgressBar (elapsedTime, remainingTime) {
- let progressPercent = 100 * (elapsedTime / (elapsedTime +
- remainingTime))
- return (
- <div className='progress zuul-job-result'>
- <div className='progress-bar'
- role='progressbar'
- aria-valuenow={progressPercent}
- aria-valuemin={0}
- aria-valuemax={100}
- style={{'width': progressPercent + '%'}}
- />
- </div>
- )
- }
-
- renderJobStatusLabel (result) {
- let className
- switch (result) {
- case 'success':
- className = 'label-success'
- break
- case 'failure':
- className = 'label-danger'
- break
- case 'unstable':
- className = 'label-warning'
- break
- case 'skipped':
- className = 'label-info'
- break
- // 'in progress' 'queued' 'lost' 'aborted' ...
- default:
- className = 'label-default'
- }
-
- return (
- <span className={'zuul-job-result label ' + className}>{result}</span>
- )
- }
-
- renderJob (job) {
- const { tenant } = this.props
- let name = ''
- if (job.result !== null) {
- name = <a className='zuul-job-name' href={job.report_url}>{job.name}</a>
- } else if (job.url !== null) {
- let url = job.url
- if (job.url.match('stream.html')) {
- const buildUuid = job.url.split('?')[1].split('&')[0].split('=')[1]
- const to = (
- tenant.linkPrefix + '/stream/' + buildUuid + '?logfile=console.log'
- )
- name = <Link to={to}>{job.name}</Link>
- } else {
- name = <a className='zuul-job-name' href={url}>{job.name}</a>
- }
- } else {
- name = <span className='zuul-job-name'>{job.name}</span>
- }
- let resultBar
- let result = job.result ? job.result.toLowerCase() : null
- if (result === null) {
- if (job.url === null) {
- result = 'queued'
- } else if (job.paused !== null && job.paused) {
- result = 'paused'
- } else {
- result = 'in progress'
- }
- }
- if (result === 'in progress') {
- resultBar = this.renderJobProgressBar(
- job.elapsed_time, job.remaining_time)
- } else {
- resultBar = this.renderJobStatusLabel(result)
- }
-
- return (
- <span>
- {name}
- {resultBar}
- {job.voting === false ? (
- <small className='zuul-non-voting-desc'> (non-voting)</small>) : ''}
- <div style={{clear: 'both'}} />
- </span>)
- }
-
- renderJobList (jobs) {
- return (
- <ul className='list-group zuul-patchset-body'>
- {jobs.map((job, idx) => (
- <li key={idx} className='list-group-item zuul-change-job'>
- {this.renderJob(job)}
- </li>
- ))}
- </ul>)
- }
-
- render () {
- const { expanded } = this.state
- const { change, globalExpanded } = this.props
- let expand = globalExpanded
- if (this.clicked) {
- expand = expanded
- }
- const header = (
- <div className='panel panel-default zuul-change' onClick={this.onClick}>
- <div className='panel-heading zuul-patchset-header'>
- <div className='row'>
- <div className='col-xs-8'>
- <span className='change_project'>{change.project}</span>
- <div className='row'>
- <div className='col-xs-4'>
- {this.renderChangeLink(change)}
- </div>
- <div className='col-xs-8'>
- {this.renderProgressBar(change)}
- </div>
- </div>
- </div>
- {change.live === true ? (
- <div className='col-xs-4 text-right'>
- {this.renderTimer(change)}
- </div>
- ) : ''}
- </div>
- </div>
- {expand ? this.renderJobList(change.jobs) : ''}
- </div>
- )
- return (
- <React.Fragment>
- {header}
- </React.Fragment>
- )
- }
-}
-
-export default connect(state => ({tenant: state.tenant}))(ChangePanel)
diff --git a/web/src/containers/status/ChangePanel.test.jsx b/web/src/containers/status/ChangePanel.test.jsx
deleted file mode 100644
index 719cf810e..000000000
--- a/web/src/containers/status/ChangePanel.test.jsx
+++ /dev/null
@@ -1,64 +0,0 @@
-/* global expect, jest, it */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import React from 'react'
-import ReactTestUtils from 'react-dom/test-utils'
-import { Link, BrowserRouter as Router } from 'react-router-dom'
-import { Provider } from 'react-redux'
-
-import { createZuulStore, setTenantAction } from '../../reducers'
-import ChangePanel from './ChangePanel'
-
-
-const fakeChange = {
- project: 'org-project',
- jobs: [{
- name: 'job-name',
- url: 'stream.html?build=42',
- result: null
- }]
-}
-
-it('change panel render multi tenant links', () => {
- const store = createZuulStore()
- store.dispatch(setTenantAction('tenant-one', false))
- const application = ReactTestUtils.renderIntoDocument(
- <Provider store={store}>
- <Router>
- <ChangePanel change={fakeChange} globalExpanded={true} />
- </Router>
- </Provider>
- )
- const jobLink = ReactTestUtils.findRenderedComponentWithType(
- application, Link)
- expect(jobLink.props.to).toEqual(
- '/t/tenant-one/stream/42?logfile=console.log')
-})
-
-it('change panel render white-label tenant links', () => {
- const store = createZuulStore()
- store.dispatch(setTenantAction('tenant-one', true))
- const application = ReactTestUtils.renderIntoDocument(
- <Provider store={store}>
- <Router>
- <ChangePanel change={fakeChange} globalExpanded={true} />
- </Router>
- </Provider>
- )
- const jobLink = ReactTestUtils.findRenderedComponentWithType(
- application, Link)
- expect(jobLink.props.to).toEqual(
- '/stream/42?logfile=console.log')
-})
diff --git a/web/src/containers/status/ChangeQueue.jsx b/web/src/containers/status/ChangeQueue.jsx
deleted file mode 100644
index 97218b76a..000000000
--- a/web/src/containers/status/ChangeQueue.jsx
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-
-import Change from './Change'
-
-
-class ChangeQueue extends React.Component {
- static propTypes = {
- pipeline: PropTypes.string.isRequired,
- queue: PropTypes.object.isRequired,
- expanded: PropTypes.bool.isRequired
- }
-
- render () {
- const { queue, pipeline, expanded } = this.props
- let shortName = queue.name
- if (shortName.length > 32) {
- shortName = shortName.substr(0, 32) + '...'
- }
- let changesList = []
- queue.heads.forEach((changes, changeIdx) => {
- changes.forEach((change, idx) => {
- changesList.push(
- <Change
- change={change}
- queue={queue}
- expanded={expanded}
- key={changeIdx.toString() + idx}
- />)
- })
- })
- return (
- <div className="change-queue" data-zuul-pipeline={pipeline}>
- <p>Queue: <abbr title={queue.name}>{shortName}</abbr></p>
- {changesList}
- </div>)
- }
-}
-
-export default ChangeQueue
diff --git a/web/src/containers/status/Pipeline.jsx b/web/src/containers/status/Pipeline.jsx
deleted file mode 100644
index f3705da64..000000000
--- a/web/src/containers/status/Pipeline.jsx
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { Badge } from 'patternfly-react'
-
-import ChangeQueue from './ChangeQueue'
-
-
-class Pipeline extends React.Component {
- static propTypes = {
- expanded: PropTypes.bool.isRequired,
- pipeline: PropTypes.object.isRequired,
- filter: PropTypes.string
- }
-
- createTree (pipeline) {
- let count = 0
- let pipelineMaxTreeColumns = 1
- pipeline.change_queues.forEach(changeQueue => {
- let tree = []
- let maxTreeColumns = 1
- let changes = []
- let lastTreeLength = 0
- changeQueue.heads.forEach(head => {
- head.forEach((change, changeIndex) => {
- changes[change.id] = change
- change._tree_position = changeIndex
- })
- })
- changeQueue.heads.forEach(head => {
- head.forEach(change => {
- if (change.live === true) {
- count += 1
- }
- let idx = tree.indexOf(change.id)
- if (idx > -1) {
- change._tree_index = idx
- // remove...
- tree[idx] = null
- while (tree[tree.length - 1] === null) {
- tree.pop()
- }
- } else {
- change._tree_index = 0
- }
- change._tree_branches = []
- change._tree = []
- if (typeof (change.items_behind) === 'undefined') {
- change.items_behind = []
- }
- change.items_behind.sort(function (a, b) {
- return (changes[b]._tree_position - changes[a]._tree_position)
- })
- change.items_behind.forEach(id => {
- tree.push(id)
- if (tree.length > lastTreeLength && lastTreeLength > 0) {
- change._tree_branches.push(tree.length - 1)
- }
- })
- if (tree.length > maxTreeColumns) {
- maxTreeColumns = tree.length
- }
- if (tree.length > pipelineMaxTreeColumns) {
- pipelineMaxTreeColumns = tree.length
- }
- change._tree = tree.slice(0) // make a copy
- lastTreeLength = tree.length
- })
- })
- changeQueue._tree_columns = maxTreeColumns
- })
- pipeline._tree_columns = pipelineMaxTreeColumns
- return count
- }
-
- filterQueue(queue, filter) {
- let found = false
- queue.heads.forEach(changes => {
- changes.forEach(change => {
- if ((change.project && change.project.indexOf(filter) !== -1) ||
- (change.id && change.id.indexOf(filter) !== -1)) {
- found = true
- return
- }
- })
- if (found) {
- return
- }
- })
- return found
- }
-
- render () {
- const { pipeline, filter, expanded } = this.props
- const count = this.createTree(pipeline)
- return (
- <div className="zuul-pipeline col-md-4">
- <div className="zuul-pipeline-header">
- <h3>{pipeline.name} <Badge>{count}</Badge></h3>
- {pipeline.description ? (
- <small>
- <p>{pipeline.description.split(/\r?\n\r?\n/)}</p>
- </small>) : ''}
- </div>
- {pipeline.change_queues.filter(item => item.heads.length > 0)
- .filter(item => (!filter || (
- pipeline.name.indexOf(filter) !== -1 ||
- this.filterQueue(item, filter)
- )))
- .map((changeQueue, idx) => (
- <ChangeQueue
- queue={changeQueue}
- expanded={expanded}
- pipeline={pipeline.name}
- key={idx}
- />
- ))}
- </div>
- )
- }
-}
-
-export default Pipeline
diff --git a/web/src/images/logo.png b/web/src/images/logo.png
deleted file mode 100644
index 640c38604..000000000
--- a/web/src/images/logo.png
+++ /dev/null
Binary files differ
diff --git a/web/src/images/logo.svg b/web/src/images/logo.svg
deleted file mode 100644
index e270d664b..000000000
--- a/web/src/images/logo.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.1"
- id="Layer_1"
- x="0px"
- y="0px"
- viewBox="0 0 144 144"
- style="enable-background:new 0 0 144 144;"
- xml:space="preserve"
- inkscape:version="0.91 r13725"
- sodipodi:docname="logo.svg"
- inkscape:export-filename="/data/logo.png"
- inkscape:export-xdpi="8.7290258"
- inkscape:export-ydpi="8.7290258"><metadata
- id="metadata21"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
- id="defs19" /><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1220"
- inkscape:window-height="740"
- id="namedview17"
- showgrid="false"
- showborder="false"
- inkscape:zoom="0.81944444"
- inkscape:cx="250.26215"
- inkscape:cy="186.8512"
- inkscape:window-x="252"
- inkscape:window-y="337"
- inkscape:window-maximized="0"
- inkscape:current-layer="Layer_1"><inkscape:grid
- type="xygrid"
- id="grid3360" /></sodipodi:namedview><style
- type="text/css"
- id="style3">
- .st0{fill:#071D49;}
-</style><path
- style="fill:#e6e6e6"
- inkscape:connector-curvature="0"
- id="path7"
- d="m 12.8,102.6 118.5,0 -25.3,-43.8 0,-15 7,-9.2 -21,0 L 72,0 52,34.7 l -20.9,0 7,9.2 0,15 -25.3,43.7 z m 25.2,-6 -14.9,0 14.9,-25.8 0,25.8 z m 10.4,0 -4.4,0 0,-35.3 4.3,0 0,35.3 z m 0,-41.3 -4.4,0 0,-4.3 4.3,0 0,4.3 z m 20.6,41.3 -14.7,0 0,-35.3 14.7,0 0,35.3 z m 20.7,0 -14.7,0 0,-35.3 14.7,0 0,35.3 z m 0,-41.3 -35.4,0 0,-4.3 35.3,0 0,4.3 z m 10.3,41.3 -4.3,0 0,-35.3 4.3,0 0,35.3 z m 0,-41.3 -4.3,0 0,-4.3 4.3,0 0,4.3 z m 6,15.5 14.9,25.8 -14.9,0 0,-25.8 z M 72,12 85.1,34.7 58.9,34.7 72,12 Z m 28.9,28.7 -0.9,1.2 0,3.1 -56,0 0,-3.2 -0.9,-1.2 57.8,0 z"
- class="st0"
- inkscape:export-xdpi="14.038373"
- inkscape:export-ydpi="14.038373" /><g
- id="g3354"
- transform="matrix(3,0,0,3,155.07357,-334.75)"
- style="fill:#e6e6e6"
- inkscape:export-xdpi="14.038373"
- inkscape:export-ydpi="14.038373"><polygon
- class="st0"
- points="138.2,137.3 125.1,137.3 125.1,114.6 119.1,118.1 119.1,137.3 119.1,139.6 119.1,143.3 141.6,143.3 "
- id="polygon9"
- style="fill:#e6e6e6" /><path
- class="st0"
- d="m 99.1,131.5 0,0 0,0 c 0,3.6 -2.9,6.5 -6.5,6.5 -3.6,0 -6.5,-2.9 -6.5,-6.5 l 0,0 0,0 0,-16.9 -6,3.5 0,13.5 0,0 c 0,6.9 5.6,12.5 12.5,12.5 6.9,0 12.5,-5.6 12.5,-12.5 l 0,0 0,-16.9 -6,3.5 0,13.3 z"
- id="path11"
- inkscape:connector-curvature="0"
- style="fill:#e6e6e6" /><path
- class="st0"
- d="m 60.2,131.5 0,0 0,0 c 0,3.6 -2.9,6.5 -6.5,6.5 -3.6,0 -6.5,-2.9 -6.5,-6.5 l 0,0 0,0 0,-16.9 -6,3.5 0,13.5 0,0 c 0,6.9 5.6,12.5 12.5,12.5 6.9,0 12.5,-5.6 12.5,-12.5 l 0,0 0,-16.9 -6,3.5 0,13.3 z"
- id="path13"
- inkscape:connector-curvature="0"
- style="fill:#e6e6e6" /><polygon
- class="st0"
- points="2.4,143.3 23.8,143.3 27.3,137.3 12.7,137.3 25.8,114.6 25.4,114.6 18.9,114.6 5.8,114.6 2.4,120.6 15.5,120.6 "
- id="polygon15"
- style="fill:#e6e6e6" /></g></svg> \ No newline at end of file
diff --git a/web/src/index.css b/web/src/index.css
deleted file mode 100644
index 4c030195b..000000000
--- a/web/src/index.css
+++ /dev/null
@@ -1,122 +0,0 @@
-body {
- margin: 0;
- padding: 0;
- font-family: sans-serif;
-}
-a.refresh {
- cursor: pointer;
- border-bottom-style: none;
- text-decoration: none;
-}
-
-/* Status page */
-.zuul-change {
- margin-bottom: 10px;
-}
-
-.zuul-change-id {
- float: right;
-}
-
-.zuul-job-result {
- float: right;
- width: 70px;
- height: 15px;
- margin: 2px 0 0 0;
-}
-
-.zuul-change-total-result {
- height: 10px;
- width: 100px;
- margin: 0;
- display: inline-block;
- vertical-align: middle;
-}
-
-.zuul-spinner,
-.zuul-spinner:hover {
- opacity: 0;
- transition: opacity 0.5s ease-out;
- cursor: default;
- pointer-events: none;
-}
-
-.zuul-spinner-on,
-.zuul-spinner-on:hover {
- opacity: 1;
- transition-duration: 0.2s;
- cursor: progress;
-}
-
-.zuul-change-cell {
- padding-left: 5px;
-}
-
-.zuul-change-job {
- padding: 2px 8px;
-}
-
-.zuul-job-name {
- font-size: small;
-}
-
-.zuul-non-voting-desc {
- font-size: smaller;
-}
-
-.zuul-patchset-header {
- font-size: small;
- padding: 8px 12px;
-}
-
-.form-inline > .form-group {
- padding-right: 5px;
-}
-
-.zuul-change-row {
- height: 100%;
- padding: 0 0 10px 0;
- margin: 0;
- width: 16px;
- min-width: 16px;
- overflow: hidden;
- vertical-align: top;
-}
-
-.zuul-build-status {
- background: white;
- font-size: 16px;
-}
-
-.zuul-build-merge-conflict:before {
- color: black;
-}
-
-.zuul-change-row-line {
- background-image: url('images/line.png');
- background-repeat: 'repeat-y';
-}
-
-/* Stream page */
-#zuulstreamoverlay {
- float: right;
- position: fixed;
- top: 70px;
- right: 5px;
- background-color: white;
- padding: 2px 0px 0px 2px;
- color: black;
-}
-
-pre#zuulstreamcontent {
- font-family: monospace;
- white-space: pre;
- margin: 0px 10px;
- background-color: black;
- color: lightgrey;
- border: none;
-}
-p.zuulstreamline {
- margin: 0px 0px;
- line-height: 1.4;
-}
diff --git a/web/src/index.js b/web/src/index.js
deleted file mode 100644
index fb42857b4..000000000
--- a/web/src/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-// The index is the main of the project. The App is wrapped with
-// a Provider to share the redux store and a Router to manage the location.
-
-import React from 'react'
-import ReactDOM from 'react-dom'
-import { BrowserRouter as Router } from 'react-router-dom'
-import { Provider } from 'react-redux'
-import 'patternfly/dist/css/patternfly.min.css'
-import 'patternfly/dist/css/patternfly-additions.min.css'
-import './index.css'
-
-import { getHomepageUrl } from './api'
-import registerServiceWorker from './registerServiceWorker'
-import { createZuulStore, fetchInfoAction } from './reducers'
-import App from './App'
-
-// This calls the /api/info endpoint asynchronously, the App is connected
-// with redux and it will update the info prop when fetch succeed.
-const store = createZuulStore()
-store.dispatch(fetchInfoAction())
-
-ReactDOM.render(
- <Provider store={store}>
- <Router basename={new URL(getHomepageUrl()).pathname}><App /></Router>
- </Provider>, document.getElementById('root'))
-registerServiceWorker()
diff --git a/web/src/pages/Builds.jsx b/web/src/pages/Builds.jsx
deleted file mode 100644
index 8f902ee83..000000000
--- a/web/src/pages/Builds.jsx
+++ /dev/null
@@ -1,159 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
-import { Table } from 'patternfly-react'
-
-import { fetchBuilds } from '../api'
-import TableFilters from '../containers/TableFilters'
-
-
-class BuildsPage extends TableFilters {
- static propTypes = {
- tenant: PropTypes.object
- }
-
- constructor () {
- super()
-
- this.prepareTableHeaders()
- this.state = {
- builds: null,
- currentFilterType: this.filterTypes[0],
- activeFilters: [],
- currentValue: ''
- }
- }
-
- updateData = (filters) => {
- let queryString = ''
- if (filters) {
- filters.forEach(item => queryString += '&' + item.key + '=' + item.value)
- }
- this.setState({builds: null})
- fetchBuilds(this.props.tenant.apiPrefix, queryString).then(response => {
- this.setState({builds: response.data})
- })
- }
-
- componentDidMount () {
- document.title = 'Zuul Build'
- if (this.props.tenant.name) {
- this.updateData(this.getFilterFromUrl())
- }
- }
-
- componentDidUpdate (prevProps) {
- if (this.props.tenant.name !== prevProps.tenant.name) {
- this.updateData(this.getFilterFromUrl())
- }
- }
-
- prepareTableHeaders() {
- const headerFormat = value => <Table.Heading>{value}</Table.Heading>
- const cellFormat = (value) => (
- <Table.Cell>{value}</Table.Cell>)
- const linkCellFormat = (value) => (
- <Table.Cell>
- <a href={value} target='_blank' rel='noopener noreferrer'>link</a>
- </Table.Cell>
- )
- this.columns = []
- this.filterTypes = []
- const myColumns = [
- 'job',
- 'project',
- 'branch',
- 'pipeline',
- 'change',
- 'duration',
- 'log',
- 'start time',
- 'result']
- myColumns.forEach(column => {
- let prop = column
- let formatter = cellFormat
- // Adapt column name and property name
- if (column === 'job') {
- prop = 'job_name'
- } else if (column === 'start time') {
- prop = 'start_time'
- } else if (column === 'change') {
- prop = 'ref_url'
- formatter = linkCellFormat
- } else if (column === 'log') {
- prop = 'log_url'
- formatter = linkCellFormat
- }
- const label = column.charAt(0).toUpperCase() + column.slice(1)
- this.columns.push({
- header: {label: label, formatters: [headerFormat]},
- property: prop,
- cell: {formatters: [formatter]}
- })
- if (prop !== 'start_time' && prop !== 'ref_url' && prop !== 'duration'
- && prop !== 'log_url' && prop !== 'uuid') {
- this.filterTypes.push({
- id: prop,
- title: label,
- placeholder: 'Filter by ' + label,
- filterType: 'text',
- })
- }
- })
- // Add build filter at the end
- this.filterTypes.push({
- id: 'uuid',
- title: 'Build',
- palceholder: 'Filter by Build UUID',
- fileterType: 'text',
- })
- }
-
- renderTable (builds) {
- return (
- <Table.PfProvider
- striped
- bordered
- columns={this.columns}
- >
- <Table.Header/>
- <Table.Body
- rows={builds}
- rowKey='uuid'
- onRow={(row) => {
- switch (row.result) {
- case 'SUCCESS':
- return { className: 'success' }
- default:
- return { className: 'warning' }
- }
- }} />
- </Table.PfProvider>)
- }
-
- render() {
- const { builds } = this.state
- return (
- <React.Fragment>
- {this.renderFilter()}
- {builds ? this.renderTable(builds) : <p>Loading...</p>}
- </React.Fragment>
- )
- }
-}
-
-export default connect(state => ({tenant: state.tenant}))(BuildsPage)
diff --git a/web/src/pages/Jobs.jsx b/web/src/pages/Jobs.jsx
deleted file mode 100644
index 8ec0e3d72..000000000
--- a/web/src/pages/Jobs.jsx
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
-import { Link } from 'react-router-dom'
-import { Table } from 'patternfly-react'
-
-import { fetchJobs } from '../api'
-
-
-class JobsPage extends React.Component {
- static propTypes = {
- tenant: PropTypes.object
- }
-
- state = {
- jobs: null
- }
-
- updateData () {
- fetchJobs(this.props.tenant.apiPrefix).then(response => {
- this.setState({jobs: response.data})
- })
- }
-
- componentDidMount () {
- document.title = 'Zuul Jobs'
- if (this.props.tenant.name) {
- this.updateData()
- }
- }
-
- componentDidUpdate (prevProps) {
- if (this.props.tenant.name !== prevProps.tenant.name) {
- this.updateData()
- }
- }
-
- render () {
- const { jobs } = this.state
- if (!jobs) {
- return (<p>Loading...</p>)
- }
-
- const headerFormat = value => <Table.Heading>{value}</Table.Heading>
- const cellFormat = (value) => (
- <Table.Cell>{value}</Table.Cell>)
- const cellBuildFormat = (value) => (
- <Table.Cell>
- <Link to={this.props.tenant.linkPrefix + '/builds?job_name=' + value}>
- builds
- </Link>
- </Table.Cell>)
- const columns = []
- const myColumns = ['name', 'description', 'Last builds']
- myColumns.forEach(column => {
- let formatter = cellFormat
- let prop = column
- if (column === 'Last builds') {
- prop = 'name'
- formatter = cellBuildFormat
- }
- columns.push({
- header: {label: column,
- formatters: [headerFormat]},
- property: prop,
- cell: {formatters: [formatter]}
- })
- })
- return (
- <Table.PfProvider
- striped
- bordered
- hover
- columns={columns}
- >
- <Table.Header/>
- <Table.Body
- rows={jobs}
- rowKey="name"
- />
- </Table.PfProvider>)
- }
-}
-
-export default connect(state => ({tenant: state.tenant}))(JobsPage)
diff --git a/web/src/pages/Status.jsx b/web/src/pages/Status.jsx
deleted file mode 100644
index 22a6754fb..000000000
--- a/web/src/pages/Status.jsx
+++ /dev/null
@@ -1,289 +0,0 @@
-/* global setTimeout, clearTimeout */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
-import {
- Alert,
- Checkbox,
- Icon,
- Form,
- FormGroup,
- FormControl,
- Spinner
-} from 'patternfly-react'
-
-import { fetchStatus } from '../api'
-import Pipeline from '../containers/status/Pipeline'
-
-
-class StatusPage extends React.Component {
- static propTypes = {
- location: PropTypes.object,
- tenant: PropTypes.object
- }
-
- state = {
- status: null,
- filter: null,
- expanded: false,
- error: null,
- loading: false,
- autoReload: true
- }
-
- visibilityListener = () => {
- if (document[this.visibilityStateProperty] === 'visible') {
- this.visible = true
- this.updateData()
- } else {
- this.visible = false
- }
- }
-
- constructor () {
- super()
-
- this.timer = null
- this.visible = true
-
- // Stop refresh when page is not visible
- if (typeof document.hidden !== 'undefined') {
- this.visibilityChangeEvent = 'visibilitychange'
- this.visibilityStateProperty = 'visibilityState'
- } else if (typeof document.mozHidden !== 'undefined') {
- this.visibilityChangeEvent = 'mozvisibilitychange'
- this.visibilityStateProperty = 'mozVisibilityState'
- } else if (typeof document.msHidden !== 'undefined') {
- this.visibilityChangeEvent = 'msvisibilitychange'
- this.visibilityStateProperty = 'msVisibilityState'
- } else if (typeof document.webkitHidden !== 'undefined') {
- this.visibilityChangeEvent = 'webkitvisibilitychange'
- this.visibilityStateProperty = 'webkitVisibilityState'
- }
- document.addEventListener(
- this.visibilityChangeEvent, this.visibilityListener, false)
- }
-
- setCookie (name, value) {
- document.cookie = name + '=' + value + '; path=/'
- }
-
- updateData = (force) => {
- /* // Create fake delay
- function sleeper(ms) {
- return function(x) {
- return new Promise(resolve => setTimeout(() => resolve(x), ms));
- };
- }
- */
-
- if (force || (this.visible && this.state.autoReload)) {
- this.setState({error: null, loading: true})
- fetchStatus(this.props.tenant.apiPrefix)
- // .then(sleeper(2000))
- .then(response => {
- this.setState({status: response.data, loading: false})
- }).catch(error => {
- this.setState({error: error.message, status: null})
- })
- }
- // Clear any running timer
- if (this.timer) {
- clearTimeout(this.timer)
- this.timer = null
- }
- if (this.state.autoReload) {
- this.timer = setTimeout(this.updateData, 5000)
- }
- }
-
- componentDidMount () {
- document.title = 'Zuul Status'
- this.loadState()
- if (this.props.tenant.name) {
- this.updateData()
- }
- }
-
- componentDidUpdate (prevProps, prevState) {
- // When autoReload is set, also call updateData to retrigger the setTimeout
- if (this.props.tenant.name !== prevProps.tenant.name || (
- this.state.autoReload &&
- this.state.autoReload !== prevState.autoReload)) {
- this.updateData()
- }
- }
-
- componentWillUnmount () {
- if (this.timer) {
- clearTimeout(this.timer)
- this.timer = null
- }
- document.removeEventListener(
- this.visibilityChangeEvent, this.visibilityListener)
- }
-
- setFilter = (filter) => {
- this.filter.value = filter
- this.setState({filter: filter})
- this.setCookie('zuul_filter_string', filter)
- }
-
- handleKeyPress = (e) => {
- if (e.charCode === 13) {
- this.setFilter(e.target.value)
- e.preventDefault()
- e.target.blur()
- }
- }
-
- handleCheckBox = (e) => {
- this.setState({expanded: e.target.checked})
- this.setCookie('zuul_expand_by_default', e.target.checked)
- }
-
- loadState = () => {
- function readCookie (name, defaultValue) {
- let nameEQ = name + '='
- let ca = document.cookie.split(';')
- for (let i = 0; i < ca.length; i++) {
- let c = ca[i]
- while (c.charAt(0) === ' ') {
- c = c.substring(1, c.length)
- }
- if (c.indexOf(nameEQ) === 0) {
- return c.substring(nameEQ.length, c.length)
- }
- }
- return defaultValue
- }
- let filter = readCookie('zuul_filter_string', '')
- let expanded = readCookie('zuul_expand_by_default', false)
- if (typeof expanded === 'string') {
- expanded = (expanded === 'true')
- }
-
- if (this.props.location.hash) {
- filter = this.props.location.hash.slice(1)
- }
- if (filter || expanded) {
- this.setState({
- filter: filter,
- expanded: expanded
- })
- }
- }
-
- renderStatusHeader (status) {
- return (
- <p>
- Queue lengths: <span>{status.trigger_event_queue ?
- status.trigger_event_queue.length : '0'
- }</span> events,
- <span>{status.management_event_queue ?
- status.management_event_queue.length : '0'
- }</span> management events,
- <span>{status.result_event_queue ?
- status.result_event_queue.length : '0'
- }</span> results.
- </p>
- )
- }
-
- renderStatusFooter (status) {
- return (
- <React.Fragment>
- <p>Zuul version: <span>{status.zuul_version}</span></p>
- {status.last_reconfigured ? (
- <p>Last reconfigured: <span>
- {new Date(status.last_reconfigured).toString()}
- </span></p>) : ''}
- </React.Fragment>
- )
- }
-
- render () {
- const { autoReload, error, status, filter, expanded, loading } = this.state
- if (error) {
- return (<Alert>{this.state.error}</Alert>)
- }
- if (this.filter && filter) {
- this.filter.value = filter
- }
- const statusControl = (
- <Form inline>
- <FormGroup controlId='status'>
- <FormControl
- type='text'
- placeholder='change or project name'
- defaultValue={filter}
- inputRef={i => this.filter = i}
- onKeyPress={this.handleKeyPress} />
- {filter && (
- <FormControl.Feedback>
- <span
- onClick={() => {this.setFilter('')}}
- style={{cursor: 'pointer', zIndex: 10, pointerEvents: 'auto'}}
- >
- <Icon type='pf' title='Clear filter' name='delete' />
- &nbsp;
- </span>
- </FormControl.Feedback>
- )}
- </FormGroup>
- <FormGroup controlId='status'>
- &nbsp; Expand by default:&nbsp;
- <Checkbox
- defaultChecked={expanded}
- onChange={this.handleCheckBox} />
- </FormGroup>
- </Form>
- )
- return (
- <React.Fragment>
- <div className="pull-right" style={{display: 'flex'}}>
- <Spinner loading={loading}>
- <a className="refresh" onClick={() => {this.updateData(true)}}>
- <Icon type="fa" name="refresh" /> refresh&nbsp;&nbsp;
- </a>
- </Spinner>
- <Checkbox
- defaultChecked={autoReload}
- onChange={(e) => {this.setState({autoReload: e.target.checked})}}
- style={{marginTop: '0px'}}>
- auto reload
- </Checkbox>
- </div>
-
- {status && this.renderStatusHeader(status)}
- {statusControl}
- <div className='row'>
- {status && status.pipelines.map(item => (
- <Pipeline
- pipeline={item}
- filter={filter}
- expanded={expanded}
- key={item.name}
- />
- ))}
- </div>
- {status && this.renderStatusFooter(status)}
- </React.Fragment>)
- }
-}
-
-export default connect(state => ({tenant: state.tenant}))(StatusPage)
diff --git a/web/src/pages/Stream.jsx b/web/src/pages/Stream.jsx
deleted file mode 100644
index 3ae7d3e9d..000000000
--- a/web/src/pages/Stream.jsx
+++ /dev/null
@@ -1,158 +0,0 @@
-/* global clearTimeout, setTimeout, JSON, URLSearchParams */
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
-import { Checkbox, Form, FormGroup } from 'patternfly-react'
-import Sockette from 'sockette'
-
-import { getStreamUrl } from '../api'
-
-
-class StreamPage extends React.Component {
- static propTypes = {
- match: PropTypes.object.isRequired,
- location: PropTypes.object.isRequired,
- tenant: PropTypes.object
- }
-
- state = {
- autoscroll: true,
- }
-
- constructor() {
- super()
- this.receiveBuffer = ''
- this.displayRef = React.createRef()
- this.lines = []
- }
-
- refreshLoop = () => {
- if (this.displayRef.current) {
- let newLine = false
- this.lines.forEach(line => {
- newLine = true
- this.displayRef.current.appendChild(line)
- })
- this.lines = []
- if (newLine) {
- const { autoscroll } = this.state
- if (autoscroll) {
- this.messagesEnd.scrollIntoView({ behavior: 'instant' })
- }
- }
- }
- this.timer = setTimeout(this.refreshLoop, 250)
- }
-
- componentWillUnmount () {
- if (this.timer) {
- clearTimeout(this.timer)
- this.timer = null
- }
- if (this.ws) {
- console.log('Remove ws')
- this.ws.close()
- }
- }
-
- onLine = (line) => {
- // Create dom elements
- const lineDom = document.createElement('p')
- lineDom.className = 'zuulstreamline'
- lineDom.appendChild(document.createTextNode(line))
- this.lines.push(lineDom)
- }
-
- onMessage = (message) => {
- this.receiveBuffer += message
- const lines = this.receiveBuffer.split('\n')
- const lastLine = lines.slice(-1)[0]
- // Append all completed lines
- lines.slice(0, -1).forEach(line => {
- this.onLine(line)
- })
- // Check if last chunk is completed
- if (lastLine && this.receiveBuffer.slice(-1) === '\n') {
- this.onLine(lastLine)
- this.receiveBuffer = ''
- } else {
- this.receiveBuffer = lastLine
- }
- this.refreshLoop()
- }
-
- componentDidMount() {
- const params = {
- uuid: this.props.match.params.buildId
- }
- const urlParams = new URLSearchParams(this.props.location.search)
- const logfile = urlParams.get('logfile')
- if (logfile) {
- params.logfile = logfile
- }
- document.title = 'Zuul Stream | ' + params.uuid.slice(0, 7)
- this.ws = new Sockette(getStreamUrl(this.props.tenant.apiPrefix), {
- timeout: 5e3,
- maxAttempts: 3,
- onopen: () => {
- console.log('onopen')
- this.ws.send(JSON.stringify(params))
- },
- onmessage: e => {
- this.onMessage(e.data)
- },
- onreconnect: e => {
- console.log('Reconnecting...', e)
- },
- onmaximum: e => {
- console.log('Stop Attempting!', e)
- },
- onclose: e => {
- console.log('onclose', e)
- this.onMessage('\n--- END OF STREAM ---\n')
- },
- onerror: e => {
- console.log('onerror:', e)
- }
- })
- }
-
- handleCheckBox = (e) => {
- this.setState({autoscroll: e.target.checked})
- }
-
- render () {
- return (
- <React.Fragment>
- <Form inline id='zuulstreamoverlay'>
- <FormGroup controlId='stream'>
- <Checkbox
- checked={this.state.autoscroll}
- onChange={this.handleCheckBox}>
- autoscroll
- </Checkbox>
- </FormGroup>
- </Form>
- <pre id='zuulstreamcontent' ref={this.displayRef} />
- <div ref={(el) => { this.messagesEnd = el }} />
- </React.Fragment>
- )
- }
-}
-
-
-export default connect(state => ({tenant: state.tenant}))(StreamPage)
diff --git a/web/src/pages/Tenants.jsx b/web/src/pages/Tenants.jsx
deleted file mode 100644
index 4b6a03efe..000000000
--- a/web/src/pages/Tenants.jsx
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import * as React from 'react'
-import { Link } from 'react-router-dom'
-import { Table } from 'patternfly-react'
-
-import { fetchTenants } from '../api'
-
-class TenantsPage extends React.Component {
- constructor () {
- super()
-
- this.state = {
- tenants: []
- }
- }
-
- componentDidMount () {
- document.title = 'Zuul Tenants'
- fetchTenants().then(response => {
- this.setState({tenants: response.data})
- })
- }
-
- render () {
- const { tenants } = this.state
- if (tenants.length === 0) {
- return (<p>Loading...</p>)
- }
- const headerFormat = value => <Table.Heading>{value}</Table.Heading>
- const cellFormat = (value) => (
- <Table.Cell>{value}</Table.Cell>)
- const columns = []
- const myColumns = ['name', 'status', 'jobs', 'builds', 'projects', 'queue']
- myColumns.forEach(column => {
- columns.push({
- header: {label: column,
- formatters: [headerFormat]},
- property: column,
- cell: {formatters: [cellFormat]}
- })
- })
- tenants.forEach(tenant => {
- tenant.status = (
- <Link to={'/t/' + tenant.name + '/status'}>Status</Link>)
- tenant.jobs = (
- <Link to={'/t/' + tenant.name + '/jobs'}>Jobs</Link>)
- tenant.builds = (
- <Link to={'/t/' + tenant.name + '/builds'}>Builds</Link>)
- })
- return (
- <Table.PfProvider
- striped
- bordered
- hover
- columns={columns}
- >
- <Table.Header/>
- <Table.Body
- rows={tenants}
- rowKey="name"
- />
- </Table.PfProvider>)
- }
-}
-
-export default TenantsPage
diff --git a/web/src/reducers.js b/web/src/reducers.js
deleted file mode 100644
index 0ce01c3b2..000000000
--- a/web/src/reducers.js
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-// Redux store enable to share global variables through state
-// To update the store, use a reducer and dispatch method,
-// see the App.setTenant method
-//
-// The store contains:
-// info: the info object, tenant is set when white-label api
-// tenant: the current tenant name, only used with multi-tenant api
-
-import { applyMiddleware, createStore, combineReducers } from 'redux'
-import thunk from 'redux-thunk'
-
-import { fetchInfo } from './api'
-
-const infoReducer = (state = {}, action) => {
- switch (action.type) {
- case 'FETCH_INFO_SUCCESS':
- return action.info
- default:
- return state
- }
-}
-
-const tenantReducer = (state = {}, action) => {
- switch (action.type) {
- case 'SET_TENANT':
- return action.tenant
- default:
- return state
- }
-}
-
-function createZuulStore() {
- return createStore(combineReducers({
- info: infoReducer,
- tenant: tenantReducer
- }), applyMiddleware(thunk))
-}
-
-// Reducer actions
-function fetchInfoAction () {
- return (dispatch) => {
- return fetchInfo()
- .then(response => {
- dispatch({type: 'FETCH_INFO_SUCCESS', info: response.data.info})
- })
- .catch(error => {
- throw (error)
- })
- }
-}
-
-function setTenantAction (name, whiteLabel) {
- let apiPrefix = ''
- let linkPrefix = ''
- let routePrefix = ''
- let defaultRoute = '/status'
- if (!whiteLabel) {
- apiPrefix = 'tenant/' + name + '/'
- linkPrefix = '/t/' + name
- routePrefix = '/t/:tenant'
- defaultRoute = '/tenants'
- }
- return {
- type: 'SET_TENANT',
- tenant: {
- name: name,
- whiteLabel: whiteLabel,
- defaultRoute: defaultRoute,
- linkPrefix: linkPrefix,
- apiPrefix: apiPrefix,
- routePrefix: routePrefix
- }
- }
-}
-
-export {
- createZuulStore,
- setTenantAction,
- fetchInfoAction
-}
diff --git a/web/src/registerServiceWorker.js b/web/src/registerServiceWorker.js
deleted file mode 100644
index 4f9531442..000000000
--- a/web/src/registerServiceWorker.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/* global process */
-// In production, we register a service worker to serve assets from local cache.
-
-// This lets the app load faster on subsequent visits in production, and gives
-// it offline capabilities. However, it also means that developers (and users)
-// will only see deployed updates on the "N+1" visit to a page, since previously
-// cached resources are updated in the background.
-
-// To learn more about the benefits of this model, read
-// https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#making-a-progressive-web-app
-// This link also includes instructions on opting out of this behavior.
-
-const isLocalhost = Boolean(
- window.location.hostname === 'localhost' ||
- // [::1] is the IPv6 localhost address.
- window.location.hostname === '[::1]' ||
- // 127.0.0.1/8 is considered localhost for IPv4.
- window.location.hostname.match(
- /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
- )
-)
-
-export default function register () {
- if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
- // The URL constructor is available in all browsers that support SW.
- const publicUrl = new URL(process.env.PUBLIC_URL, window.location)
- if (publicUrl.origin !== window.location.origin) {
- // Our service worker won't work if PUBLIC_URL is on a different origin
- // from what our page is served on. This might happen if a CDN is used to
- // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
- return
- }
-
- window.addEventListener('load', () => {
- const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`
-
- if (isLocalhost) {
- // This is running on localhost. Lets check if a service worker still exists or not.
- checkValidServiceWorker(swUrl)
-
- // Add some additional logging to localhost, pointing developers to the
- // service worker/PWA documentation.
- navigator.serviceWorker.ready.then(() => {
- console.log(
- 'This web app is being served cache-first by a service ' +
- 'worker. To learn more, visit https://goo.gl/SC7cgQ'
- )
- })
- } else {
- // Is not local host. Just register service worker
- registerValidSW(swUrl)
- }
- })
- }
-}
-
-function registerValidSW (swUrl) {
- navigator.serviceWorker
- .register(swUrl)
- .then(registration => {
- registration.onupdatefound = () => {
- const installingWorker = registration.installing
- installingWorker.onstatechange = () => {
- if (installingWorker.state === 'installed') {
- if (navigator.serviceWorker.controller) {
- // At this point, the old content will have been purged and
- // the fresh content will have been added to the cache.
- // It's the perfect time to display a "New content is
- // available; please refresh." message in your web app.
- console.log('New content is available; please refresh.')
- } else {
- // At this point, everything has been precached.
- // It's the perfect time to display a
- // "Content is cached for offline use." message.
- console.log('Content is cached for offline use.')
- }
- }
- }
- }
- })
- .catch(error => {
- console.error('Error during service worker registration:', error)
- })
-}
-
-function checkValidServiceWorker (swUrl) {
- // Check if the service worker can be found. If it can't reload the page.
- fetch(swUrl)
- .then(response => {
- // Ensure service worker exists, and that we really are getting a JS file.
- if (
- response.status === 404 ||
- response.headers.get('content-type').indexOf('javascript') === -1
- ) {
- // No service worker found. Probably a different app. Reload the page.
- navigator.serviceWorker.ready.then(registration => {
- registration.unregister().then(() => {
- window.location.reload()
- })
- })
- } else {
- // Service worker found. Proceed as normal.
- registerValidSW(swUrl)
- }
- })
- .catch(() => {
- console.log(
- 'No internet connection found. App is running in offline mode.'
- )
- })
-}
-
-export function unregister () {
- if ('serviceWorker' in navigator) {
- navigator.serviceWorker.ready.then(registration => {
- registration.unregister()
- })
- }
-}
diff --git a/web/src/routes.js b/web/src/routes.js
deleted file mode 100644
index 408599eaf..000000000
--- a/web/src/routes.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2018 Red Hat, Inc
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations
-// under the License.
-
-import StatusPage from './pages/Status'
-import JobsPage from './pages/Jobs'
-import BuildsPage from './pages/Builds'
-import TenantsPage from './pages/Tenants'
-import StreamPage from './pages/Stream'
-
-// The Route object are created in the App component.
-// Object with a title are created in the menu.
-// Object with globalRoute are not tenant scoped.
-// Remember to update the api getHomepageUrl subDir list for route with params
-const routes = () => [
- {
- title: 'Status',
- to: '/status',
- component: StatusPage
- },
- {
- title: 'Jobs',
- to: '/jobs',
- component: JobsPage
- },
- {
- title: 'Builds',
- to: '/builds',
- component: BuildsPage
- },
- {
- to: '/stream/:buildId',
- component: StreamPage
- },
- {
- to: '/tenants',
- component: TenantsPage,
- globalRoute: true
- }
-]
-
-export { routes }
diff --git a/web/status/jquery.zuul.js b/web/status/jquery.zuul.js
new file mode 100644
index 000000000..777d48f5f
--- /dev/null
+++ b/web/status/jquery.zuul.js
@@ -0,0 +1,944 @@
+/* global Image, jQuery */
+// jquery plugin for Zuul status page
+//
+// Copyright 2012 OpenStack Foundation
+// Copyright 2013 Timo Tijhof
+// Copyright 2013 Wikimedia Foundation
+// Copyright 2014 Rackspace Australia
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import RedImage from '../images/red.png'
+import GreyImage from '../images/grey.png'
+import GreenImage from '../images/green.png'
+import BlackImage from '../images/black.png'
+import LineImage from '../images/line.png'
+import LineAngleImage from '../images/line-angle.png'
+import LineTImage from '../images/line-t.png';
+
+(function ($) {
+ function setCookie (name, value) {
+ document.cookie = name + '=' + value + '; path=/'
+ }
+
+ function readCookie (name, defaultValue) {
+ let nameEQ = name + '='
+ let ca = document.cookie.split(';')
+ for (let i = 0; i < ca.length; i++) {
+ let c = ca[i]
+ while (c.charAt(0) === ' ') {
+ c = c.substring(1, c.length)
+ }
+ if (c.indexOf(nameEQ) === 0) {
+ return c.substring(nameEQ.length, c.length)
+ }
+ }
+ return defaultValue
+ }
+
+ $.zuul = function (options, zuulService) {
+ options = $.extend({
+ 'enabled': true,
+ 'graphite_url': '',
+ 'source': 'status',
+ 'source_data': null,
+ 'msg_id': '#zuul_msg',
+ 'pipelines_id': '#zuul_pipelines',
+ 'queue_events_num': '#zuul_queue_events_num',
+ 'queue_management_events_num': '#zuul_queue_management_events_num',
+ 'queue_results_num': '#zuul_queue_results_num'
+ }, options)
+
+ let collapsedExceptions = []
+ let currentFilter = readCookie('zuul_filter_string', '')
+ let changeSetInURL = window.location.href.split('#')[1]
+ if (changeSetInURL) {
+ currentFilter = changeSetInURL
+ }
+ let $jq
+
+ let xhr
+ let zuulGraphUpdateCount = 0
+ let zuulSparklineURLs = {}
+
+ function getSparklineURL (pipelineName) {
+ if (options.graphite_url !== '') {
+ if (!(pipelineName in zuulSparklineURLs)) {
+ zuulSparklineURLs[pipelineName] = $.fn.graphite
+ .geturl({
+ url: options.graphite_url,
+ from: '-8hours',
+ width: 100,
+ height: 26,
+ margin: 0,
+ hideLegend: true,
+ hideAxes: true,
+ hideGrid: true,
+ target: [
+ 'color(stats.gauges.zuul.pipeline.' + pipelineName +
+ ".current_changes, '6b8182')"
+ ]
+ })
+ }
+ return zuulSparklineURLs[pipelineName]
+ }
+ return false
+ }
+
+ let format = {
+ job: function (job) {
+ let $jobLine = $('<span />')
+
+ if (job.result !== null) {
+ $jobLine.append(
+ $('<a />')
+ .addClass('zuul-job-name')
+ .attr('href', job.report_url)
+ .text(job.name)
+ )
+ } else if (job.url !== null) {
+ $jobLine.append(
+ $('<a />')
+ .addClass('zuul-job-name')
+ .attr('href', job.url)
+ .text(job.name)
+ )
+ } else {
+ $jobLine.append(
+ $('<span />')
+ .addClass('zuul-job-name')
+ .text(job.name)
+ )
+ }
+
+ $jobLine.append(this.job_status(job))
+
+ if (job.voting === false) {
+ $jobLine.append(
+ $(' <small />')
+ .addClass('zuul-non-voting-desc')
+ .text(' (non-voting)')
+ )
+ }
+
+ $jobLine.append($('<div style="clear: both"></div>'))
+ return $jobLine
+ },
+
+ job_status: function (job) {
+ let result = job.result ? job.result.toLowerCase() : null
+ if (result === null) {
+ if (job.url === null) {
+ result = 'queued'
+ } else if (job.paused !== null && job.paused) {
+ result = 'paused'
+ } else {
+ result = 'in progress'
+ }
+ }
+
+ if (result === 'in progress') {
+ return this.job_progress_bar(job.elapsed_time,
+ job.remaining_time)
+ } else {
+ return this.status_label(result)
+ }
+ },
+
+ status_label: function (result) {
+ let $status = $('<span />')
+ $status.addClass('zuul-job-result label')
+
+ switch (result) {
+ case 'success':
+ $status.addClass('label-success')
+ break
+ case 'failure':
+ $status.addClass('label-danger')
+ break
+ case 'unstable':
+ $status.addClass('label-warning')
+ break
+ case 'skipped':
+ $status.addClass('label-info')
+ break
+ // 'in progress' 'queued' 'lost' 'aborted' ...
+ default:
+ $status.addClass('label-default')
+ }
+ $status.text(result)
+ return $status
+ },
+
+ job_progress_bar: function (elapsedTime, remainingTime) {
+ let progressPercent = 100 * (elapsedTime / (elapsedTime +
+ remainingTime))
+ let $barInner = $('<div />')
+ .addClass('progress-bar')
+ .attr('role', 'progressbar')
+ .attr('aria-valuenow', 'progressbar')
+ .attr('aria-valuemin', progressPercent)
+ .attr('aria-valuemin', '0')
+ .attr('aria-valuemax', '100')
+ .css('width', progressPercent + '%')
+
+ let $barOutter = $('<div />')
+ .addClass('progress zuul-job-result')
+ .append($barInner)
+
+ return $barOutter
+ },
+
+ enqueueTime: function (ms) {
+ // Special format case for enqueue time to add style
+ let hours = 60 * 60 * 1000
+ let now = Date.now()
+ let delta = now - ms
+ let status = 'text-success'
+ let text = this.time(delta, true)
+ if (delta > (4 * hours)) {
+ status = 'text-danger'
+ } else if (delta > (2 * hours)) {
+ status = 'text-warning'
+ }
+ return '<span class="' + status + '">' + text + '</span>'
+ },
+
+ time: function (ms, words) {
+ if (typeof (words) === 'undefined') {
+ words = false
+ }
+ let seconds = (+ms) / 1000
+ let minutes = Math.floor(seconds / 60)
+ let hours = Math.floor(minutes / 60)
+ seconds = Math.floor(seconds % 60)
+ minutes = Math.floor(minutes % 60)
+ let r = ''
+ if (words) {
+ if (hours) {
+ r += hours
+ r += ' hr '
+ }
+ r += minutes + ' min'
+ } else {
+ if (hours < 10) {
+ r += '0'
+ }
+ r += hours + ':'
+ if (minutes < 10) {
+ r += '0'
+ }
+ r += minutes + ':'
+ if (seconds < 10) {
+ r += '0'
+ }
+ r += seconds
+ }
+ return r
+ },
+
+ changeTotalProgressBar: function (change) {
+ let jobPercent = Math.floor(100 / change.jobs.length)
+ let $barOutter = $('<div />')
+ .addClass('progress zuul-change-total-result')
+
+ $.each(change.jobs, function (i, job) {
+ let result = job.result ? job.result.toLowerCase() : null
+ if (result === null) {
+ result = job.url ? 'in progress' : 'queued'
+ }
+
+ if (result !== 'queued') {
+ let $barInner = $('<div />')
+ .addClass('progress-bar')
+
+ switch (result) {
+ case 'success':
+ $barInner.addClass('progress-bar-success')
+ break
+ case 'lost':
+ case 'failure':
+ $barInner.addClass('progress-bar-danger')
+ break
+ case 'unstable':
+ $barInner.addClass('progress-bar-warning')
+ break
+ case 'in progress':
+ case 'queued':
+ break
+ }
+ $barInner.attr('title', job.name)
+ .css('width', jobPercent + '%')
+ $barOutter.append($barInner)
+ }
+ })
+ return $barOutter
+ },
+
+ changeHeader: function (change) {
+ let changeId = change.id || 'NA'
+
+ let $changeLink = $('<small />')
+ if (change.url !== null) {
+ let githubId = changeId.match(/^([0-9]+),([0-9a-f]{40})$/)
+ if (githubId) {
+ $changeLink.append(
+ $('<a />').attr('href', change.url).append(
+ $('<abbr />')
+ .attr('title', changeId)
+ .text('#' + githubId[1])
+ )
+ )
+ } else if (/^[0-9a-f]{40}$/.test(changeId)) {
+ let changeIdShort = changeId.slice(0, 7)
+ $changeLink.append(
+ $('<a />').attr('href', change.url).append(
+ $('<abbr />')
+ .attr('title', changeId)
+ .text(changeIdShort)
+ )
+ )
+ } else {
+ $changeLink.append(
+ $('<a />').attr('href', change.url).text(changeId)
+ )
+ }
+ } else {
+ if (changeId.length === 40) {
+ changeId = changeId.substr(0, 7)
+ }
+ $changeLink.text(changeId)
+ }
+
+ let $changeProgressRowLeft = $('<div />')
+ .addClass('col-xs-4')
+ .append($changeLink)
+ let $changeProgressRowRight = $('<div />')
+ .addClass('col-xs-8')
+ .append(this.changeTotalProgressBar(change))
+
+ let $changeProgressRow = $('<div />')
+ .addClass('row')
+ .append($changeProgressRowLeft)
+ .append($changeProgressRowRight)
+
+ let $projectSpan = $('<span />')
+ .addClass('change_project')
+ .text(change.project)
+
+ let $left = $('<div />')
+ .addClass('col-xs-8')
+ .append($projectSpan, $changeProgressRow)
+
+ let remainingTime
+ if (change.remaining_time === null) {
+ remainingTime = 'unknown'
+ } else {
+ remainingTime = this.time(change.remaining_time, true)
+ }
+ let enqueueTime = this.enqueueTime(change.enqueue_time)
+ let $remainingTime = $('<small />').addClass('time')
+ .attr('title', 'Remaining Time').html(remainingTime)
+ let $enqueueTime = $('<small />').addClass('time')
+ .attr('title', 'Elapsed Time').html(enqueueTime)
+
+ let $right = $('<div />')
+ if (change.live === true) {
+ $right.addClass('col-xs-4 text-right')
+ .append($remainingTime, $('<br />'), $enqueueTime)
+ }
+
+ let $header = $('<div />')
+ .addClass('row')
+ .append($left, $right)
+ return $header
+ },
+
+ change_list: function (jobs) {
+ let format = this
+ let $list = $('<ul />')
+ .addClass('list-group zuul-patchset-body')
+
+ $.each(jobs, function (i, job) {
+ let $item = $('<li />')
+ .addClass('list-group-item')
+ .addClass('zuul-change-job')
+ .append(format.job(job))
+ $list.append($item)
+ })
+
+ return $list
+ },
+
+ changePanel: function (change) {
+ let $header = $('<div />')
+ .addClass('panel-heading zuul-patchset-header')
+ .append(this.changeHeader(change))
+
+ let panelId = change.id ? change.id.replace(',', '_')
+ : change.project.replace('/', '_') +
+ '-' + change.enqueue_time
+ let $panel = $('<div />')
+ .attr('id', panelId)
+ .addClass('panel panel-default zuul-change')
+ .append($header)
+ .append(this.change_list(change.jobs))
+
+ $header.click(this.toggle_patchset)
+ return $panel
+ },
+
+ change_status_icon: function (change) {
+ let iconFile = GreenImage
+ let iconTitle = 'Succeeding'
+
+ if (change.active !== true) {
+ // Grey icon
+ iconFile = GreyImage
+ iconTitle = 'Waiting until closer to head of queue to' +
+ ' start jobs'
+ } else if (change.live !== true) {
+ // Grey icon
+ iconFile = GreyImage
+ iconTitle = 'Dependent change required for testing'
+ } else if (change.failing_reasons &&
+ change.failing_reasons.length > 0) {
+ let reason = change.failing_reasons.join(', ')
+ iconTitle = 'Failing because ' + reason
+ if (reason.match(/merge conflict/)) {
+ // Black icon
+ iconFile = BlackImage
+ } else {
+ // Red icon
+ iconFile = RedImage
+ }
+ }
+
+ let $icon = $('<img />')
+ .attr('src', zuulService.appBaseHref + iconFile)
+ .attr('title', iconTitle)
+ .css('display', 'block')
+
+ return $icon
+ },
+
+ change_with_status_tree: function (change, changeQueue) {
+ let $changeRow = $('<tr />')
+
+ for (let i = 0; i < changeQueue._tree_columns; i++) {
+ let $treeCell = $('<td />')
+ .css('height', '100%')
+ .css('padding', '0 0 10px 0')
+ .css('margin', '0')
+ .css('width', '16px')
+ .css('min-width', '16px')
+ .css('overflow', 'hidden')
+ .css('vertical-align', 'top')
+
+ if (i < change._tree.length && change._tree[i] !== null) {
+ $treeCell.css('background-image',
+ 'url(' + LineImage + ')')
+ .css('background-repeat', 'repeat-y')
+ }
+
+ if (i === change._tree_index) {
+ $treeCell.append(
+ this.change_status_icon(change))
+ }
+ if (change._tree_branches.indexOf(i) !== -1) {
+ let $image = $('<img />')
+ .css('vertical-align', 'baseline')
+ if (change._tree_branches.indexOf(i) ===
+ change._tree_branches.length - 1) {
+ // Angle line
+ $image.attr('src', LineAngleImage)
+ } else {
+ // T line
+ $image.attr('src', LineTImage)
+ }
+ $treeCell.append($image)
+ }
+ $changeRow.append($treeCell)
+ }
+
+ let changeWidth = 360 - 16 * changeQueue._tree_columns
+ let $changeColumn = $('<td />')
+ .css('width', changeWidth + 'px')
+ .addClass('zuul-change-cell')
+ .append(this.changePanel(change))
+
+ $changeRow.append($changeColumn)
+
+ let $changeTable = $('<table />')
+ .addClass('zuul-change-box')
+ .css('-moz-box-sizing', 'content-box')
+ .css('box-sizing', 'content-box')
+ .append($changeRow)
+
+ return $changeTable
+ },
+
+ pipeline_sparkline: function (pipelineName) {
+ if (options.graphite_url !== '') {
+ let $sparkline = $('<img />')
+ .addClass('pull-right')
+ .attr('src', getSparklineURL(pipelineName))
+ return $sparkline
+ }
+ return false
+ },
+
+ pipeline_header: function (pipeline, count) {
+ // Format the pipeline name, sparkline and description
+ let $headerDiv = $('<div />')
+ .addClass('zuul-pipeline-header')
+
+ let $heading = $('<h3 />')
+ .css('vertical-align', 'middle')
+ .text(pipeline.name)
+ .append(
+ $('<span />')
+ .addClass('badge pull-right')
+ .css('vertical-align', 'middle')
+ .css('margin-top', '0.5em')
+ .text(count)
+ )
+ .append(this.pipeline_sparkline(pipeline.name))
+
+ $headerDiv.append($heading)
+
+ if (typeof pipeline.description === 'string') {
+ let descr = $('<small />')
+ $.each(pipeline.description.split(/\r?\n\r?\n/),
+ function (index, descrPart) {
+ descr.append($('<p />').text(descrPart))
+ })
+ $headerDiv.append($('<p />').append(descr))
+ }
+ return $headerDiv
+ },
+
+ pipeline: function (pipeline, count) {
+ let format = this
+ let $html = $('<div />')
+ .addClass('zuul-pipeline col-md-4')
+ .append(this.pipeline_header(pipeline, count))
+
+ $.each(pipeline.change_queues, function (queueIndex, changeQueue) {
+ $.each(changeQueue.heads, function (headIndex, changes) {
+ let $changeQueueHtml = $('<div />')
+ .addClass('change-queue')
+ .data('zuul-pipeline', pipeline.name)
+ $html.append($changeQueueHtml)
+
+ if (pipeline.change_queues.length > 1 && headIndex === 0) {
+ let name = changeQueue.name
+ let shortName = name
+ if (shortName.length > 32) {
+ shortName = shortName.substr(0, 32) + '...'
+ }
+ $changeQueueHtml.append($('<p />')
+ .text('Queue: ')
+ .append(
+ $('<abbr />')
+ .attr('title', name)
+ .text(shortName)
+ )
+ )
+ }
+
+ let $changeBoxes = $.map(changes, function (change) {
+ return format.change_with_status_tree(change, changeQueue)
+ })
+
+ let visible = $.map($changeBoxes, function (changeBox) {
+ $changeQueueHtml.append(changeBox)
+ return format.display_patchset(changeBox)
+ }).some(function (visible) {
+ return visible
+ })
+
+ if (!visible) $changeQueueHtml.remove()
+ })
+ })
+ return $html
+ },
+
+ toggle_patchset: function (e) {
+ // Toggle showing/hiding the patchset when the header is clicked.
+ if (e.target.nodeName.toLowerCase() === 'a') {
+ // Ignore clicks from gerrit patch set link
+ return
+ }
+
+ // Grab the patchset panel
+ let $panel = $(e.target).parents('.zuul-change')
+ let $body = $panel.children('.zuul-patchset-body')
+ $body.toggle(200)
+ let collapsedIndex = collapsedExceptions.indexOf(
+ $panel.attr('id'))
+ if (collapsedIndex === -1) {
+ // Currently not an exception, add it to list
+ collapsedExceptions.push($panel.attr('id'))
+ } else {
+ // Currently an except, remove from exceptions
+ collapsedExceptions.splice(collapsedIndex, 1)
+ }
+ },
+
+ display_patchset: function ($changeBox, animate) {
+ // Determine if to show or hide the patchset and/or the results
+ // when loaded
+
+ // See if we should hide the body/results
+ let $panel = $changeBox.find('.zuul-change')
+ let panelChange = $panel.attr('id')
+ let $body = $panel.children('.zuul-patchset-body')
+ let expandByDefault = $('#expand_by_default')
+ .prop('checked')
+
+ let collapsedIndex = collapsedExceptions
+ .indexOf(panelChange)
+
+ if ((expandByDefault && collapsedIndex === -1) ||
+ (!expandByDefault && collapsedIndex !== -1)) {
+ // Expand by default, or is an exception
+ $body.show(animate)
+ } else {
+ $body.hide(animate)
+ }
+
+ // Check if we should hide the whole panel
+ let panelProject = $panel.find('.change_project').text()
+ .toLowerCase()
+
+ let panelPipeline = $changeBox
+ .parents('.zuul-pipeline')
+ .find('.zuul-pipeline-header > h3')
+ .html()
+ .toLowerCase()
+
+ let showPanel = true
+
+ if (currentFilter !== '') {
+ showPanel = false
+ let filter = currentFilter.trim().split(/[\s,]+/)
+ $.each(filter, function (index, filterVal) {
+ if (filterVal !== '') {
+ filterVal = filterVal.toLowerCase()
+ if (panelProject.indexOf(filterVal) !== -1 ||
+ panelPipeline.indexOf(filterVal) !== -1 ||
+ panelChange.indexOf(filterVal) !== -1) {
+ showPanel = true
+ }
+ }
+ })
+ }
+
+ if (showPanel === true) {
+ $changeBox.show(animate)
+ } else {
+ $changeBox.hide(animate)
+ }
+
+ return showPanel
+ }
+ }
+
+ let app = {
+ schedule: function (app) {
+ app = app || this
+ if (!options.enabled) {
+ app.timer = setTimeout(function () { app.schedule(app) }, 5000)
+ return
+ }
+ app.update().always(function () {
+ app.timer = setTimeout(function () { app.schedule(app) }, 5000)
+ })
+
+ // Only update graphs every minute
+ if (zuulGraphUpdateCount > 11) {
+ zuulGraphUpdateCount = 0
+ $.zuul.update_sparklines()
+ }
+ },
+ injest: function (data, $msg) {
+ if ('message' in data) {
+ $msg.removeClass('alert-danger')
+ .addClass('alert-info')
+ .text(data.message)
+ .show()
+ } else {
+ $msg.empty()
+ .hide()
+ }
+
+ if ('zuul_version' in data) {
+ $('#zuul-version-span').text(data.zuul_version)
+ }
+ if ('last_reconfigured' in data) {
+ let lastReconfigured =
+ new Date(data.last_reconfigured)
+ $('#last-reconfigured-span').text(
+ lastReconfigured.toString())
+ }
+
+ let $pipelines = $(options.pipelines_id)
+ $pipelines.html('')
+ $.each(data.pipelines, function (i, pipeline) {
+ let count = app.create_tree(pipeline)
+ $pipelines.append(
+ format.pipeline(pipeline, count))
+ })
+
+ $(options.queue_events_num).text(
+ data.trigger_event_queue
+ ? data.trigger_event_queue.length : '0'
+ )
+ $(options.queue_results_num).text(
+ data.result_event_queue
+ ? data.result_event_queue.length : '0'
+ )
+ },
+ /** @return {jQuery.Promise} */
+ update: function () {
+ // Cancel the previous update if it hasn't completed yet.
+ if (xhr) {
+ xhr.abort()
+ }
+
+ this.emit('update-start')
+ let app = this
+
+ let $msg = $(options.msg_id)
+ if (options.source_data !== null) {
+ app.injest(options.source_data, $msg)
+ return
+ }
+ xhr = $.getJSON(options.source)
+ .done(function (data) {
+ app.injest(data, $msg)
+ })
+ .fail(function (jqXHR, statusText, errMsg) {
+ if (statusText === 'abort') {
+ return
+ }
+ $msg.text(options.source + ': ' + errMsg)
+ .addClass('alert-danger')
+ .removeClass('zuul-msg-wrap-off')
+ .show()
+ })
+ .always(function () {
+ xhr = undefined
+ app.emit('update-end')
+ })
+
+ return xhr
+ },
+
+ update_sparklines: function () {
+ $.each(zuulSparklineURLs, function (name, url) {
+ let newimg = new Image()
+ let parts = url.split('#')
+ newimg.src = parts[0] + '#' + new Date().getTime()
+ $(newimg).load(function () {
+ zuulSparklineURLs[name] = newimg.src
+ })
+ })
+ },
+
+ emit: function () {
+ $jq.trigger.apply($jq, arguments)
+ return this
+ },
+ on: function () {
+ $jq.on.apply($jq, arguments)
+ return this
+ },
+ one: function () {
+ $jq.one.apply($jq, arguments)
+ return this
+ },
+
+ controlForm: function () {
+ // Build the filter form filling anything from cookies
+
+ let $controlForm = $('<form />')
+ .attr('role', 'form')
+ .addClass('form-inline')
+ .submit(this.handleFilterChange)
+
+ $controlForm
+ .append(this.filterFormGroup())
+ .append(this.expandFormGroup())
+
+ return $controlForm
+ },
+
+ filterFormGroup: function () {
+ // Update the filter form with a clear button if required
+
+ let $label = $('<label />')
+ .addClass('control-label')
+ .attr('for', 'filter_string')
+ .text('Filters')
+ .css('padding-right', '0.5em')
+
+ let $input = $('<input />')
+ .attr('type', 'text')
+ .attr('id', 'filter_string')
+ .addClass('form-control')
+ .attr('title',
+ 'project(s), pipeline(s) or review(s) comma ' +
+ 'separated')
+ .attr('value', currentFilter)
+
+ $input.change(this.handleFilterChange)
+
+ let $clearIcon = $('<span />')
+ .addClass('form-control-feedback')
+ .addClass('glyphicon glyphicon-remove-circle')
+ .attr('id', 'filter_form_clear_box')
+ .attr('title', 'clear filter')
+ .css('cursor', 'pointer')
+
+ $clearIcon.click(function () {
+ $('#filter_string').val('').change()
+ })
+
+ if (currentFilter === '') {
+ $clearIcon.hide()
+ }
+
+ let $formGroup = $('<div />')
+ .addClass('form-group has-feedback')
+ .append($label, $input, $clearIcon)
+ return $formGroup
+ },
+
+ expandFormGroup: function () {
+ let expandByDefault = (
+ readCookie('zuul_expand_by_default', false) === 'true')
+
+ let $checkbox = $('<input />')
+ .attr('type', 'checkbox')
+ .attr('id', 'expand_by_default')
+ .prop('checked', expandByDefault)
+ .change(this.handleExpandByDefault)
+
+ let $label = $('<label />')
+ .css('padding-left', '1em')
+ .html('Expand by default: ')
+ .append($checkbox)
+
+ let $formGroup = $('<div />')
+ .addClass('checkbox')
+ .append($label)
+ return $formGroup
+ },
+
+ handleFilterChange: function () {
+ // Update the filter and save it to a cookie
+ currentFilter = $('#filter_string').val()
+ setCookie('zuul_filter_string', currentFilter)
+ if (currentFilter === '') {
+ $('#filter_form_clear_box').hide()
+ } else {
+ $('#filter_form_clear_box').show()
+ }
+
+ this.update()
+ return false
+ },
+
+ handleExpandByDefault: function (e) {
+ // Handle toggling expand by default
+ setCookie('zuul_expand_by_default', e.target.checked)
+ collapsedExceptions = []
+ $('.zuul-change-box').each(function (index, obj) {
+ let $changeBox = $(obj)
+ format.display_patchset($changeBox, 200)
+ })
+ },
+
+ create_tree: function (pipeline) {
+ let count = 0
+ let pipelineMaxTreeColumns = 1
+ $.each(pipeline.change_queues,
+ function (changeQueueIndex, changeQueue) {
+ let tree = []
+ let maxTreeColumns = 1
+ let changes = []
+ let lastTreeLength = 0
+ $.each(changeQueue.heads, function (headIndex, head) {
+ $.each(head, function (changeIndex, change) {
+ changes[change.id] = change
+ change._tree_position = changeIndex
+ })
+ })
+ $.each(changeQueue.heads, function (headIndex, head) {
+ $.each(head, function (changeIndex, change) {
+ if (change.live === true) {
+ count += 1
+ }
+ let idx = tree.indexOf(change.id)
+ if (idx > -1) {
+ change._tree_index = idx
+ // remove...
+ tree[idx] = null
+ while (tree[tree.length - 1] === null) {
+ tree.pop()
+ }
+ } else {
+ change._tree_index = 0
+ }
+ change._tree_branches = []
+ change._tree = []
+ if (typeof (change.items_behind) === 'undefined') {
+ change.items_behind = []
+ }
+ change.items_behind.sort(function (a, b) {
+ return (changes[b]._tree_position - changes[a]._tree_position)
+ })
+ $.each(change.items_behind, function (i, id) {
+ tree.push(id)
+ if (tree.length > lastTreeLength && lastTreeLength > 0) {
+ change._tree_branches.push(tree.length - 1)
+ }
+ })
+ if (tree.length > maxTreeColumns) {
+ maxTreeColumns = tree.length
+ }
+ if (tree.length > pipelineMaxTreeColumns) {
+ pipelineMaxTreeColumns = tree.length
+ }
+ change._tree = tree.slice(0) // make a copy
+ lastTreeLength = tree.length
+ })
+ })
+ changeQueue._tree_columns = maxTreeColumns
+ })
+ pipeline._tree_columns = pipelineMaxTreeColumns
+ return count
+ }
+ }
+
+ $jq = $(app)
+ return {
+ options: options,
+ format: format,
+ app: app,
+ jq: $jq
+ }
+ }
+}(jQuery))
diff --git a/web/status/status.component.html b/web/status/status.component.html
new file mode 100644
index 000000000..3a8718f22
--- /dev/null
+++ b/web/status/status.component.html
@@ -0,0 +1,32 @@
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<div class="container">
+ <div class="zuul-container" id="zuul-container">
+ <div style="display: none;" class="alert" id="zuul_msg"></div>
+ <button class="btn pull-right zuul-spinner">
+ updating <span class="glyphicon glyphicon-refresh"></span>
+ </button>
+ <p>Queue lengths:
+ <span id="zuul_queue_events_num">0</span> events,
+ <span id="zuul_queue_management_events_num">0</span> management events,
+ <span id="zuul_queue_results_num">0</span> results.
+ </p>
+ <div id="zuul_controls"></div>
+ <div id="zuul_pipelines" class="row"></div>
+ <p>Zuul version: <span id="zuul-version-span"></span></p>
+ <p>Last reconfigured: <span id="last-reconfigured-span"></span></p>
+ </div>
+</div>
diff --git a/web/status/status.component.ts b/web/status/status.component.ts
new file mode 100644
index 000000000..578d35b30
--- /dev/null
+++ b/web/status/status.component.ts
@@ -0,0 +1,57 @@
+// Copyright 2018 Red Hat, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Component, OnInit, OnDestroy } from '@angular/core'
+import { ActivatedRoute } from '@angular/router'
+
+import ZuulService from '../zuul/zuul.service'
+import zuulStart from './zuulStart'
+
+interface ZuulStatusOption {
+ enabled: boolean
+}
+
+interface ZuulStatus {
+ options: ZuulStatusOption
+ timer: number
+}
+
+@Component({
+ template: require('./status.component.html')
+})
+export default class StatusComponent implements OnInit, OnDestroy {
+ tenant: string
+ app: ZuulStatus
+
+ constructor(private route: ActivatedRoute, private zuul: ZuulService) {}
+
+ async ngOnInit() {
+ await this.zuul.setTenant(this.route.snapshot.paramMap.get('tenant'))
+
+ if (typeof this.app === 'undefined') {
+ this.app = zuulStart(
+ jQuery, this.zuul)
+ }
+ this.app.options.enabled = true
+ }
+
+ ngOnDestroy() {
+ this.app.options.enabled = false
+ if (typeof this.app.timer !== 'undefined') {
+ clearTimeout(this.app.timer)
+ this.app.timer = 0
+ }
+ jQuery(document).off()
+ }
+}
diff --git a/web/status/zuulStart.js b/web/status/zuulStart.js
new file mode 100644
index 000000000..063b0d697
--- /dev/null
+++ b/web/status/zuulStart.js
@@ -0,0 +1,102 @@
+/* global URL, DemoStatusBasic, DemoStatusOpenStack, DemoStatusTree, BuiltinConfig */
+// Client script for Zuul status page
+//
+// Copyright 2013 OpenStack Foundation
+// Copyright 2013 Timo Tijhof
+// Copyright 2013 Wikimedia Foundation
+// Copyright 2014 Rackspace Australia
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import 'jquery-visibility/jquery-visibility'
+import 'graphitejs/jquery.graphite.js'
+
+import './jquery.zuul'
+
+/**
+ * @return The $.zuul instance
+ */
+function zuulStart ($, zuulService) {
+ // Start the zuul app (expects default dom)
+
+ let $container, $indicator
+
+ let url = new URL(window.location)
+ let params = {
+ // graphite_url: 'http://graphite.openstack.org/render/'
+ }
+
+ if (typeof BuiltinConfig !== 'undefined') {
+ params['source'] = BuiltinConfig.api_endpoint + '/' + 'status'
+ } else if (url.searchParams.has('source_url')) {
+ params['source'] = url.searchParams.get('source_url') + '/' + 'status'
+ } else if (url.searchParams.has('demo')) {
+ let demo = url.searchParams.get('demo') || 'basic'
+ if (demo === 'basic') {
+ params['source_data'] = DemoStatusBasic
+ } else if (demo === 'openstack') {
+ params['source_data'] = DemoStatusOpenStack
+ } else if (demo === 'tree') {
+ params['source_data'] = DemoStatusTree
+ }
+ } else {
+ params['source'] = zuulService.getSourceUrl('status')
+ }
+
+ let zuul = $.zuul(params, zuulService)
+
+ zuul.jq.on('update-start', function () {
+ $container.addClass('zuul-container-loading')
+ $indicator.addClass('zuul-spinner-on')
+ })
+
+ zuul.jq.on('update-end', function () {
+ $container.removeClass('zuul-container-loading')
+ setTimeout(function () {
+ $indicator.removeClass('zuul-spinner-on')
+ }, 500)
+ })
+
+ zuul.jq.one('update-end', function () {
+ // Do this asynchronous so that if the first update adds a
+ // message, it will not animate while we fade in the content.
+ // Instead it simply appears with the rest of the content.
+ setTimeout(function () {
+ // Fade in the content
+ $container.addClass('zuul-container-ready')
+ })
+ })
+
+ $(function ($) {
+ // DOM ready
+ $container = $('#zuul-container')
+ $indicator = $('#zuul-spinner')
+ $('#zuul_controls').append(zuul.app.controlForm())
+
+ zuul.app.schedule()
+
+ $(document).on({
+ 'show.visibility': function () {
+ zuul.options.enabled = true
+ zuul.app.update()
+ },
+ 'hide.visibility': function () {
+ zuul.options.enabled = false
+ }
+ })
+ })
+
+ return zuul
+}
+
+export default zuulStart
diff --git a/web/stream/stream.component.css b/web/stream/stream.component.css
new file mode 100644
index 000000000..3eb73e453
--- /dev/null
+++ b/web/stream/stream.component.css
@@ -0,0 +1,18 @@
+#zuulstreamoverlay {
+ float: right;
+ position: fixed;
+ top: 5px;
+ right: 5px;
+ background-color: white;
+ padding: 2px;
+ color: black;
+}
+
+pre#zuulstreamcontent {
+ font-family: monospace;
+ white-space: pre;
+ margin: 0px 10px;
+ background-color: black;
+ color: lightgrey;
+ border: none;
+}
diff --git a/web/stream/stream.component.html b/web/stream/stream.component.html
new file mode 100644
index 000000000..dcee2ff5c
--- /dev/null
+++ b/web/stream/stream.component.html
@@ -0,0 +1,24 @@
+<!--
+Copyright 2017 BMW Car IT GmbH
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<div class="container-fluid">
+ <span id="zuulstreamoverlay">
+ <form>
+ <input type="checkbox" id="autoscroll" checked> autoscroll
+ </form>
+ </span>
+</div>
+
+<pre id="zuulstreamcontent"></pre>
diff --git a/web/stream/stream.component.ts b/web/stream/stream.component.ts
new file mode 100644
index 000000000..3af31bc34
--- /dev/null
+++ b/web/stream/stream.component.ts
@@ -0,0 +1,90 @@
+// Copyright 2018 Red Hat, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+declare var BuiltinConfig: object
+
+import { Component, OnInit } from '@angular/core'
+import { ActivatedRoute } from '@angular/router'
+
+import ZuulService from '../zuul/zuul.service'
+
+function escapeLog (text) {
+ const pattern = /[<>&"']/g
+
+ return text.replace(pattern, function (match) {
+ return '&#' + match.charCodeAt(0) + ';'
+ })
+}
+
+@Component({
+ styles: [require('./stream.component.css').toString()],
+ template: require('./stream.component.html')
+})
+export default class StreamComponent implements OnInit {
+
+ constructor(private route: ActivatedRoute, private zuul: ZuulService) {}
+
+ async ngOnInit() {
+ await this.zuul.setTenant(this.route.snapshot.paramMap.get('tenant'))
+ this.startStream()
+ }
+
+ startStream () {
+ const pageUpdateInMS = 250
+ let receiveBuffer = ''
+
+ setInterval(function () {
+ console.log('autoScroll')
+ if (receiveBuffer !== '') {
+ document.getElementById('zuulstreamcontent').innerHTML += receiveBuffer
+ receiveBuffer = ''
+ if ((<HTMLInputElement>document.getElementById('autoscroll')).checked) {
+ window.scrollTo(0, document.body.scrollHeight)
+ }
+ }
+ }, pageUpdateInMS)
+
+ const queryParamMap = this.route.snapshot.queryParamMap
+
+ const params = {
+ uuid: queryParamMap.get('uuid')
+ }
+ if (queryParamMap.has('logfile')) {
+ params['logfile'] = queryParamMap.get('logfile')
+ const logfileSuffix = `(${params['logfile']})`
+ }
+ if (typeof BuiltinConfig !== 'undefined') {
+ params['websocket_url'] = BuiltinConfig['websocket_url']
+ } else if (queryParamMap.has('websocket_url')) {
+ params['websocket_url'] = queryParamMap.get('websocket_url')
+ } else {
+ params['websocket_url'] = this.zuul.getWebsocketUrl('console-stream')
+ }
+ const ws = new WebSocket(params['websocket_url'])
+
+ ws.onmessage = function (event) {
+ console.log('onmessage')
+ receiveBuffer = receiveBuffer + escapeLog(event.data)
+ }
+
+ ws.onopen = function (event) {
+ console.log('onopen')
+ ws.send(JSON.stringify(params))
+ }
+
+ ws.onclose = function (event) {
+ console.log('onclose')
+ receiveBuffer = receiveBuffer + '\n--- END OF STREAM ---\n'
+ }
+ }
+}
diff --git a/web/styles/zuul.css b/web/styles/zuul.css
new file mode 100644
index 000000000..419a1d08e
--- /dev/null
+++ b/web/styles/zuul.css
@@ -0,0 +1,65 @@
+@import url('~bootstrap/dist/css/bootstrap.css');
+
+.zuul-change {
+ margin-bottom: 10px;
+}
+
+.zuul-change-id {
+ float: right;
+}
+
+.zuul-job-result {
+ float: right;
+ width: 70px;
+ height: 15px;
+ margin: 2px 0 0 0;
+}
+
+.zuul-change-total-result {
+ height: 10px;
+ width: 100px;
+ margin: 0;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.zuul-spinner,
+.zuul-spinner:hover {
+ opacity: 0;
+ transition: opacity 0.5s ease-out;
+ cursor: default;
+ pointer-events: none;
+}
+
+.zuul-spinner-on,
+.zuul-spinner-on:hover {
+ opacity: 1;
+ transition-duration: 0.2s;
+ cursor: progress;
+}
+
+.zuul-change-cell {
+ padding-left: 5px;
+}
+
+.zuul-change-job {
+ padding: 2px 8px;
+}
+
+.zuul-job-name {
+ font-size: small;
+}
+
+.zuul-non-voting-desc {
+ font-size: smaller;
+}
+
+.zuul-patchset-header {
+ font-size: small;
+ padding: 8px 12px;
+ cursor: pointer;
+}
+
+.form-inline > .form-group {
+ padding-right: 5px;
+}
diff --git a/web/tenants/tenant.ts b/web/tenants/tenant.ts
new file mode 100644
index 000000000..a571bf707
--- /dev/null
+++ b/web/tenants/tenant.ts
@@ -0,0 +1,18 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+class Tenant {
+ name: string
+ projects: number
+}
diff --git a/web/tenants/tenants.component.html b/web/tenants/tenants.component.html
new file mode 100644
index 000000000..216003ff3
--- /dev/null
+++ b/web/tenants/tenants.component.html
@@ -0,0 +1,40 @@
+<!--
+Copyright 2017 Red Hat
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+-->
+<div class="container-fluid">
+ <!-- TODO(mordred) Make navigation smarter to handle tenants list -->
+ <table class="table table-hover table-condensed">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Status</th>
+ <th>Jobs</th>
+ <th>Builds</th>
+ <th>Projects count</th>
+ <th>Queue size</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr *ngFor="let tenant of tenants">
+ <td>{{ tenant.name }}</td>
+ <td><a [routerLink]="['/t', tenant.name, 'status.html']">status</a></td>
+ <td><a [routerLink]="['/t', tenant.name, 'jobs.html']">jobs</a></td>
+ <td><a [routerLink]="['/t', tenant.name, 'builds.html']">builds</a></td>
+ <td>{{ tenant.projects }}</td>
+ <td>{{ tenant.queue }}</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
diff --git a/web/tenants/tenants.component.ts b/web/tenants/tenants.component.ts
new file mode 100644
index 000000000..c43294a57
--- /dev/null
+++ b/web/tenants/tenants.component.ts
@@ -0,0 +1,38 @@
+// Copyright 2017 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Component, OnInit } from '@angular/core'
+import { HttpClient } from '@angular/common/http'
+
+import ZuulService from '../zuul/zuul.service'
+
+@Component({
+ template: require('./tenants.component.html')
+})
+export default class TenantsComponent implements OnInit {
+
+ tenants: Tenant[]
+
+ constructor(private http: HttpClient, private zuul: ZuulService) {}
+
+ async ngOnInit() {
+ await this.zuul.setTenant()
+ this.tenantsFetch()
+ }
+
+ tenantsFetch(): void {
+ this.http.get<Tenant[]>(this.zuul.getSourceUrl('tenants'))
+ .subscribe(tenants => { this.tenants = tenants })
+ }
+}
diff --git a/web/zuul/description.ts b/web/zuul/description.ts
new file mode 100644
index 000000000..67f25e082
--- /dev/null
+++ b/web/zuul/description.ts
@@ -0,0 +1,18 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+export default class RouteDescription {
+ title: string
+ url: string[]
+}
diff --git a/web/zuul/info.ts b/web/zuul/info.ts
new file mode 100644
index 000000000..1df2391ec
--- /dev/null
+++ b/web/zuul/info.ts
@@ -0,0 +1,18 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+export default class Info {
+ tenant: string
+ whiteLabel: boolean
+}
diff --git a/web/zuul/infoResponse.ts b/web/zuul/infoResponse.ts
new file mode 100644
index 000000000..6835222fa
--- /dev/null
+++ b/web/zuul/infoResponse.ts
@@ -0,0 +1,19 @@
+// Copyright 2018 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import Info from './info'
+
+export default class InfoResponse {
+ info: Info
+}
diff --git a/web/zuul/zuul.service.ts b/web/zuul/zuul.service.ts
new file mode 100644
index 000000000..b244112ea
--- /dev/null
+++ b/web/zuul/zuul.service.ts
@@ -0,0 +1,152 @@
+// Copyright 2017 Red Hat
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may
+// not use this file except in compliance with the License. You may obtain
+// a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations
+// under the License.
+
+import { Injectable, EventEmitter, Output } from '@angular/core'
+import { HttpClient } from '@angular/common/http'
+import { Router } from '@angular/router'
+import { BehaviorSubject } from 'rxjs/BehaviorSubject'
+
+import * as url from 'url'
+
+import Info from './info'
+import InfoResponse from './infoResponse'
+import RouteDescription from './description'
+
+declare var ZUUL_API_URL: string
+declare var ZUUL_BASE_HREF: string
+
+function getAppBaseHrefFromPath () {
+ const path = window.location.pathname
+ if (path.includes('/t/')) {
+ return path.slice(0, path.lastIndexOf('/t/') + 1)
+ } else {
+ return path.split('/').slice(0, -1).join('/') || '/'
+ }
+}
+
+export function getAppBaseHref (): string {
+ /*
+ * Return a value suitable for use in
+ * https://angular.io/api/common/APP_BASE_HREF
+ */
+ let path
+ if (typeof ZUUL_BASE_HREF !== 'undefined') {
+ path = ZUUL_BASE_HREF
+ } else {
+ // Use window.location.pathname because we're looking for a path
+ // prefix, not a URL.
+ path = getAppBaseHrefFromPath()
+ }
+ if (! path.endsWith('/')) {
+ path = path + '/'
+ }
+ return path
+}
+
+@Injectable({
+ providedIn: 'root',
+})
+export class ZuulService {
+ public baseApiUrl: string
+ public appBaseHref: string
+ public info: Info
+ navbarRoutes: RouteDescription[]
+ private routePages = ['status', 'jobs', 'builds']
+
+ constructor(private router: Router, private http: HttpClient) {
+ this.baseApiUrl = this.getBaseApiUrl()
+ this.appBaseHref = getAppBaseHref()
+ }
+
+ async setTenant (tenant?: string) {
+ if (!this.info) {
+ const infoEndpoint = this.baseApiUrl + 'api/info'
+ const infoResponse = await this.http.get<InfoResponse>(
+ infoEndpoint).toPromise()
+ this.info = infoResponse.info
+ if (this.info.tenant && !tenant) {
+ this.info.whiteLabel = true
+ } else {
+ this.info.whiteLabel = false
+ }
+ }
+ if (tenant) {
+ this.info.tenant = tenant
+ }
+ this.navbarRoutes = this.getNavbarRoutes()
+ }
+
+ getBaseApiUrl (): string {
+ let path
+ if (typeof ZUUL_API_URL !== 'undefined') {
+ path = ZUUL_API_URL
+ } else {
+ path = url.resolve(window.location.href, getAppBaseHrefFromPath())
+ }
+ if (! path.endsWith('/')) {
+ path = path + '/'
+ }
+ return path
+ }
+
+ getSourceUrl (filename: string): string {
+ const tenant = this.info.tenant
+ if (this.info.whiteLabel || filename === 'tenants') {
+ if (!this.info.whiteLabel) {
+ // Reset selected tenant
+ this.info.tenant = ''
+ }
+ return url.resolve(this.baseApiUrl, `api/${filename}`)
+ }
+ if (!tenant) {
+ // No tenant selected, go to tenant list
+ console.log('No tenant selected, navigate to tenants list')
+ this.router.navigate(['/tenants.html'])
+ }
+ return url.resolve(this.baseApiUrl, `api/tenant/${tenant}/${filename}`)
+ }
+
+ getWebsocketUrl (filename: string): string {
+ return this.getSourceUrl(filename)
+ .replace(/(http)(s)?\:\/\//, 'ws$2://')
+ }
+
+ getNavbarRoutes(): RouteDescription[] {
+ const routes = []
+ for (const routePage of this.routePages) {
+ const description: RouteDescription = {
+ title: this.getRouteTitle(routePage),
+ url: this.getRouterLink(routePage)
+ }
+ routes.push(description)
+ }
+ return routes
+ }
+
+ getRouteTitle(target: string): string {
+ return target.charAt(0).toUpperCase() + target.slice(1)
+ }
+
+ getRouterLink(target: string): string[] {
+ const htmlTarget = target + '.html'
+ if (this.info.whiteLabel) {
+ return ['/' + htmlTarget]
+ } else {
+ return ['/t', this.info.tenant, htmlTarget]
+ }
+ }
+
+}
+
+export default ZuulService
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 000000000..27c3d5841
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,3 @@
+module.exports = function(env) {
+ return require(`./web/config/webpack.${env}.js`)
+}
diff --git a/web/yarn.lock b/yarn.lock
index 025242168..4501aeb27 100644
--- a/web/yarn.lock
+++ b/yarn.lock
@@ -2,195 +2,154 @@
# yarn lockfile v1
-"@types/c3@^0.6.0":
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/@types/c3/-/c3-0.6.0.tgz#74fe73461f18386ae460e8113ea4883ab7fbeab1"
+"@angular/common@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.0.3.tgz#8b2af3bb74add35c10cd969a5d179cb6a8b21545"
dependencies:
- "@types/d3" "^4"
-
-"@types/d3-array@*":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-1.2.1.tgz#e489605208d46a1c9d980d2e5772fa9c75d9ec65"
+ tslib "^1.9.0"
-"@types/d3-axis@*":
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-1.0.10.tgz#41d6b3ea9032f9531ec0d71d83bcf49294511210"
+"@angular/compiler@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.0.3.tgz#47e988012e94f9e3477a4c5557c997d7910a3b2d"
dependencies:
- "@types/d3-selection" "*"
+ tslib "^1.9.0"
-"@types/d3-brush@*":
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-1.0.8.tgz#2bb9b93e58115da9e0c94ac2b865e34d3631b69b"
+"@angular/core@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.0.3.tgz#50502115105c3784d24338dd8ffb7dddcb55b58d"
dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-chord@*":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-1.0.7.tgz#6cb982d84c02bf1b05874d921316451546fde9c3"
-
-"@types/d3-collection@*":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@types/d3-collection/-/d3-collection-1.0.7.tgz#829e1db477d6bbbcdc038cbc489f22798752d707"
-
-"@types/d3-color@*":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.2.1.tgz#26141c3c554e320edd40726b793570a3ae57397e"
+ tslib "^1.9.0"
-"@types/d3-dispatch@*":
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-1.0.6.tgz#19b173f669cd2ab7dd3d862e8037aae1a98c7508"
-
-"@types/d3-drag@*":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-1.2.1.tgz#6394bcf2f6414140b3b0d521259cadc6fa1da926"
+"@angular/forms@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.0.3.tgz#57328c9ec0ddf4ae7823ec807315501813c22752"
dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-dsv@*":
- version "1.0.33"
- resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-1.0.33.tgz#18de1867927f7ec898671aef82f730f16d4c7fcb"
-
-"@types/d3-ease@*":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-1.0.7.tgz#93a301868be9e15061f3d44343b1ab3f8acb6f09"
-
-"@types/d3-force@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.1.1.tgz#185c18b77932df63457894bd36d0d6e9692546c0"
+ tslib "^1.9.0"
-"@types/d3-format@*":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.3.0.tgz#c5e115fac8e6861ce656fe9861892b22f6b0cfcb"
-
-"@types/d3-geo@*":
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-1.10.3.tgz#3c01b2baa480e1108301096328dc2837e7ff4d8a"
+"@angular/platform-browser-dynamic@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.3.tgz#b27e26c06df4ce34879cefd818e7ff394764f834"
dependencies:
- "@types/geojson" "*"
+ tslib "^1.9.0"
-"@types/d3-hierarchy@*":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.3.tgz#c5364aac0ff4491fc78f73b7c0d546b57b561230"
+"@angular/platform-browser@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.0.3.tgz#67941ac1dc0e89c1a18bb97ef17d574f469be6d2"
+ dependencies:
+ tslib "^1.9.0"
-"@types/d3-interpolate@*":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-1.2.0.tgz#b5587e013f8afbbc0194046e6a66bb7b8f1c8619"
+"@angular/router@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.0.3.tgz#c2b63401c30788b78c90e4209cd06a653eae6428"
dependencies:
- "@types/d3-color" "*"
+ tslib "^1.9.0"
-"@types/d3-path@*":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-1.0.7.tgz#a0736fceed688a695f48265a82ff7a3369414b81"
+"@babel/code-frame@7.0.0-beta.42", "@babel/code-frame@^7.0.0-beta.40":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz#a9c83233fa7cd06b39dc77adbb908616ff4f1962"
+ dependencies:
+ "@babel/highlight" "7.0.0-beta.42"
-"@types/d3-polygon@*":
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-1.0.6.tgz#db25c630a2afb9191fe51ba61dd37baee9dd44c7"
+"@babel/generator@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.42.tgz#777bb50f39c94a7e57f73202d833141f8159af33"
+ dependencies:
+ "@babel/types" "7.0.0-beta.42"
+ jsesc "^2.5.1"
+ lodash "^4.2.0"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
-"@types/d3-quadtree@*":
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-1.0.6.tgz#45da9e603688ba90eedd3d40f6e504764e06e493"
+"@babel/helper-function-name@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.42.tgz#b38b8f4f85168d1812c543dd700b5d549b0c4658"
+ dependencies:
+ "@babel/helper-get-function-arity" "7.0.0-beta.42"
+ "@babel/template" "7.0.0-beta.42"
+ "@babel/types" "7.0.0-beta.42"
-"@types/d3-queue@*":
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/@types/d3-queue/-/d3-queue-3.0.6.tgz#2f5aa7eca3b153bb49687eaa570c10ab713439d3"
+"@babel/helper-get-function-arity@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.42.tgz#ad072e32f912c033053fc80478169aeadc22191e"
+ dependencies:
+ "@babel/types" "7.0.0-beta.42"
-"@types/d3-random@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-1.1.1.tgz#38647ce2ff4ce7d0d56974334c1c4092513c8b9f"
+"@babel/helper-split-export-declaration@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.42.tgz#0d0d5254220a9cc4e7e226240306b939dc210ee7"
+ dependencies:
+ "@babel/types" "7.0.0-beta.42"
-"@types/d3-request@*":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@types/d3-request/-/d3-request-1.0.2.tgz#db9db8154f47816584706c6e6f702be66f22f4be"
+"@babel/highlight@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.42.tgz#a502a1c0d6f99b2b0e81d468a1b0c0e81e3f3623"
dependencies:
- "@types/d3-dsv" "*"
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^3.0.0"
+
+"@babel/template@7.0.0-beta.42":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.42.tgz#7186d4e70d44cdec975049ba0a73bdaf5cdee052"
+ dependencies:
+ "@babel/code-frame" "7.0.0-beta.42"
+ "@babel/types" "7.0.0-beta.42"
+ babylon "7.0.0-beta.42"
+ lodash "^4.2.0"
+
+"@babel/traverse@^7.0.0-beta.40":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.42.tgz#f4bf4d1e33d41baf45205e2d0463591d57326285"
+ dependencies:
+ "@babel/code-frame" "7.0.0-beta.42"
+ "@babel/generator" "7.0.0-beta.42"
+ "@babel/helper-function-name" "7.0.0-beta.42"
+ "@babel/helper-split-export-declaration" "7.0.0-beta.42"
+ "@babel/types" "7.0.0-beta.42"
+ babylon "7.0.0-beta.42"
+ debug "^3.1.0"
+ globals "^11.1.0"
+ invariant "^2.2.0"
+ lodash "^4.2.0"
-"@types/d3-scale@^1":
- version "1.0.13"
- resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-1.0.13.tgz#8c89f73ea8adf81b849124683628aa834dcf545e"
+"@babel/types@7.0.0-beta.42", "@babel/types@^7.0.0-beta.40":
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.42.tgz#1e2118767684880f6963801b272fd2b3348efacc"
dependencies:
- "@types/d3-time" "*"
+ esutils "^2.0.2"
+ lodash "^4.2.0"
+ to-fast-properties "^2.0.0"
-"@types/d3-selection@*":
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-1.3.2.tgz#dd5661a560ba9ce3aba823c424b8d4a1bc7e833f"
+"@sindresorhus/is@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
-"@types/d3-shape@*":
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-1.2.3.tgz#cadc9f93a626db9190f306048a650df4ffa4e500"
+"@types/angular@^1.6.43":
+ version "1.6.43"
+ resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.43.tgz#6235ef416053a86302970717510a936d889cbb9a"
+
+"@types/bootstrap@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@types/bootstrap/-/bootstrap-4.0.1.tgz#7eddfc4e56143cfc54de0fba573d9724ec8b2712"
dependencies:
- "@types/d3-path" "*"
+ "@types/jquery" "*"
+ popper.js "^1.14.1"
-"@types/d3-time-format@*":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.1.0.tgz#011e0fb7937be34a9a8f580ae1e2f2f1336a8a22"
+"@types/core-js@^0.9.46":
+ version "0.9.46"
+ resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.46.tgz#ea701ee34cbb6dfe6d100f1530319547c93c8d79"
-"@types/d3-time@*":
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.8.tgz#6c083127b330b3c2fc65cd0f3a6e9cbd9607b28c"
+"@types/jquery@*", "@types/jquery@^3.3.1":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.1.tgz#55758d44d422756d6329cbf54e6d41931d7ba28f"
-"@types/d3-timer@*":
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-1.0.7.tgz#053e6369d9485c9dc80bc62fc0851123341d7816"
+"@types/node@*":
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.1.tgz#e2d374ef15b315b48e7efc308fa1a7cd51faa06c"
-"@types/d3-transition@*":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-1.1.2.tgz#1106fc3129decc9ad5682a9f52b2dfa52f14e57c"
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-voronoi@*":
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/@types/d3-voronoi/-/d3-voronoi-1.1.7.tgz#c0a145cf04395927e01706ff6c4ff835c97a8ece"
-
-"@types/d3-zoom@*":
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-1.7.1.tgz#0d69be0bf5849cffb66f48e4258c838436b43822"
- dependencies:
- "@types/d3-interpolate" "*"
- "@types/d3-selection" "*"
-
-"@types/d3@^4":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@types/d3/-/d3-4.13.0.tgz#aae092b368266409cfbf19c611203145ec0d5f65"
- dependencies:
- "@types/d3-array" "*"
- "@types/d3-axis" "*"
- "@types/d3-brush" "*"
- "@types/d3-chord" "*"
- "@types/d3-collection" "*"
- "@types/d3-color" "*"
- "@types/d3-dispatch" "*"
- "@types/d3-drag" "*"
- "@types/d3-dsv" "*"
- "@types/d3-ease" "*"
- "@types/d3-force" "*"
- "@types/d3-format" "*"
- "@types/d3-geo" "*"
- "@types/d3-hierarchy" "*"
- "@types/d3-interpolate" "*"
- "@types/d3-path" "*"
- "@types/d3-polygon" "*"
- "@types/d3-quadtree" "*"
- "@types/d3-queue" "*"
- "@types/d3-random" "*"
- "@types/d3-request" "*"
- "@types/d3-scale" "^1"
- "@types/d3-selection" "*"
- "@types/d3-shape" "*"
- "@types/d3-time" "*"
- "@types/d3-time-format" "*"
- "@types/d3-timer" "*"
- "@types/d3-transition" "*"
- "@types/d3-voronoi" "*"
- "@types/d3-zoom" "*"
-
-"@types/geojson@*":
- version "7946.0.4"
- resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.4.tgz#4e049756383c3f055dd8f3d24e63fb543e98eb07"
-
-abab@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
+"@types/node@^9.4.7":
+ version "9.6.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.0.tgz#d3480ee666df9784b1001a1872a2f6ccefb6c2d7"
abbrev@1:
version "1.1.1"
@@ -203,17 +162,11 @@ accepts@~1.3.4, accepts@~1.3.5:
mime-types "~2.1.18"
negotiator "0.6.1"
-acorn-dynamic-import@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
- dependencies:
- acorn "^4.0.3"
-
-acorn-globals@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
+acorn-dynamic-import@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278"
dependencies:
- acorn "^4.0.4"
+ acorn "^5.0.0"
acorn-jsx@^3.0.0:
version "3.0.1"
@@ -221,37 +174,42 @@ acorn-jsx@^3.0.0:
dependencies:
acorn "^3.0.4"
-acorn-jsx@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e"
- dependencies:
- acorn "^5.0.3"
-
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-acorn@^4.0.3, acorn@^4.0.4:
- version "4.0.13"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
-
-acorn@^5.0.0, acorn@^5.0.3, acorn@^5.5.0, acorn@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
+acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
+ version "5.5.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
-address@1.0.3, address@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9"
+adjust-sourcemap-loader@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz#e33fde95e50db9f2a802e3647e311d2fc5000c69"
+ dependencies:
+ assert "^1.3.0"
+ camelcase "^1.2.1"
+ loader-utils "^1.1.0"
+ lodash.assign "^4.0.1"
+ lodash.defaults "^3.1.2"
+ object-path "^0.9.2"
+ regex-parser "^2.2.9"
-ajv-keywords@^2.0.0:
+ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
-ajv-keywords@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
+ajv-keywords@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
-ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.3.0:
+ajv@^4.9.1:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ dependencies:
+ co "^4.6.0"
+ json-stable-stringify "^1.0.1"
+
+ajv@^5.2.3, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
dependencies:
@@ -260,22 +218,13 @@ ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.3.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-ajv@^6.0.1, ajv@^6.5.0:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360"
+ajv@^6.1.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.3.0.tgz#1650a41114ef00574cac10b8032d8f4c14812da7"
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.1"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
+ json-schema-traverse "^0.3.0"
alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
version "1.0.2"
@@ -285,25 +234,19 @@ amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-ansi-align@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
- dependencies:
- string-width "^2.0.0"
-
-ansi-escapes@^1.4.0:
+ansi-escapes@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
ansi-escapes@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
-ansi-regex@^2.0.0, ansi-regex@^2.1.1:
+ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -315,12 +258,20 @@ ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-ansi-styles@^3.0.0, ansi-styles@^3.2.1:
+ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
dependencies:
color-convert "^1.9.0"
+ansi-styles@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
+
+any-observable@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242"
+
anymatch@^1.3.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
@@ -335,19 +286,42 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-append-transform@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab"
- dependencies:
- default-require-extensions "^2.0.0"
+app-root-path@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
-aproba@^1.0.3:
+aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+archiver-utils@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
+ dependencies:
+ glob "^7.0.0"
+ graceful-fs "^4.1.0"
+ lazystream "^1.0.0"
+ lodash "^4.8.0"
+ normalize-path "^2.0.0"
+ readable-stream "^2.0.0"
+
+archiver@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22"
+ dependencies:
+ archiver-utils "^1.3.0"
+ async "^2.0.0"
+ buffer-crc32 "^0.2.1"
+ glob "^7.0.0"
+ lodash "^4.8.0"
+ readable-stream "^2.0.0"
+ tar-stream "^1.5.0"
+ walkdir "^0.0.11"
+ zip-stream "^1.1.0"
+
are-we-there-yet@~1.1.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
@@ -358,13 +332,6 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-aria-query@^0.7.0:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e"
- dependencies:
- ast-types-flow "0.0.7"
- commander "^2.11.0"
-
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@@ -383,13 +350,9 @@ arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
-array-equal@^1.0.0:
+array-differ@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
-
-array-filter@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
array-find-index@^1.0.1:
version "1.0.2"
@@ -410,14 +373,6 @@ array-includes@^3.0.3:
define-properties "^1.1.2"
es-abstract "^1.7.0"
-array-map@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
-
-array-reduce@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
-
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
@@ -436,14 +391,10 @@ array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-asap@~2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
-
asn1.js@^4.0.0:
version "4.10.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@@ -453,16 +404,18 @@ asn1.js@^4.0.0:
minimalistic-assert "^1.0.0"
asn1@~0.2.3:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
- dependencies:
- safer-buffer "~2.1.0"
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-assert@^1.1.1:
+assert-plus@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
+
+assert@^1.1.1, assert@^1.3.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
dependencies:
@@ -472,42 +425,47 @@ assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
-ast-types-flow@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+ast-types@0.10.1:
+ version "0.10.1"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd"
+
+ast-types@0.11.3:
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8"
+
+ast-types@0.9.6:
+ version "0.9.6"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
-async@^1.4.0, async@^1.5.2:
+async-limiter@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+
+async@^1.5.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.1.2, async@^2.1.4, async@^2.4.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
+async@^2.0.0, async@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies:
- lodash "^4.17.10"
+ lodash "^4.14.0"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-atob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a"
+atob@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d"
-autoprefixer@7.1.6:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7"
- dependencies:
- browserslist "^2.5.1"
- caniuse-lite "^1.0.30000748"
- normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- postcss "^6.0.13"
- postcss-value-parser "^3.2.3"
+atob@~1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773"
autoprefixer@^6.3.1:
version "6.7.7"
@@ -520,28 +478,15 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-
-aws4@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
-
-axios@^0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
- dependencies:
- follow-redirects "^1.3.0"
- is-buffer "^1.1.5"
+aws-sign2@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-axobject-query@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0"
- dependencies:
- ast-types-flow "0.0.7"
+aws4@^1.2.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.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:
@@ -549,7 +494,7 @@ babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, bab
esutils "^2.0.2"
js-tokens "^3.0.2"
-babel-core@6.26.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:
@@ -573,40 +518,18 @@ babel-core@6.26.0:
slash "^1.0.0"
source-map "^0.5.6"
-babel-core@^6.0.0, babel-core@^6.26.0:
- version "6.26.3"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.1"
- debug "^2.6.9"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.8"
- slash "^1.0.0"
- source-map "^0.5.7"
-
-babel-eslint@7.2.3:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827"
+babel-eslint@^8.0.3:
+ version "8.2.2"
+ resolved "http://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b"
dependencies:
- babel-code-frame "^6.22.0"
- babel-traverse "^6.23.1"
- babel-types "^6.23.0"
- babylon "^6.17.0"
+ "@babel/code-frame" "^7.0.0-beta.40"
+ "@babel/traverse" "^7.0.0-beta.40"
+ "@babel/types" "^7.0.0-beta.40"
+ babylon "^7.0.0-beta.40"
+ eslint-scope "~3.7.1"
+ eslint-visitor-keys "^1.0.0"
-babel-generator@^6.18.0, babel-generator@^6.26.0:
+babel-generator@^6.26.0:
version "6.26.1"
resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
dependencies:
@@ -619,6 +542,14 @@ babel-generator@^6.18.0, babel-generator@^6.26.0:
source-map "^0.5.7"
trim-right "^1.0.1"
+babel-helper-bindify-decorators@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
@@ -627,14 +558,6 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-helper-builder-react-jsx@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0"
- dependencies:
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- esutils "^2.0.2"
-
babel-helper-call-delegate@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
@@ -661,6 +584,15 @@ babel-helper-explode-assignable-expression@^6.24.1:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
+babel-helper-explode-class@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
+ dependencies:
+ babel-helper-bindify-decorators "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+
babel-helper-function-name@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
@@ -728,17 +660,9 @@ babel-helpers@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-jest@20.0.3, babel-jest@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671"
- dependencies:
- babel-core "^6.0.0"
- babel-plugin-istanbul "^4.0.0"
- babel-preset-jest "^20.0.3"
-
-babel-loader@7.1.2:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126"
+babel-loader@^7.1.2:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015"
dependencies:
find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
@@ -750,42 +674,41 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
+babel-plugin-angularjs-annotate@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-angularjs-annotate/-/babel-plugin-angularjs-annotate-0.8.2.tgz#7f9a37fbb7511668e836cb91a2e43e98e12f9ed9"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-types "^6.26.0"
+ simple-is "~0.2.0"
+
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-dynamic-import-node@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a"
- dependencies:
- babel-plugin-syntax-dynamic-import "^6.18.0"
- babel-template "^6.26.0"
- babel-types "^6.26.0"
-
-babel-plugin-istanbul@^4.0.0:
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
- dependencies:
- babel-plugin-syntax-object-rest-spread "^6.13.0"
- find-up "^2.1.0"
- istanbul-lib-instrument "^1.10.1"
- test-exclude "^4.2.1"
-
-babel-plugin-jest-hoist@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767"
-
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"
+babel-plugin-syntax-async-generators@^6.5.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
+
+babel-plugin-syntax-class-constructor-call@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
+
babel-plugin-syntax-class-properties@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
-babel-plugin-syntax-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0:
+babel-plugin-syntax-decorators@^6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
+
+babel-plugin-syntax-dynamic-import@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
@@ -793,15 +716,15 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
+babel-plugin-syntax-export-extensions@^6.8.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
+
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.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"
-
-babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
+babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -809,7 +732,15 @@ babel-plugin-syntax-trailing-function-commas@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
-babel-plugin-transform-async-to-generator@^6.22.0:
+babel-plugin-transform-async-generator-functions@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
+ dependencies:
+ babel-helper-remap-async-to-generator "^6.24.1"
+ babel-plugin-syntax-async-generators "^6.5.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
dependencies:
@@ -817,7 +748,15 @@ babel-plugin-transform-async-to-generator@^6.22.0:
babel-plugin-syntax-async-functions "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-class-properties@6.24.1:
+babel-plugin-transform-class-constructor-call@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
+ dependencies:
+ babel-plugin-syntax-class-constructor-call "^6.18.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-class-properties@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
dependencies:
@@ -826,6 +765,16 @@ babel-plugin-transform-class-properties@6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
+babel-plugin-transform-decorators@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
+ dependencies:
+ babel-helper-explode-class "^6.24.1"
+ babel-plugin-syntax-decorators "^6.13.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-types "^6.24.1"
+
babel-plugin-transform-es2015-arrow-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
@@ -838,7 +787,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-block-scoping@^6.23.0:
+babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
dependencies:
@@ -848,7 +797,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0:
babel-types "^6.26.0"
lodash "^4.17.4"
-babel-plugin-transform-es2015-classes@^6.23.0:
+babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
dependencies:
@@ -862,33 +811,33 @@ babel-plugin-transform-es2015-classes@^6.23.0:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-computed-properties@^6.22.0:
+babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
dependencies:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0:
+babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
+babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
dependencies:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-for-of@^6.23.0:
+babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-function-name@^6.22.0:
+babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
dependencies:
@@ -911,15 +860,15 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015
babel-template "^6.24.1"
babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
- version "6.26.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
dependencies:
babel-plugin-transform-strict-mode "^6.24.1"
babel-runtime "^6.26.0"
babel-template "^6.26.0"
babel-types "^6.26.0"
-babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
+babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
dependencies:
@@ -927,7 +876,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-modules-umd@^6.23.0:
+babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
dependencies:
@@ -935,14 +884,14 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-object-super@^6.22.0:
+babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
dependencies:
babel-helper-replace-supers "^6.24.1"
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-parameters@^6.23.0:
+babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
dependencies:
@@ -953,7 +902,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0:
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
+babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
dependencies:
@@ -966,7 +915,7 @@ babel-plugin-transform-es2015-spread@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-sticky-regex@^6.22.0:
+babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
dependencies:
@@ -980,13 +929,13 @@ babel-plugin-transform-es2015-template-literals@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
+babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-unicode-regex@^6.22.0:
+babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
dependencies:
@@ -994,7 +943,7 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0:
babel-runtime "^6.22.0"
regexpu-core "^2.0.0"
-babel-plugin-transform-exponentiation-operator@^6.22.0:
+babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
dependencies:
@@ -1002,66 +951,33 @@ babel-plugin-transform-exponentiation-operator@^6.22.0:
babel-plugin-syntax-exponentiation-operator "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-flow-strip-types@^6.22.0:
+babel-plugin-transform-export-extensions@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
+ dependencies:
+ babel-plugin-syntax-export-extensions "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-flow-strip-types@^6.8.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
dependencies:
babel-plugin-syntax-flow "^6.18.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-object-rest-spread@6.26.0:
+babel-plugin-transform-object-rest-spread@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
dependencies:
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.26.0"
-babel-plugin-transform-react-constant-elements@6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-display-name@^6.23.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e"
- dependencies:
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
- dependencies:
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
- dependencies:
- babel-helper-builder-react-jsx "^6.24.1"
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0:
+babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
dependencies:
regenerator-transform "^0.10.0"
-babel-plugin-transform-runtime@6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee"
- dependencies:
- babel-runtime "^6.22.0"
-
babel-plugin-transform-strict-mode@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
@@ -1069,7 +985,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-preset-env@1.6.1:
+babel-preset-env@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
dependencies:
@@ -1104,48 +1020,63 @@ babel-preset-env@1.6.1:
invariant "^2.2.2"
semver "^5.3.0"
-babel-preset-flow@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d"
+babel-preset-es2015@^6.9.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
dependencies:
- babel-plugin-transform-flow-strip-types "^6.22.0"
+ babel-plugin-check-es2015-constants "^6.22.0"
+ babel-plugin-transform-es2015-arrow-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoping "^6.24.1"
+ babel-plugin-transform-es2015-classes "^6.24.1"
+ babel-plugin-transform-es2015-computed-properties "^6.24.1"
+ babel-plugin-transform-es2015-destructuring "^6.22.0"
+ babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
+ babel-plugin-transform-es2015-for-of "^6.22.0"
+ babel-plugin-transform-es2015-function-name "^6.24.1"
+ babel-plugin-transform-es2015-literals "^6.22.0"
+ babel-plugin-transform-es2015-modules-amd "^6.24.1"
+ babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
+ babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
+ babel-plugin-transform-es2015-modules-umd "^6.24.1"
+ babel-plugin-transform-es2015-object-super "^6.24.1"
+ babel-plugin-transform-es2015-parameters "^6.24.1"
+ babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
+ babel-plugin-transform-es2015-spread "^6.22.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.24.1"
+ babel-plugin-transform-es2015-template-literals "^6.22.0"
+ babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.24.1"
+ babel-plugin-transform-regenerator "^6.24.1"
-babel-preset-jest@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a"
+babel-preset-stage-1@^6.5.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
dependencies:
- babel-plugin-jest-hoist "^20.0.3"
+ babel-plugin-transform-class-constructor-call "^6.24.1"
+ babel-plugin-transform-export-extensions "^6.22.0"
+ babel-preset-stage-2 "^6.24.1"
-babel-preset-react-app@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz#49ba3681b917c4e5c73a5249d3ef4c48fae064e2"
- dependencies:
- babel-plugin-dynamic-import-node "1.1.0"
- babel-plugin-syntax-dynamic-import "6.18.0"
- babel-plugin-transform-class-properties "6.24.1"
- babel-plugin-transform-es2015-destructuring "6.23.0"
- babel-plugin-transform-object-rest-spread "6.26.0"
- babel-plugin-transform-react-constant-elements "6.23.0"
- babel-plugin-transform-react-jsx "6.24.1"
- babel-plugin-transform-react-jsx-self "6.22.0"
- babel-plugin-transform-react-jsx-source "6.22.0"
- babel-plugin-transform-regenerator "6.26.0"
- babel-plugin-transform-runtime "6.23.0"
- babel-preset-env "1.6.1"
- babel-preset-react "6.24.1"
-
-babel-preset-react@6.24.1:
+babel-preset-stage-2@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
+ dependencies:
+ babel-plugin-syntax-dynamic-import "^6.18.0"
+ babel-plugin-transform-class-properties "^6.24.1"
+ babel-plugin-transform-decorators "^6.24.1"
+ babel-preset-stage-3 "^6.24.1"
+
+babel-preset-stage-3@^6.24.1:
version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
+ resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
dependencies:
- babel-plugin-syntax-jsx "^6.3.13"
- babel-plugin-transform-react-display-name "^6.23.0"
- babel-plugin-transform-react-jsx "^6.24.1"
- babel-plugin-transform-react-jsx-self "^6.22.0"
- babel-plugin-transform-react-jsx-source "^6.22.0"
- babel-preset-flow "^6.23.0"
+ babel-plugin-syntax-trailing-function-commas "^6.22.0"
+ babel-plugin-transform-async-generator-functions "^6.24.1"
+ babel-plugin-transform-async-to-generator "^6.24.1"
+ babel-plugin-transform-exponentiation-operator "^6.24.1"
+ babel-plugin-transform-object-rest-spread "^6.22.0"
-babel-register@^6.26.0:
+babel-register@^6.26.0, babel-register@^6.9.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
dependencies:
@@ -1157,14 +1088,14 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@6.26.0, babel-runtime@6.x.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+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:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
-babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
+babel-template@^6.24.1, babel-template@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
dependencies:
@@ -1174,7 +1105,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.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.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:
@@ -1188,7 +1119,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-tr
invariant "^2.2.2"
lodash "^4.17.4"
-babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.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:
@@ -1197,7 +1128,11 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24
lodash "^4.17.4"
to-fast-properties "^1.0.3"
-babylon@^6.17.0, babylon@^6.18.0:
+babylon@7.0.0-beta.42, babylon@^7.0.0-beta.30, babylon@^7.0.0-beta.40:
+ version "7.0.0-beta.42"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657"
+
+babylon@^6.17.3, babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@@ -1210,8 +1145,8 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
base64-js@^1.0.2:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801"
base@^0.11.1:
version "0.11.2"
@@ -1230,11 +1165,19 @@ batch@0.6.1:
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
bcrypt-pbkdf@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
dependencies:
tweetnacl "^0.14.3"
+bfj-node4@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830"
+ dependencies:
+ bluebird "^3.5.1"
+ check-types "^7.3.0"
+ tryer "^1.0.0"
+
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
@@ -1243,7 +1186,24 @@ binary-extensions@^1.0.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
-bluebird@^3.4.7:
+binaryextensions@2:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935"
+
+bl@^1.0.0:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
+ dependencies:
+ readable-stream "^2.3.5"
+ safe-buffer "^5.1.1"
+
+block-stream@*:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+ dependencies:
+ inherits "~2.0.0"
+
+bluebird@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
@@ -1281,55 +1241,17 @@ boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
-bootstrap-datepicker@^1.7.1:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz#c63513931e6f09f16ae9f11b62f32d950df3958e"
- dependencies:
- jquery ">=1.7.1 <4.0.0"
-
-bootstrap-sass@^3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz#6596c7ab40f6637393323ab0bc80d064fc630498"
-
-bootstrap-select@1.12.2:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/bootstrap-select/-/bootstrap-select-1.12.2.tgz#58d095b3fd584b31443866fbe39b6fdd4e4e12a4"
+boom@2.x.x:
+ version "2.10.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
dependencies:
- jquery ">=1.8"
-
-bootstrap-slider-without-jquery@^10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/bootstrap-slider-without-jquery/-/bootstrap-slider-without-jquery-10.0.0.tgz#5c304461b3b915037c7c118806c8ca08102f5de3"
-
-bootstrap-slider@^9.9.0:
- version "9.10.0"
- resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.10.0.tgz#1103d6bc00cfbfa8cfc9a2599ab518c55643da3f"
+ hoek "2.x.x"
-bootstrap-switch@~3.3.4:
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff"
-
-bootstrap-touchspin@~3.1.1:
+bootstrap@3.1.1:
version "3.1.1"
- resolved "https://registry.yarnpkg.com/bootstrap-touchspin/-/bootstrap-touchspin-3.1.1.tgz#9779deac72aaf577e5e762b8512c747c871d9597"
-
-bootstrap@3.3.x, bootstrap@^3.3, bootstrap@~3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.1.1.tgz#17e14ed261c0fcd9b52ea9aa6420f6d51cd5fa77"
-boxen@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
- dependencies:
- ansi-align "^2.0.0"
- camelcase "^4.0.0"
- chalk "^2.0.1"
- cli-boxes "^1.0.0"
- string-width "^2.0.0"
- term-size "^1.2.0"
- widest-line "^2.0.0"
-
-brace-expansion@^1.0.0, brace-expansion@^1.1.7:
+brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
dependencies:
@@ -1345,37 +1267,29 @@ braces@^1.8.2:
repeat-element "^1.1.2"
braces@^2.3.0, braces@^2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb"
dependencies:
arr-flatten "^1.1.0"
array-unique "^0.3.2"
+ define-property "^1.0.0"
extend-shallow "^2.0.1"
fill-range "^4.0.0"
isobject "^3.0.1"
+ kind-of "^6.0.2"
repeat-element "^1.1.2"
snapdragon "^0.8.1"
snapdragon-node "^2.0.1"
split-string "^3.0.2"
to-regex "^3.0.1"
-breakjs@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/breakjs/-/breakjs-1.0.0.tgz#ec8353a06862eb43962deae09072ee66a4cd8459"
-
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-browser-resolve@^1.11.2:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
- dependencies:
- resolve "1.1.7"
-
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f"
dependencies:
buffer-xor "^1.0.3"
cipher-base "^1.0.0"
@@ -1385,21 +1299,20 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4:
safe-buffer "^5.0.1"
browserify-cipher@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
dependencies:
browserify-aes "^1.0.4"
browserify-des "^1.0.0"
evp_bytestokey "^1.0.0"
browserify-des@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
dependencies:
cipher-base "^1.0.1"
des.js "^1.0.0"
inherits "^2.0.1"
- safe-buffer "^5.1.2"
browserify-rsa@^4.0.0:
version "4.0.1"
@@ -1433,28 +1346,20 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
-browserslist@^2.1.2, browserslist@^2.5.1:
+browserslist@^2.1.2:
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@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
- dependencies:
- node-int64 "^0.4.0"
-
-bser@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
- dependencies:
- node-int64 "^0.4.0"
+buffer-crc32@^0.2.1:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
buffer-indexof@^1.0.0:
version "1.1.1"
@@ -1484,11 +1389,23 @@ bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-c3@^0.4.11, c3@~0.4.11:
- version "0.4.23"
- resolved "https://registry.yarnpkg.com/c3/-/c3-0.4.23.tgz#32ece135d0ac6d124187be5c6935903699643002"
+cacache@^10.0.4:
+ version "10.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
dependencies:
- d3 "~3.5.0"
+ bluebird "^3.5.1"
+ chownr "^1.0.1"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ lru-cache "^4.1.1"
+ mississippi "^2.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.2"
+ ssri "^5.2.4"
+ unique-filename "^1.1.0"
+ y18n "^4.0.0"
cache-base@^1.0.1:
version "1.0.1"
@@ -1504,6 +1421,18 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+cacheable-request@^2.1.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d"
+ dependencies:
+ clone-response "1.0.2"
+ get-stream "3.0.0"
+ http-cache-semantics "3.8.1"
+ keyv "3.0.0"
+ lowercase-keys "1.0.0"
+ normalize-url "2.0.1"
+ responselike "1.0.2"
+
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1514,10 +1443,6 @@ callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
-
camel-case@3.0.x:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
@@ -1532,7 +1457,7 @@ camelcase-keys@^2.0.0:
camelcase "^2.0.0"
map-obj "^1.0.0"
-camelcase@^1.0.2:
+camelcase@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
@@ -1540,11 +1465,7 @@ camelcase@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
-camelcase@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
-
-camelcase@^4.0.0, camelcase@^4.1.0:
+camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
@@ -1558,33 +1479,18 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
- version "1.0.30000877"
- resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000877.tgz#29ea435fdbe8a671cc5b027a75e28a816c17c340"
+ version "1.0.30000819"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000819.tgz#c3b7dd559e5e6d63d5dcaa62bac6bd04c7619709"
-caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792:
- version "1.0.30000876"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000876.tgz#69fc1b696a35fd91089061aa916f677ee7057ada"
-
-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"
-
-case-sensitive-paths-webpack-plugin@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909"
+caniuse-lite@^1.0.30000792:
+ version "1.0.30000819"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000819.tgz#aabee5fd15a080febab6ae5d30c9ea15f4c6d4e2"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chalk@1.1.3, chalk@^1.1.3:
+chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@@ -1594,23 +1500,31 @@ chalk@1.1.3, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-change-emitter@^0.1.2:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515"
+chalk@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
+ dependencies:
+ ansi-styles "~1.0.0"
+ has-color "~0.1.0"
+ strip-ansi "~0.1.0"
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
-chokidar@^1.6.0:
+check-types@^7.3.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d"
+
+chokidar@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies:
@@ -1625,9 +1539,9 @@ chokidar@^1.6.0:
optionalDependencies:
fsevents "^1.0.0"
-chokidar@^2.0.2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
+chokidar@^2.0.0, chokidar@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176"
dependencies:
anymatch "^2.0.0"
async-each "^1.0.0"
@@ -1636,21 +1550,20 @@ chokidar@^2.0.2:
inherits "^2.0.1"
is-binary-path "^1.0.0"
is-glob "^4.0.0"
- lodash.debounce "^4.0.8"
normalize-path "^2.1.1"
path-is-absolute "^1.0.0"
readdirp "^2.0.0"
- upath "^1.0.5"
+ upath "^1.0.0"
optionalDependencies:
- fsevents "^1.2.2"
+ fsevents "^1.1.2"
chownr@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
-ci-info@^1.0.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2"
+chrome-trace-event@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz#90f36885d5345a50621332f0717b595883d5d982"
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@@ -1678,19 +1591,23 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-classnames@^2.2.0, classnames@^2.2.5:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
-
clean-css@4.1.x:
version "4.1.11"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
dependencies:
source-map "0.5.x"
-cli-boxes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
+clean-webpack-plugin@^0.1.16:
+ version "0.1.19"
+ resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz#ceda8bb96b00fe168e9b080272960d20fdcadd6d"
+ dependencies:
+ rimraf "^2.6.1"
+
+cli-cursor@^1.0.2:
+ 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"
@@ -1698,18 +1615,27 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
+cli-spinners@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
+
+cli-table@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
+ dependencies:
+ colors "1.0.3"
+
+cli-truncate@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+ dependencies:
+ slice-ansi "0.0.4"
+ string-width "^1.0.1"
+
cli-width@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
@@ -1718,10 +1644,48 @@ cliui@^3.2.0:
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
-clone@^1.0.2:
+cliui@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+clone-buffer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+
+clone-response@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+ dependencies:
+ mimic-response "^1.0.0"
+
+clone-stats@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
+
+clone-stats@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
+
+clone@^1.0.0, clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+clone@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+
+cloneable-readable@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65"
+ dependencies:
+ inherits "^2.0.1"
+ process-nextick-args "^2.0.0"
+ readable-stream "^2.3.5"
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -1736,6 +1700,17 @@ 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"
+codelyzer@^4.0.2, codelyzer@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-4.2.1.tgz#d56eaacefca7e8138aac0a630e484bdb09988544"
+ dependencies:
+ app-root-path "^2.0.1"
+ css-selector-tokenizer "^0.7.0"
+ cssauron "^1.4.0"
+ semver-dsl "^1.0.1"
+ source-map "^0.5.6"
+ sprintf-js "^1.0.3"
+
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -1744,16 +1719,12 @@ collection-visit@^1.0.0:
object-visit "^1.0.0"
color-convert@^1.3.0, color-convert@^1.9.0:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
dependencies:
- color-name "1.1.1"
+ color-name "^1.1.1"
-color-name@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
-
-color-name@^1.0.0:
+color-name@^1.0.0, color-name@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
@@ -1779,59 +1750,72 @@ colormin@^1.0.5:
css-color-names "0.0.4"
has "^1.0.1"
+colors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+
+colors@^1.1.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794"
+
colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
-combined-stream@1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
dependencies:
delayed-stream "~1.0.0"
-commander@2.16.x, commander@~2.16.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50"
+commander@2.15.x, commander@^2.12.1, commander@^2.13.0, commander@~2.15.0:
+ version "2.15.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
-commander@^2.11.0:
- version "2.17.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+commander@~2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-compare-versions@^3.1.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3"
-
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
-compressible@~2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7"
+compress-commons@^1.2.0:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.2.tgz#524a9f10903f3a813389b0225d27c48bb751890f"
+ dependencies:
+ buffer-crc32 "^0.2.1"
+ crc32-stream "^2.0.0"
+ normalize-path "^2.0.0"
+ readable-stream "^2.0.0"
+
+compressible@~2.0.13:
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9"
dependencies:
- mime-db ">= 1.34.0 < 2"
+ mime-db ">= 1.33.0 < 2"
compression@^1.5.2:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db"
+ version "1.7.2"
+ resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69"
dependencies:
- accepts "~1.3.5"
+ accepts "~1.3.4"
bytes "3.0.0"
- compressible "~2.0.14"
+ compressible "~2.0.13"
debug "2.6.9"
on-headers "~1.0.1"
- safe-buffer "5.1.2"
+ safe-buffer "5.1.1"
vary "~1.1.2"
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.6.0:
+concat-stream@^1.5.0, concat-stream@^1.6.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
dependencies:
@@ -1840,17 +1824,6 @@ concat-stream@^1.6.0:
readable-stream "^2.2.2"
typedarray "^0.0.6"
-configstore@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
- dependencies:
- dot-prop "^4.1.0"
- graceful-fs "^4.1.2"
- make-dir "^1.0.0"
- unique-string "^1.0.0"
- write-file-atomic "^2.0.0"
- xdg-basedir "^3.0.0"
-
connect-history-api-fallback@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
@@ -1877,15 +1850,15 @@ content-disposition@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
-content-type-parser@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7"
-
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.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
+convert-source-map@^0.3.3:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190"
+
+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"
@@ -1897,60 +1870,59 @@ cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
-core-js@^1.0.0:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
-
-core-js@^2.4.0, core-js@^2.5.0:
- version "2.5.7"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
+core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.3:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e"
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"
+crc32-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
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"
+ crc "^3.4.4"
+ readable-stream "^2.0.0"
+
+crc@^3.4.4:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/crc/-/crc-3.5.0.tgz#98b8ba7d489665ba3979f59b21381374101a1964"
create-ecdh@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
dependencies:
bn.js "^4.1.0"
elliptic "^6.0.0"
-create-error-class@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
- dependencies:
- capture-stack-trace "^1.0.0"
-
create-hash@^1.1.0, create-hash@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
dependencies:
cipher-base "^1.0.1"
inherits "^2.0.1"
- md5.js "^1.3.4"
- ripemd160 "^2.0.1"
+ ripemd160 "^2.0.0"
sha.js "^2.4.0"
create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
dependencies:
cipher-base "^1.0.3"
create-hash "^1.1.0"
@@ -1959,14 +1931,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-context@^0.2.1:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca"
- dependencies:
- fbjs "^0.8.0"
- gud "^1.0.0"
-
-cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+cross-spawn@^5.0.1, cross-spawn@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
dependencies:
@@ -1984,6 +1949,12 @@ cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+cryptiles@2.x.x:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
+ dependencies:
+ boom "2.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"
@@ -2000,34 +1971,26 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
-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-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-css-element-queries@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/css-element-queries/-/css-element-queries-1.0.2.tgz#a32edfee4a5023688ef4d45f402077306d51d44c"
-
-css-loader@0.28.7:
- version "0.28.7"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b"
+css-loader@^0.28.10:
+ version "0.28.11"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
dependencies:
- babel-code-frame "^6.11.0"
+ babel-code-frame "^6.26.0"
css-selector-tokenizer "^0.7.0"
- cssnano ">=2.6.1 <4"
+ cssnano "^3.10.0"
icss-utils "^2.1.0"
loader-utils "^1.0.2"
lodash.camelcase "^4.3.0"
- object-assign "^4.0.1"
+ object-assign "^4.1.1"
postcss "^5.0.6"
- postcss-modules-extract-imports "^1.0.0"
- postcss-modules-local-by-default "^1.0.1"
- postcss-modules-scope "^1.0.0"
- postcss-modules-values "^1.1.0"
+ postcss-modules-extract-imports "^1.2.0"
+ postcss-modules-local-by-default "^1.2.0"
+ postcss-modules-scope "^1.1.0"
+ postcss-modules-values "^1.3.0"
postcss-value-parser "^3.3.0"
source-list-map "^2.0.0"
@@ -2052,11 +2015,26 @@ css-what@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+css@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc"
+ dependencies:
+ inherits "^2.0.1"
+ source-map "^0.1.38"
+ source-map-resolve "^0.3.0"
+ urix "^0.1.0"
+
+cssauron@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8"
+ dependencies:
+ through X.X.X
+
cssesc@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
-"cssnano@>=2.6.1 <4":
+cssnano@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
dependencies:
@@ -2100,35 +2078,19 @@ csso@~2.3.1:
clap "^1.0.9"
source-map "^0.5.3"
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797"
-
-"cssstyle@>= 0.2.37 < 0.3.0":
- version "0.2.37"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54"
- dependencies:
- cssom "0.3.x"
-
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
dependencies:
array-find-index "^1.0.1"
-d3@~3.5.0, d3@~3.5.17:
- version "3.5.17"
- resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8"
-
-d@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
- dependencies:
- es5-ext "^0.10.9"
+cyclist@~0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
-damerau-levenshtein@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
+dargs@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829"
dashdash@^1.12.0:
version "1.14.1"
@@ -2136,58 +2098,31 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-datatables.net-bs@>=1.10.9:
- version "1.10.19"
- resolved "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.19.tgz#08763b4e4d0cef1a427d019dc15e717c7ed67a4d"
- dependencies:
- datatables.net "1.10.19"
- jquery ">=1.7"
-
-datatables.net-colreorder-bs@~1.3.2:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/datatables.net-colreorder-bs/-/datatables.net-colreorder-bs-1.3.3.tgz#3a9dcb08deebeb5d854079591e06e493ad793a53"
- dependencies:
- datatables.net-bs ">=1.10.9"
- datatables.net-colreorder ">=1.2.0"
- jquery ">=1.7"
-
-datatables.net-colreorder@>=1.2.0, datatables.net-colreorder@^1.4.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/datatables.net-colreorder/-/datatables.net-colreorder-1.5.1.tgz#ee5eacd7178b5fd9396aab44d4907aae35086f8c"
- dependencies:
- datatables.net "^1.10.15"
- jquery ">=1.7"
-
-datatables.net-select@~1.2.0:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/datatables.net-select/-/datatables.net-select-1.2.7.tgz#7d5badfca49c438f8b51df04483d8d77857e917c"
- dependencies:
- datatables.net "^1.10.15"
- jquery ">=1.7"
-
-datatables.net@1.10.19, datatables.net@^1.10.15:
- version "1.10.19"
- resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.19.tgz#97a1ed41c85e62d61040603481b59790a172dd1f"
- dependencies:
- jquery ">=1.7"
+date-fns@^1.27.2:
+ version "1.29.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
+dateformat@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, 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"
dependencies:
ms "2.0.0"
-debug@^3.0.1, debug@^3.1.0:
+debug@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
dependencies:
ms "2.0.0"
-decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
+decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -2195,24 +2130,24 @@ decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+decompress-response@^3.2.0, decompress-response@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ dependencies:
+ mimic-response "^1.0.0"
+
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+deep-extend@^0.4.0, deep-extend@~0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-default-require-extensions@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7"
- dependencies:
- strip-bom "^3.0.0"
-
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
@@ -2243,7 +2178,7 @@ defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
-del@^2.0.2, del@^2.2.2:
+del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
dependencies:
@@ -2293,6 +2228,10 @@ destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+detect-conflict@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e"
+
detect-indent@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
@@ -2307,20 +2246,13 @@ detect-node@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
-detect-port-alt@1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275"
- dependencies:
- address "^1.0.1"
- debug "^2.6.0"
-
-diff@^3.2.0:
+diff@^3.1.0, diff@^3.2.0, diff@^3.3.1, diff@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
diffie-hellman@^5.0.0:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
dependencies:
bn.js "^4.1.0"
miller-rabin "^4.0.0"
@@ -2350,7 +2282,7 @@ doctrine@1.5.0:
esutils "^2.0.2"
isarray "^1.0.0"
-doctrine@^2.0.0, doctrine@^2.1.0:
+doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
dependencies:
@@ -2362,10 +2294,6 @@ dom-converter@~0.1:
dependencies:
utila "~0.3"
-dom-helpers@^3.2.0, dom-helpers@^3.2.1, dom-helpers@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6"
-
dom-serializer@0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
@@ -2373,12 +2301,6 @@ dom-serializer@0:
domelementtype "~1.1.1"
entities "~1.1.1"
-dom-urls@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e"
- dependencies:
- urijs "^1.16.1"
-
domain-browser@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
@@ -2410,26 +2332,6 @@ domutils@1.5.1:
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"
- dependencies:
- is-obj "^1.0.0"
-
-dotenv-expand@4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275"
-
-dotenv@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
-
-drmonty-datatables-colvis@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/drmonty-datatables-colvis/-/drmonty-datatables-colvis-1.1.2.tgz#96ab9edfb48643cc2edda3f87b88933cdee8127c"
- dependencies:
- jquery ">=1.7.0"
-
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -2438,24 +2340,44 @@ duplexer@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+duplexify@^3.4.2, duplexify@^3.5.3:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4"
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
ecc-jsbn@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
dependencies:
jsbn "~0.1.0"
- safer-buffer "^2.1.0"
+
+editions@^1.3.3:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b"
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ejs@^2.3.1, ejs@^2.5.7:
+ version "2.5.7"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
+
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
- version "1.3.58"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz#8267a4000014e93986d9d18c65a8b4022ca75188"
+ version "1.3.40"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.40.tgz#1fbd6d97befd72b8a6f921dc38d22413d2f6fddf"
+
+elegant-spinner@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
elliptic@^6.0.0:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
@@ -2465,10 +2387,6 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
-emoji-regex@^6.1.0:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
-
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@@ -2477,49 +2395,46 @@ encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-encoding@^0.1.11:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
dependencies:
- iconv-lite "~0.4.13"
+ once "^1.4.0"
-enhanced-resolve@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
+enhanced-resolve@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a"
dependencies:
graceful-fs "^4.1.2"
memory-fs "^0.4.0"
- object-assign "^4.0.1"
- tapable "^0.2.7"
+ tapable "^1.0.0"
entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
-eonasdan-bootstrap-datetimepicker@^4.17.47:
- version "4.17.47"
- resolved "https://registry.yarnpkg.com/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz#7a49970044065276e7965efd16f822735219e735"
- dependencies:
- bootstrap "^3.3"
- jquery "^1.8.3 || ^2.0 || ^3.0"
- moment "^2.10"
- moment-timezone "^0.4.0"
-
errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
dependencies:
prr "~1.0.1"
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+error-ex@^1.2.0, error-ex@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.10.0, es-abstract@^1.7.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
+error@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02"
+ dependencies:
+ string-template "~0.2.1"
+ xtend "~4.0.0"
+
+es-abstract@^1.5.1, es-abstract@^1.7.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
@@ -2535,94 +2450,24 @@ es-to-primitive@^1.1.1:
is-date-object "^1.0.1"
is-symbol "^1.0.1"
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
- version "0.10.46"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572"
- dependencies:
- es6-iterator "~2.0.3"
- es6-symbol "~3.1.1"
- next-tick "1"
-
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- dependencies:
- d "1"
- es5-ext "^0.10.35"
- es6-symbol "^3.1.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-promise@^4.0.5:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+es6-templates@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4"
dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
+ recast "~0.11.12"
+ through "~2.3.6"
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@^1.6.1:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589"
- dependencies:
- esprima "^3.1.3"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.6.1"
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-eslint-config-react-app@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz#23c909f71cbaff76b945b831d2d814b8bde169eb"
+eslint-config-standard@^11.0.0-beta.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba"
eslint-import-resolver-node@^0.3.1:
version "0.3.2"
@@ -2631,9 +2476,9 @@ eslint-import-resolver-node@^0.3.1:
debug "^2.6.9"
resolve "^1.5.0"
-eslint-loader@1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13"
+eslint-loader@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.0.0.tgz#d136619b5c684e36531ffc28c60a56e404608f5d"
dependencies:
loader-fs-cache "^1.0.0"
loader-utils "^1.0.2"
@@ -2642,21 +2487,15 @@ eslint-loader@1.9.0:
rimraf "^2.6.1"
eslint-module-utils@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
dependencies:
debug "^2.6.8"
pkg-dir "^1.0.0"
-eslint-plugin-flowtype@2.39.1:
- version "2.39.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5"
- dependencies:
- lodash "^4.15.0"
-
-eslint-plugin-import@2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894"
+eslint-plugin-import@^2.8.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169"
dependencies:
builtin-modules "^1.1.1"
contains-path "^0.1.0"
@@ -2665,97 +2504,64 @@ eslint-plugin-import@2.8.0:
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.1.1"
has "^1.0.1"
- lodash.cond "^4.3.0"
+ lodash "^4.17.4"
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
-eslint-plugin-jest@^21.21.0:
- version "21.21.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.21.0.tgz#f0afd138c4acb5f0cd7698318fb49c7d49f3bf45"
-
-eslint-plugin-jsx-a11y@5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1"
+eslint-plugin-node@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4"
dependencies:
- aria-query "^0.7.0"
- array-includes "^3.0.3"
- ast-types-flow "0.0.7"
- axobject-query "^0.1.0"
- damerau-levenshtein "^1.0.0"
- emoji-regex "^6.1.0"
- jsx-ast-utils "^1.4.0"
-
-eslint-plugin-react@7.4.0:
- version "7.4.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a"
- dependencies:
- doctrine "^2.0.0"
- has "^1.0.1"
- jsx-ast-utils "^2.0.0"
- prop-types "^15.5.10"
-
-eslint-plugin-react@^7.11.1:
- version "7.11.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c"
- dependencies:
- array-includes "^3.0.3"
- doctrine "^2.1.0"
- has "^1.0.3"
- jsx-ast-utils "^2.0.1"
- prop-types "^15.6.2"
+ ignore "^3.3.6"
+ minimatch "^3.0.4"
+ resolve "^1.3.3"
+ semver "^5.4.1"
-eslint-plugin-standard@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz#2a9e21259ba4c47c02d53b2d0c9135d4b1022d47"
+eslint-plugin-promise@^3.6.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e"
-eslint-scope@^3.7.1:
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535"
- dependencies:
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
+eslint-plugin-standard@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2"
-eslint-scope@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
+eslint-scope@^3.7.1, eslint-scope@~3.7.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-utils@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
-
eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
-eslint@4.10.0:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.10.0.tgz#f25d0d7955c81968c2309aa5c9a229e045176bb7"
+eslint@>=3.19.0:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
dependencies:
- ajv "^5.2.0"
+ ajv "^5.3.0"
babel-code-frame "^6.22.0"
chalk "^2.1.0"
concat-stream "^1.6.0"
cross-spawn "^5.1.0"
- debug "^3.0.1"
- doctrine "^2.0.0"
+ debug "^3.1.0"
+ doctrine "^2.1.0"
eslint-scope "^3.7.1"
- espree "^3.5.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^3.5.4"
esquery "^1.0.0"
- estraverse "^4.2.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
- globals "^9.17.0"
+ globals "^11.0.1"
ignore "^3.3.3"
imurmurhash "^0.1.4"
inquirer "^3.0.6"
is-resolvable "^1.0.0"
js-yaml "^3.9.1"
- json-stable-stringify "^1.0.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
lodash "^4.17.4"
minimatch "^3.0.2"
@@ -2765,86 +2571,36 @@ eslint@4.10.0:
path-is-inside "^1.0.2"
pluralize "^7.0.0"
progress "^2.0.0"
+ regexpp "^1.0.1"
require-uncached "^1.0.3"
semver "^5.3.0"
strip-ansi "^4.0.0"
strip-json-comments "~2.0.1"
- table "^4.0.1"
+ table "4.0.2"
text-table "~0.2.0"
-eslint@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.3.0.tgz#53695aca5213968aacdf970ccb231e42a2b285f8"
- dependencies:
- ajv "^6.5.0"
- babel-code-frame "^6.26.0"
- chalk "^2.1.0"
- cross-spawn "^6.0.5"
- debug "^3.1.0"
- doctrine "^2.1.0"
- eslint-scope "^4.0.0"
- eslint-utils "^1.3.1"
- eslint-visitor-keys "^1.0.0"
- espree "^4.0.0"
- esquery "^1.0.1"
- esutils "^2.0.2"
- file-entry-cache "^2.0.0"
- functional-red-black-tree "^1.0.1"
- glob "^7.1.2"
- globals "^11.7.0"
- ignore "^4.0.2"
- imurmurhash "^0.1.4"
- inquirer "^5.2.0"
- is-resolvable "^1.1.0"
- js-yaml "^3.11.0"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.3.0"
- lodash "^4.17.5"
- minimatch "^3.0.4"
- mkdirp "^0.5.1"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.2"
- pluralize "^7.0.0"
- progress "^2.0.0"
- regexpp "^2.0.0"
- require-uncached "^1.0.3"
- semver "^5.5.0"
- string.prototype.matchall "^2.0.0"
- strip-ansi "^4.0.0"
- strip-json-comments "^2.0.1"
- table "^4.0.3"
- text-table "^0.2.0"
-
-espree@^3.5.1:
+espree@^3.5.4:
version "3.5.4"
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
dependencies:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
-espree@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634"
- dependencies:
- acorn "^5.6.0"
- acorn-jsx "^4.1.1"
-
esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-esprima@^3.1.3:
+esprima@^4.0.0, esprima@~4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esprima@~3.1.0:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
-
-esquery@^1.0.0, esquery@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+esquery@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
dependencies:
estraverse "^4.0.0"
@@ -2854,7 +2610,7 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
@@ -2866,16 +2622,9 @@ etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-eventemitter3@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
+eventemitter3@1.x.x:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
events@^1.0.0:
version "1.1.1"
@@ -2894,12 +2643,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
-exec-sh@^0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36"
- dependencies:
- merge "^1.2.0"
-
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@@ -2912,6 +2655,10 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^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"
@@ -2942,7 +2689,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-express@^4.13.3:
+express@^4.16.2:
version "4.16.3"
resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
dependencies:
@@ -2990,13 +2737,13 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+extend@~3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.4, external-editor@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
dependencies:
chardet "^0.4.0"
iconv-lite "^0.4.17"
@@ -3021,15 +2768,6 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-extract-text-webpack-plugin@3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7"
- dependencies:
- async "^2.4.1"
- loader-utils "^1.1.0"
- schema-utils "^0.3.0"
- webpack-sources "^1.0.1"
-
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -3042,10 +2780,6 @@ fast-deep-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
-
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
@@ -3070,29 +2804,12 @@ faye-websocket@~0.11.0:
dependencies:
websocket-driver ">=0.5.1"
-fb-watchman@^1.8.0:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383"
- dependencies:
- bser "1.0.2"
-
-fb-watchman@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
- dependencies:
- bser "^2.0.0"
-
-fbjs@^0.8.0, fbjs@^0.8.1, fbjs@^0.8.16:
- version "0.8.17"
- resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
+figures@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
dependencies:
- core-js "^1.0.0"
- isomorphic-fetch "^2.1.1"
- loose-envify "^1.0.0"
+ escape-string-regexp "^1.0.5"
object-assign "^4.1.0"
- promise "^7.1.1"
- setimmediate "^1.0.5"
- ua-parser-js "^0.7.18"
figures@^2.0.0:
version "2.0.0"
@@ -3107,35 +2824,28 @@ file-entry-cache@^2.0.0:
flat-cache "^1.2.1"
object-assign "^4.0.1"
-file-loader@1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa"
+file-loader@^1.1.11:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8"
dependencies:
loader-utils "^1.0.2"
- schema-utils "^0.3.0"
+ schema-utils "^0.4.5"
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
-fileset@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
- dependencies:
- glob "^7.0.3"
- minimatch "^3.0.3"
-
-filesize@3.5.11:
- version "3.5.11"
- resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee"
+filesize@^3.5.11:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.0.tgz#22d079615624bb6fd3c04026120628a41b3f4efa"
fill-range@^2.1.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
- randomatic "^3.0.0"
+ randomatic "^1.1.3"
repeat-element "^1.1.2"
repeat-string "^1.5.2"
@@ -3189,6 +2899,12 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
+first-chunk-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70"
+ dependencies:
+ readable-stream "^2.0.2"
+
flat-cache@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
@@ -3202,19 +2918,16 @@ flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
-follow-redirects@^1.0.0, follow-redirects@^1.3.0:
- version "1.5.5"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.5.tgz#3c143ca599a2e22e62876687d68b23d55bad788b"
- dependencies:
- debug "^3.1.0"
-
-font-awesome-sass@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/font-awesome-sass/-/font-awesome-sass-4.7.0.tgz#4eda693e915009ce00b228e0964dc5eca9bc34e1"
+flow-parser@^0.*:
+ version "0.68.0"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.68.0.tgz#9cc96620a102e316a314b6bcd56205ceace862d8"
-font-awesome@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
+flush-write-stream@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.4"
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
@@ -3234,12 +2947,28 @@ forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-form-data@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
+fork-ts-checker-webpack-plugin@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-0.4.1.tgz#718801621c50c7f20de9c8e6a68a2db228a4081f"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ chalk "^1.1.3"
+ chokidar "^1.7.0"
+ lodash.endswith "^4.2.1"
+ lodash.isfunction "^3.0.8"
+ lodash.isstring "^4.0.1"
+ lodash.startswith "^4.2.1"
+ minimatch "^3.0.4"
+ resolve "^1.5.0"
+ tapable "^1.0.0"
+ vue-parser "^1.1.5"
+
+form-data@~2.1.1:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
dependencies:
asynckit "^0.4.0"
- combined-stream "1.0.6"
+ combined-stream "^1.0.5"
mime-types "^2.1.12"
forwarded@~0.1.2:
@@ -3256,42 +2985,51 @@ fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-fs-extra@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
+from2@^2.1.0, from2@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^3.0.0"
- universalify "^0.1.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
-fs-extra@^0.30.0:
- version "0.30.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
+fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
dependencies:
graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
- path-is-absolute "^1.0.0"
- rimraf "^2.2.8"
-
-fs-minipass@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
- dependencies:
- minipass "^2.2.1"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-fsevents@^1.0.0, fsevents@^1.1.3, fsevents@^1.2.2:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
+fsevents@^1.0.0, fsevents@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
+ dependencies:
+ nan "^2.3.0"
+ node-pre-gyp "^0.6.39"
+
+fstream-ignore@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
+ dependencies:
+ fstream "^1.0.0"
+ inherits "2"
+ minimatch "^3.0.0"
+
+fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
dependencies:
- nan "^2.9.2"
- node-pre-gyp "^0.10.0"
+ graceful-fs "^4.1.2"
+ inherits "~2.0.0"
+ mkdirp ">=0.5 0"
+ rimraf "2"
-function-bind@^1.1.1:
+function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -3313,14 +3051,14 @@ gauge@~2.7.3:
wide-align "^1.1.0"
get-caller-file@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
-get-stream@^3.0.0:
+get-stream@3.0.0, get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
@@ -3334,6 +3072,26 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
+gh-got@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0"
+ dependencies:
+ got "^7.0.0"
+ is-plain-obj "^1.1.0"
+
+github-username@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417"
+ dependencies:
+ gh-got "^6.0.0"
+
+glob-all@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab"
+ dependencies:
+ glob "^7.0.5"
+ yargs "~1.2.6"
+
glob-base@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
@@ -3354,7 +3112,7 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -3365,13 +3123,7 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-dirs@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
- dependencies:
- ini "^1.3.4"
-
-global-modules@1.0.0, global-modules@^1.0.0:
+global-modules@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
dependencies:
@@ -3389,11 +3141,11 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
-globals@^11.7.0:
- version "11.7.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
+globals@^11.0.1, globals@^11.1.0:
+ version "11.3.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0"
-globals@^9.17.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"
@@ -3418,68 +3170,82 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
-google-code-prettify@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/google-code-prettify/-/google-code-prettify-1.0.5.tgz#9f477f224dbfa62372e5ef803a7e157410400084"
-
-got@^6.7.1:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
+got@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
dependencies:
- create-error-class "^3.0.0"
+ decompress-response "^3.2.0"
duplexer3 "^0.1.4"
get-stream "^3.0.0"
- is-redirect "^1.0.0"
+ is-plain-obj "^1.1.0"
is-retry-allowed "^1.0.0"
is-stream "^1.0.0"
+ isurl "^1.0.0-alpha5"
lowercase-keys "^1.0.0"
+ p-cancelable "^0.3.0"
+ p-timeout "^1.1.1"
safe-buffer "^5.0.1"
timed-out "^4.0.0"
- unzip-response "^2.0.1"
url-parse-lax "^1.0.0"
+ url-to-options "^1.0.1"
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+got@^8.2.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/got/-/got-8.3.0.tgz#6ba26e75f8a6cc4c6b3eb1fe7ce4fec7abac8533"
+ dependencies:
+ "@sindresorhus/is" "^0.7.0"
+ cacheable-request "^2.1.1"
+ decompress-response "^3.3.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ into-stream "^3.1.0"
+ is-retry-allowed "^1.1.0"
+ isurl "^1.0.0-alpha5"
+ lowercase-keys "^1.0.0"
+ mimic-response "^1.0.0"
+ p-cancelable "^0.4.0"
+ p-timeout "^2.0.1"
+ pify "^3.0.0"
+ safe-buffer "^5.1.1"
+ timed-out "^4.0.1"
+ url-parse-lax "^3.0.0"
+ url-to-options "^1.0.1"
+
+graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-growly@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+"graphitejs@https://github.com/prestontimmons/graphitejs/archive/master.tar.gz":
+ version "0.0.0"
+ resolved "https://github.com/prestontimmons/graphitejs/archive/master.tar.gz#f2dfd1dff1c2813a9e1ac6e99240d785dceab3c2"
-gud@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
+grouped-queue@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c"
+ dependencies:
+ lodash "^4.17.2"
-gzip-size@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
+gzip-size@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c"
dependencies:
duplexer "^0.1.1"
+ pify "^3.0.0"
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
-handlebars@^4.0.3:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
- dependencies:
- async "^1.4.0"
- optimist "^0.6.1"
- source-map "^0.4.4"
- optionalDependencies:
- uglify-js "^2.6"
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+har-schema@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
-har-validator@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
+har-validator@~4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
dependencies:
- ajv "^5.3.0"
- har-schema "^2.0.0"
+ ajv "^4.9.1"
+ har-schema "^1.0.5"
has-ansi@^2.0.0:
version "2.0.0"
@@ -3487,21 +3253,27 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
+has-color@~0.1.0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
+
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
-
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-symbol-support-x@^1.4.1:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455"
+
+has-to-string-tag-x@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
+ dependencies:
+ has-symbol-support-x "^1.4.1"
has-unicode@^2.0.0:
version "2.0.1"
@@ -3534,11 +3306,17 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1, has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+has@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
- function-bind "^1.1.1"
+ function-bind "^1.0.2"
+
+hash-base@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
+ dependencies:
+ inherits "^2.0.1"
hash-base@^3.0.0:
version "3.0.4"
@@ -3548,26 +3326,25 @@ hash-base@^3.0.0:
safe-buffer "^5.0.1"
hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
dependencies:
inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
+ minimalistic-assert "^1.0.0"
+
+hawk@3.1.3, hawk@~3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
+ dependencies:
+ boom "2.x.x"
+ cryptiles "2.x.x"
+ hoek "2.x.x"
+ sntp "1.x.x"
he@1.1.x:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
-history@^4.7.2:
- version "4.7.2"
- resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b"
- dependencies:
- invariant "^2.2.1"
- loose-envify "^1.2.0"
- resolve-pathname "^2.2.0"
- value-equal "^0.4.0"
- warning "^3.0.0"
-
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -3576,9 +3353,9 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
-hoist-non-react-statics@^2.1.1, hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0:
- version "2.5.5"
- resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
+hoek@2.x.x:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
home-or-tmp@^2.0.0:
version "2.0.0"
@@ -3594,8 +3371,8 @@ homedir-polyfill@^1.0.1:
parse-passwd "^1.0.0"
hosted-git-info@^2.1.4:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
hpack.js@^2.1.6:
version "2.1.6"
@@ -3610,38 +3387,44 @@ html-comment-regex@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
-html-encoding-sniffer@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
- dependencies:
- whatwg-encoding "^1.0.1"
-
html-entities@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
-html-minifier@^3.2.3:
- version "3.5.19"
- resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.19.tgz#ed53c4b7326fe507bc3a1adbcc3bbb56660a2ebd"
+html-loader@^0.5.5:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea"
+ dependencies:
+ es6-templates "^0.2.3"
+ fastparse "^1.1.1"
+ html-minifier "^3.5.8"
+ loader-utils "^1.1.0"
+ object-assign "^4.1.1"
+
+html-minifier@^3.2.3, html-minifier@^3.5.8:
+ version "3.5.12"
+ resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.12.tgz#6bfad4d0327f5b8d2b62f5854654ac3703b9b031"
dependencies:
camel-case "3.0.x"
clean-css "4.1.x"
- commander "2.16.x"
+ commander "2.15.x"
he "1.1.x"
+ ncname "1.0.x"
param-case "2.1.x"
relateurl "0.2.x"
- uglify-js "3.4.x"
+ uglify-js "3.3.x"
-html-webpack-plugin@2.29.0:
- version "2.29.0"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23"
+html-webpack-plugin@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.1.0.tgz#6e02baaedb1e906310917f03239c793a75af2885"
dependencies:
- bluebird "^3.4.7"
html-minifier "^3.2.3"
loader-utils "^0.2.16"
lodash "^4.17.3"
pretty-error "^2.0.2"
+ tapable "^1.0.0"
toposort "^1.0.0"
+ util.promisify "1.0.0"
htmlparser2@~3.3.0:
version "3.3.0"
@@ -3652,11 +3435,15 @@ htmlparser2@~3.3.0:
domutils "1.1"
readable-stream "1.0"
+http-cache-semantics@3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
+
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.2:
+http-errors@1.6.2, http-errors@~1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
@@ -3665,18 +3452,9 @@ http-errors@1.6.2:
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
-http-errors@~1.6.2:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
-
http-parser-js@>=0.4.0:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
+ version "0.4.11"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529"
http-proxy-middleware@~0.17.4:
version "0.17.4"
@@ -3688,18 +3466,17 @@ http-proxy-middleware@~0.17.4:
micromatch "^2.3.11"
http-proxy@^1.16.2:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
+ version "1.16.2"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742"
dependencies:
- eventemitter3 "^3.0.0"
- follow-redirects "^1.0.0"
- requires-port "^1.0.0"
+ eventemitter3 "1.x.x"
+ requires-port "1.x.x"
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+http-signature@~1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
dependencies:
- assert-plus "^1.0.0"
+ assert-plus "^0.2.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
@@ -3707,16 +3484,10 @@ https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-iconv-lite@0.4.19:
+iconv-lite@0.4.19, iconv-lite@^0.4.17:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
- version "0.4.23"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
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"
@@ -3728,30 +3499,20 @@ icss-utils@^2.1.0:
postcss "^6.0.1"
ieee754@^1.1.4:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
-
-ignore-walk@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
- dependencies:
- minimatch "^3.0.4"
+ version "1.1.10"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.10.tgz#719a6f7b026831e64bdb838b0de1bb0029bbf716"
-ignore@^3.3.3:
- version "3.3.10"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
-
-ignore@^4.0.2:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
-import-lazy@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+ignore@^3.3.3, ignore@^3.3.6:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
-import-local@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8"
+import-local@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
dependencies:
pkg-dir "^2.0.0"
resolve-cwd "^2.0.0"
@@ -3766,6 +3527,10 @@ indent-string@^2.1.0:
dependencies:
repeating "^2.0.0"
+indent-string@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -3781,7 +3546,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
@@ -3793,7 +3558,7 @@ ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
-inquirer@3.3.0, inquirer@^3.0.6:
+inquirer@^3.0.6, inquirer@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
dependencies:
@@ -3812,9 +3577,9 @@ inquirer@3.3.0, inquirer@^3.0.6:
strip-ansi "^4.0.0"
through "^2.3.6"
-inquirer@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
+inquirer@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.1.0.tgz#19da508931892328abbbdd4c477f1efc65abfd67"
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
@@ -3836,11 +3601,18 @@ internal-ip@1.2.0:
dependencies:
meow "^3.3.0"
-interpret@^1.0.0:
+interpret@^1.0.0, interpret@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
-invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
+into-stream@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
+ dependencies:
+ from2 "^2.1.1"
+ p-is-promise "^1.1.0"
+
+invariant@^2.2.0, invariant@^2.2.2:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
dependencies:
@@ -3854,9 +3626,9 @@ ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-ipaddr.js@1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
+ipaddr.js@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
is-absolute-url@^2.0.0:
version "2.1.0"
@@ -3895,14 +3667,8 @@ is-builtin-module@^1.0.0:
builtin-modules "^1.0.0"
is-callable@^1.1.1, is-callable@^1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
-
-is-ci@^1.0.10:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
- dependencies:
- ci-info "^1.0.0"
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
is-data-descriptor@^0.1.4:
version "0.1.4"
@@ -3936,10 +3702,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
-is-directory@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
-
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -4002,17 +3764,6 @@ is-glob@^4.0.0:
dependencies:
is-extglob "^2.1.1"
-is-installed-globally@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
- dependencies:
- global-dirs "^0.1.0"
- is-path-inside "^1.0.0"
-
-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@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -4029,9 +3780,21 @@ is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
-is-obj@^1.0.0:
+is-object@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
+
+is-observable@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2"
+ dependencies:
+ symbol-observable "^0.2.2"
+
+is-odd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
+ dependencies:
+ is-number "^4.0.0"
is-path-cwd@^1.0.0:
version "1.0.0"
@@ -4049,7 +3812,7 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
-is-plain-obj@^1.0.0:
+is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
@@ -4071,29 +3834,27 @@ is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-is-redirect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
has "^1.0.1"
-is-resolvable@^1.0.0, is-resolvable@^1.1.0:
+is-resolvable@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-is-retry-allowed@^1.0.0:
+is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
-is-root@1.0.0:
+is-scoped@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5"
+ resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30"
+ dependencies:
+ scoped-regex "^1.0.0"
-is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
+is-stream@^1.0.0, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -4145,329 +3906,46 @@ isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
-isomorphic-fetch@^2.1.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
- dependencies:
- node-fetch "^1.0.1"
- whatwg-fetch ">=0.10.0"
-
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-istanbul-api@^1.1.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954"
- dependencies:
- async "^2.1.4"
- compare-versions "^3.1.0"
- fileset "^2.0.2"
- istanbul-lib-coverage "^1.2.0"
- istanbul-lib-hook "^1.2.0"
- istanbul-lib-instrument "^1.10.1"
- istanbul-lib-report "^1.1.4"
- istanbul-lib-source-maps "^1.2.4"
- istanbul-reports "^1.3.0"
- js-yaml "^3.7.0"
- mkdirp "^0.5.1"
- once "^1.4.0"
-
-istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341"
-
-istanbul-lib-hook@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805"
- dependencies:
- append-transform "^1.0.0"
-
-istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.4.2:
- version "1.10.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
- dependencies:
- babel-generator "^6.18.0"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
- babylon "^6.18.0"
- istanbul-lib-coverage "^1.2.0"
- semver "^5.3.0"
-
-istanbul-lib-report@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5"
- dependencies:
- istanbul-lib-coverage "^1.2.0"
- mkdirp "^0.5.1"
- path-parse "^1.0.5"
- supports-color "^3.1.2"
-
-istanbul-lib-source-maps@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
- dependencies:
- debug "^3.1.0"
- istanbul-lib-coverage "^1.1.2"
- mkdirp "^0.5.1"
- rimraf "^2.6.1"
- source-map "^0.5.3"
-
-istanbul-lib-source-maps@^1.2.4:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1"
- dependencies:
- debug "^3.1.0"
- istanbul-lib-coverage "^1.2.0"
- mkdirp "^0.5.1"
- rimraf "^2.6.1"
- source-map "^0.5.3"
-
-istanbul-reports@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554"
- dependencies:
- handlebars "^4.0.3"
-
-jest-changed-files@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8"
-
-jest-cli@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93"
- dependencies:
- ansi-escapes "^1.4.0"
- callsites "^2.0.0"
- chalk "^1.1.3"
- graceful-fs "^4.1.11"
- is-ci "^1.0.10"
- istanbul-api "^1.1.1"
- istanbul-lib-coverage "^1.0.1"
- istanbul-lib-instrument "^1.4.2"
- istanbul-lib-source-maps "^1.1.0"
- jest-changed-files "^20.0.3"
- jest-config "^20.0.4"
- jest-docblock "^20.0.3"
- jest-environment-jsdom "^20.0.3"
- jest-haste-map "^20.0.4"
- jest-jasmine2 "^20.0.4"
- jest-message-util "^20.0.3"
- jest-regex-util "^20.0.3"
- jest-resolve-dependencies "^20.0.3"
- jest-runtime "^20.0.4"
- jest-snapshot "^20.0.3"
- jest-util "^20.0.3"
- micromatch "^2.3.11"
- node-notifier "^5.0.2"
- pify "^2.3.0"
- slash "^1.0.0"
- string-length "^1.0.1"
- throat "^3.0.0"
- which "^1.2.12"
- worker-farm "^1.3.1"
- yargs "^7.0.2"
-
-jest-config@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea"
- dependencies:
- chalk "^1.1.3"
- glob "^7.1.1"
- jest-environment-jsdom "^20.0.3"
- jest-environment-node "^20.0.3"
- jest-jasmine2 "^20.0.4"
- jest-matcher-utils "^20.0.3"
- jest-regex-util "^20.0.3"
- jest-resolve "^20.0.4"
- jest-validate "^20.0.3"
- pretty-format "^20.0.3"
-
-jest-diff@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617"
- dependencies:
- chalk "^1.1.3"
- diff "^3.2.0"
- jest-matcher-utils "^20.0.3"
- pretty-format "^20.0.3"
-
-jest-docblock@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712"
-
-jest-environment-jsdom@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99"
- dependencies:
- jest-mock "^20.0.3"
- jest-util "^20.0.3"
- jsdom "^9.12.0"
-
-jest-environment-node@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403"
- dependencies:
- jest-mock "^20.0.3"
- jest-util "^20.0.3"
-
-jest-haste-map@^20.0.4:
- version "20.0.5"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112"
- dependencies:
- fb-watchman "^2.0.0"
- graceful-fs "^4.1.11"
- jest-docblock "^20.0.3"
- micromatch "^2.3.11"
- sane "~1.6.0"
- worker-farm "^1.3.1"
-
-jest-jasmine2@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1"
- dependencies:
- chalk "^1.1.3"
- graceful-fs "^4.1.11"
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-matchers "^20.0.3"
- jest-message-util "^20.0.3"
- jest-snapshot "^20.0.3"
- once "^1.4.0"
- p-map "^1.1.1"
-
-jest-matcher-utils@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612"
- dependencies:
- chalk "^1.1.3"
- pretty-format "^20.0.3"
-
-jest-matchers@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60"
- dependencies:
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-message-util "^20.0.3"
- jest-regex-util "^20.0.3"
-
-jest-message-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c"
- dependencies:
- chalk "^1.1.3"
- micromatch "^2.3.11"
- slash "^1.0.0"
-
-jest-mock@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59"
-
-jest-regex-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762"
-
-jest-resolve-dependencies@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a"
- dependencies:
- jest-regex-util "^20.0.3"
-
-jest-resolve@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5"
- dependencies:
- browser-resolve "^1.11.2"
- is-builtin-module "^1.0.0"
- resolve "^1.3.2"
-
-jest-runtime@^20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8"
- dependencies:
- babel-core "^6.0.0"
- babel-jest "^20.0.3"
- babel-plugin-istanbul "^4.0.0"
- chalk "^1.1.3"
- convert-source-map "^1.4.0"
- graceful-fs "^4.1.11"
- jest-config "^20.0.4"
- jest-haste-map "^20.0.4"
- jest-regex-util "^20.0.3"
- jest-resolve "^20.0.4"
- jest-util "^20.0.3"
- json-stable-stringify "^1.0.1"
- micromatch "^2.3.11"
- strip-bom "3.0.0"
- yargs "^7.0.2"
-
-jest-snapshot@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566"
- dependencies:
- chalk "^1.1.3"
- jest-diff "^20.0.3"
- jest-matcher-utils "^20.0.3"
- jest-util "^20.0.3"
- natural-compare "^1.4.0"
- pretty-format "^20.0.3"
-
-jest-util@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad"
+istextorbinary@^2.1.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53"
dependencies:
- chalk "^1.1.3"
- graceful-fs "^4.1.11"
- jest-message-util "^20.0.3"
- jest-mock "^20.0.3"
- jest-validate "^20.0.3"
- leven "^2.1.0"
- mkdirp "^0.5.1"
+ binaryextensions "2"
+ editions "^1.3.3"
+ textextensions "2"
-jest-validate@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab"
+isurl@^1.0.0-alpha5:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
dependencies:
- chalk "^1.1.3"
- jest-matcher-utils "^20.0.3"
- leven "^2.1.0"
- pretty-format "^20.0.3"
+ has-to-string-tag-x "^1.2.0"
+ is-object "^1.0.1"
-jest@20.0.4:
- version "20.0.4"
- resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac"
+"jquery-visibility@https://github.com/mathiasbynens/jquery-visibility/archive/master.tar.gz":
+ version "1.0.12"
+ resolved "https://github.com/mathiasbynens/jquery-visibility/archive/master.tar.gz#c1d9800180fbdcf018488f70376ea818bfceaa41"
dependencies:
- jest-cli "^20.0.4"
+ jquery "*"
-jquery-match-height@^0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/jquery-match-height/-/jquery-match-height-0.7.2.tgz#f8d9f3ba5314daab109cf07408674be204be5f0e"
-
-"jquery@>= 2.1.x", jquery@>=1.7, jquery@>=1.7.0, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8, "jquery@^1.8.3 || ^2.0 || ^3.0":
+jquery@*, jquery@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
-jquery@~3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
-
js-base64@^2.1.9:
- version "2.4.8"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033"
-
-"js-tokens@^3.0.0 || ^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"
-js-tokens@^3.0.2:
+js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@^3.11.0, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+js-yaml@^3.7.0, js-yaml@^3.9.1:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -4483,50 +3961,70 @@ jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-jsdom@^9.12.0:
- version "9.12.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4"
- dependencies:
- abab "^1.0.3"
- acorn "^4.0.4"
- acorn-globals "^3.1.0"
- array-equal "^1.0.0"
- content-type-parser "^1.0.1"
- cssom ">= 0.3.2 < 0.4.0"
- cssstyle ">= 0.2.37 < 0.3.0"
- escodegen "^1.6.1"
- html-encoding-sniffer "^1.0.1"
- nwmatcher ">= 1.3.9 < 2.0.0"
- parse5 "^1.5.1"
- request "^2.79.0"
- sax "^1.2.1"
- symbol-tree "^3.2.1"
- tough-cookie "^2.3.2"
- webidl-conversions "^4.0.0"
- whatwg-encoding "^1.0.1"
- whatwg-url "^4.3.0"
- xml-name-validator "^2.0.1"
+jscodeshift@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a"
+ dependencies:
+ async "^1.5.0"
+ babel-plugin-transform-flow-strip-types "^6.8.0"
+ babel-preset-es2015 "^6.9.0"
+ babel-preset-stage-1 "^6.5.0"
+ babel-register "^6.9.0"
+ babylon "^6.17.3"
+ colors "^1.1.2"
+ flow-parser "^0.*"
+ lodash "^4.13.1"
+ micromatch "^2.3.7"
+ node-dir "0.1.8"
+ nomnom "^1.8.1"
+ recast "^0.12.5"
+ temp "^0.8.1"
+ write-file-atomic "^1.2.0"
+
+jscodeshift@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.5.0.tgz#bdb7b6cc20dd62c16aa728c3fa2d2fe66ca7c748"
+ dependencies:
+ babel-plugin-transform-flow-strip-types "^6.8.0"
+ babel-preset-es2015 "^6.9.0"
+ babel-preset-stage-1 "^6.5.0"
+ babel-register "^6.9.0"
+ babylon "^7.0.0-beta.30"
+ colors "^1.1.2"
+ flow-parser "^0.*"
+ lodash "^4.13.1"
+ micromatch "^2.3.7"
+ neo-async "^2.5.0"
+ node-dir "0.1.8"
+ nomnom "^1.8.1"
+ recast "^0.14.1"
+ temp "^0.8.1"
+ write-file-atomic "^1.2.0"
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+jsesc@^2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
+
jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-json-loader@^0.5.4:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
+json-buffer@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
-
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -4553,18 +4051,6 @@ json5@^0.5.0, json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-jsonfile@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonfile@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
@@ -4578,19 +4064,11 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
-jsx-ast-utils@^1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
-
-jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
+keyv@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
dependencies:
- array-includes "^3.0.3"
-
-keycode@^2.1.2:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04"
+ json-buffer "3.0.0"
killable@^1.0.0:
version "1.0.0"
@@ -4616,21 +4094,11 @@ kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-latest-version@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
+lazystream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
dependencies:
- package-json "^4.0.0"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+ readable-stream "^2.0.5"
lcid@^1.0.0:
version "1.0.0"
@@ -4638,10 +4106,6 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
-leven@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
-
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -4649,6 +4113,54 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+listr-silent-renderer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+
+listr-update-renderer@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7"
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^1.0.2"
+ strip-ansi "^3.0.1"
+
+listr-verbose-renderer@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35"
+ dependencies:
+ chalk "^1.1.3"
+ cli-cursor "^1.0.2"
+ date-fns "^1.27.2"
+ figures "^1.7.0"
+
+listr@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/listr/-/listr-0.13.0.tgz#20bb0ba30bae660ee84cc0503df4be3d5623887d"
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ figures "^1.7.0"
+ indent-string "^2.1.0"
+ is-observable "^0.2.0"
+ is-promise "^2.1.0"
+ is-stream "^1.1.0"
+ listr-silent-renderer "^1.1.1"
+ listr-update-renderer "^0.4.0"
+ listr-verbose-renderer "^0.4.0"
+ log-symbols "^1.0.2"
+ log-update "^1.0.2"
+ ora "^0.2.3"
+ p-map "^1.1.1"
+ rxjs "^5.4.2"
+ stream-to-observable "^0.2.0"
+ strip-ansi "^3.0.1"
+
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -4668,6 +4180,15 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
loader-fs-cache@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
@@ -4703,70 +4224,146 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
-lodash-es@^4.17.5, lodash-es@^4.2.1:
- version "4.17.10"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05"
+lodash._baseassign@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
+ dependencies:
+ lodash._basecopy "^3.0.0"
+ lodash.keys "^3.0.0"
-lodash._reinterpolate@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
+lodash._basecopy@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
+
+lodash._bindcallback@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
+
+lodash._createassigner@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11"
+ dependencies:
+ lodash._bindcallback "^3.0.0"
+ lodash._isiterateecall "^3.0.0"
+ lodash.restparam "^3.0.0"
+
+lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+
+lodash._isiterateecall@^3.0.0:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
+
+lodash.assign@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa"
+ dependencies:
+ lodash._baseassign "^3.0.0"
+ lodash._createassigner "^3.0.0"
+ lodash.keys "^3.0.0"
+
+lodash.assign@^4.0.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
-lodash.cond@^4.3.0:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
-
-lodash.debounce@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+lodash.defaults@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c"
+ dependencies:
+ lodash.assign "^3.0.0"
+ lodash.restparam "^3.0.0"
-lodash.defaults@^4.2.0:
+lodash.defaults@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
+lodash.endswith@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz#fed59ac1738ed3e236edd7064ec456448b37bc09"
+
+lodash.isarguments@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+
+lodash.isarray@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+
+lodash.isfunction@^3.0.8:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051"
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+
+lodash.keys@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ dependencies:
+ lodash._getnative "^3.0.0"
+ lodash.isarguments "^3.0.0"
+ lodash.isarray "^3.0.0"
+
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
-lodash.template@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
- dependencies:
- lodash._reinterpolate "~3.0.0"
- lodash.templatesettings "^4.0.0"
+lodash.restparam@^3.0.0:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
-lodash.templatesettings@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
- dependencies:
- lodash._reinterpolate "~3.0.0"
+lodash.startswith@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.startswith/-/lodash.startswith-4.2.1.tgz#c598c4adce188a27e53145731cdc6c0e7177600c"
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0:
- version "4.17.10"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
+lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.8.0:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
+log-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+ dependencies:
+ chalk "^1.0.0"
+
+log-symbols@^2.1.0, log-symbols@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ dependencies:
+ chalk "^2.0.1"
+
+log-update@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
+ dependencies:
+ ansi-escapes "^1.0.0"
+ cli-cursor "^1.0.2"
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+loglevelnext@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.3.tgz#0f69277e73bbbf2cd61b94d82313216bf87ac66e"
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
+ js-tokens "^3.0.0"
-loud-rejection@^1.0.0:
+loud-rejection@^1.0.0, loud-rejection@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
dependencies:
@@ -4777,28 +4374,34 @@ lower-case@^1.1.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+lowercase-keys@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
+
lowercase-keys@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
-lru-cache@^4.0.1:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+lru-cache@^4.0.1, lru-cache@^4.1.1:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
-make-dir@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+macaddress@^0.2.8:
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
+
+make-dir@^1.0.0, make-dir@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
dependencies:
pify "^3.0.0"
-makeerror@1.0.x:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
- dependencies:
- tmpl "1.0.x"
+make-error@^1.1.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535"
map-cache@^0.2.2:
version "0.2.2"
@@ -4818,10 +4421,6 @@ math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
-math-random@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
-
md5.js@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
@@ -4833,6 +4432,29 @@ media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+mem-fs-editor@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz#dd0a6eaf2bb8a6b37740067aa549eb530105af9f"
+ dependencies:
+ commondir "^1.0.1"
+ deep-extend "^0.4.0"
+ ejs "^2.3.1"
+ glob "^7.0.3"
+ globby "^6.1.0"
+ mkdirp "^0.5.0"
+ multimatch "^2.0.0"
+ rimraf "^2.2.8"
+ through2 "^2.0.0"
+ vinyl "^2.0.1"
+
+mem-fs@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc"
+ dependencies:
+ through2 "^2.0.0"
+ vinyl "^1.1.0"
+ vinyl-file "^2.0.0"
+
mem@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
@@ -4846,7 +4468,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
-meow@^3.3.0, meow@^3.7.0:
+meow@^3.3.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
dependencies:
@@ -4865,15 +4487,11 @@ merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-merge@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
-
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:
@@ -4916,43 +4534,45 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-"mime-db@>= 1.34.0 < 2", mime-db@~1.35.0:
- version "1.35.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47"
+"mime-db@>= 1.33.0 < 2", mime-db@~1.33.0:
+ version "1.33.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19:
- version "2.1.19"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0"
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7:
+ version "2.1.18"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
dependencies:
- mime-db "~1.35.0"
+ mime-db "~1.33.0"
+
+mime@1.3.x:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-mime@^1.4.1, mime@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+mime@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.2.0.tgz#161e541965551d3b549fa1114391e3a3d55b923b"
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+mimic-response@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e"
+
+minimalistic-assert@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-minimatch@3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
- dependencies:
- brace-expansion "^1.0.0"
-
-minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -4962,26 +4582,28 @@ minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
+minimist@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de"
+
+minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-minipass@^2.2.1, minipass@^2.3.3:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
-minizlib@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
- dependencies:
- minipass "^2.2.1"
+mississippi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^2.0.1"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
mixin-deep@^1.2.0:
version "1.3.1"
@@ -4990,21 +4612,22 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
-moment-timezone@^0.4.0, moment-timezone@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.4.1.tgz#81f598c3ad5e22cdad796b67ecd8d88d0f5baa06"
+move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
dependencies:
- moment ">= 2.6.0"
-
-"moment@>= 2.6.0", moment@^2.10, moment@^2.19.1:
- version "2.22.2"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
ms@2.0.0:
version "2.0.0"
@@ -5021,23 +4644,33 @@ multicast-dns@^6.0.1:
dns-packet "^1.3.1"
thunky "^1.0.2"
+multimatch@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
+ dependencies:
+ array-differ "^1.0.0"
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ minimatch "^3.0.0"
+
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.9.2:
+nan@^2.3.0:
version "2.10.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2"
dependencies:
arr-diff "^4.0.0"
array-unique "^0.3.2"
define-property "^2.0.2"
extend-shallow "^3.0.2"
fragment-cache "^0.2.1"
+ is-odd "^2.0.0"
is-windows "^1.0.2"
kind-of "^6.0.2"
object.pick "^1.3.0"
@@ -5049,25 +4682,19 @@ natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-needle@^2.2.1:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418"
+ncname@1.0.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c"
dependencies:
- debug "^2.1.2"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
+ xml-char-classes "^1.0.0"
negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
neo-async@^2.5.0:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc"
-
-next-tick@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f"
nice-try@^1.0.4:
version "1.0.4"
@@ -5079,20 +4706,13 @@ no-case@^2.2.0:
dependencies:
lower-case "^1.1.1"
-node-fetch@^1.0.1:
- 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-forge@0.7.5:
- version "0.7.5"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
+node-dir@0.1.8:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d"
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+node-forge@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300"
node-libs-browser@^2.0.0:
version "2.1.0"
@@ -5122,29 +4742,28 @@ node-libs-browser@^2.0.0:
util "^0.10.3"
vm-browserify "0.0.4"
-node-notifier@^5.0.2:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
- dependencies:
- growly "^1.3.0"
- semver "^5.4.1"
- shellwords "^0.1.1"
- which "^1.3.0"
-
-node-pre-gyp@^0.10.0:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
+node-pre-gyp@^0.6.39:
+ version "0.6.39"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
dependencies:
detect-libc "^1.0.2"
+ hawk "3.1.3"
mkdirp "^0.5.1"
- needle "^2.2.1"
nopt "^4.0.1"
- npm-packlist "^1.1.6"
npmlog "^4.0.2"
- rc "^1.2.7"
+ rc "^1.1.7"
+ request "2.81.0"
rimraf "^2.6.1"
semver "^5.3.0"
- tar "^4"
+ tar "^2.2.1"
+ tar-pack "^3.4.0"
+
+nomnom@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
+ dependencies:
+ chalk "~0.4.0"
+ underscore "~1.6.0"
nopt@^4.0.1:
version "4.0.1"
@@ -5172,6 +4791,14 @@ normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+normalize-url@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
+ dependencies:
+ prepend-http "^2.0.0"
+ query-string "^5.0.1"
+ sort-keys "^2.0.0"
+
normalize-url@^1.4.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
@@ -5181,17 +4808,6 @@ normalize-url@^1.4.0:
query-string "^4.1.0"
sort-keys "^1.0.0"
-npm-bundled@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
-
-npm-packlist@^1.1.6:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -5221,15 +4837,11 @@ number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-"nwmatcher@>= 1.3.9 < 2.0.0":
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e"
-
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+oauth-sign@~0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@@ -5246,8 +4858,12 @@ object-hash@^1.1.4:
resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
object-keys@^1.0.8:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+
+object-path@^0.9.2:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5"
object-visit@^1.0.0:
version "1.0.1"
@@ -5255,6 +4871,13 @@ object-visit@^1.0.0:
dependencies:
isobject "^3.0.0"
+object.getownpropertydescriptors@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.5.1"
+
object.omit@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
@@ -5282,23 +4905,25 @@ on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
-once@^1.3.0, once@^1.4.0:
+once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
wrappy "1"
+onetime@^1.0.0:
+ version "1.1.0"
+ resolved "http://registry.npmjs.org/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"
dependencies:
mimic-fn "^1.0.0"
-opn@5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225"
- dependencies:
- is-wsl "^1.1.0"
+opener@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
opn@^5.1.0:
version "5.3.0"
@@ -5306,14 +4931,7 @@ opn@^5.1.0:
dependencies:
is-wsl "^1.1.0"
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.1, optionator@^0.8.2:
+optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
@@ -5324,26 +4942,29 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
+ora@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
+ dependencies:
+ chalk "^1.1.1"
+ cli-cursor "^1.0.2"
+ cli-spinners "^0.1.2"
+ object-assign "^4.0.1"
+
original@>=0.0.5:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
dependencies:
- url-parse "^1.4.3"
+ url-parse "1.0.x"
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
-os-homedir@^1.0.0, os-homedir@^1.0.1:
+os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-os-locale@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
- dependencies:
- lcid "^1.0.0"
-
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
@@ -5363,13 +4984,35 @@ osenv@^0.1.4:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
+p-cancelable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+
+p-cancelable@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.0.tgz#bcb41d35bf6097fc4367a065b6eb84b9b124eff0"
+
+p-each-series@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
+ dependencies:
+ p-reduce "^1.0.0"
+
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+p-is-promise@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+
+p-lazy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-lazy/-/p-lazy-1.0.0.tgz#ec53c802f2ee3ac28f166cc82d0b2b02de27a835"
+
p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
dependencies:
p-try "^1.0.0"
@@ -5383,23 +5026,38 @@ p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
-p-try@^1.0.0:
+p-reduce@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
-package-json@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
+p-timeout@^1.1.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386"
dependencies:
- got "^6.7.1"
- registry-auth-token "^3.0.1"
- registry-url "^3.0.3"
- semver "^5.1.0"
+ p-finally "^1.0.0"
+
+p-timeout@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
+ dependencies:
+ p-finally "^1.0.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
pako@~1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
+parallel-transform@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+ dependencies:
+ cyclist "~0.2.2"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
param-case@2.1.x:
version "2.1.1"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
@@ -5407,8 +5065,8 @@ param-case@2.1.x:
no-case "^2.2.0"
parse-asn1@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
dependencies:
asn1.js "^4.0.0"
browserify-aes "^1.0.0"
@@ -5431,13 +5089,22 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
-parse5@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94"
+parse5@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
+ dependencies:
+ "@types/node" "*"
parseurl@~1.3.2:
version "1.3.2"
@@ -5478,19 +5145,13 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
path-parse@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-path-to-regexp@^1.0.1, path-to-regexp@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
- dependencies:
- isarray "0.0.1"
-
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -5505,74 +5166,15 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
-patternfly-bootstrap-combobox@~1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/patternfly-bootstrap-combobox/-/patternfly-bootstrap-combobox-1.1.7.tgz#6a5e3ccd1170c21b3c4b4aa168a7413e1ddbb6e1"
-
-patternfly-bootstrap-treeview@~2.1.0:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/patternfly-bootstrap-treeview/-/patternfly-bootstrap-treeview-2.1.5.tgz#4c29f2582fb8a2f28f0a928f2f0d324d21d6990d"
- dependencies:
- bootstrap "3.3.x"
- jquery ">= 2.1.x"
-
-patternfly-react@^2.13.1:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/patternfly-react/-/patternfly-react-2.13.1.tgz#198fd0335d8a1609d813ba13e5ebfa12a273fd38"
- dependencies:
- bootstrap-slider-without-jquery "^10.0.0"
- breakjs "^1.0.0"
- classnames "^2.2.5"
- css-element-queries "^1.0.1"
- patternfly "^3.52.1"
- react-bootstrap "^0.32.1"
- react-bootstrap-switch "^15.5.3"
- react-bootstrap-typeahead "^3.1.3"
- react-c3js "^0.1.20"
- react-click-outside "^3.0.1"
- react-collapse "^4.0.3"
- react-fontawesome "^1.6.1"
- react-motion "^0.5.2"
- reactabular-table "^8.14.0"
- recompose "^0.26.0"
- optionalDependencies:
- sortabular "^1.5.1"
- table-resolver "^3.2.0"
-
-patternfly@^3.52.1:
- version "3.54.1"
- resolved "https://registry.yarnpkg.com/patternfly/-/patternfly-3.54.1.tgz#a0f8b52076aa405486e77ecb504460b1ff35fe92"
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
dependencies:
- bootstrap "~3.3.7"
- font-awesome "^4.7.0"
- jquery "~3.2.1"
- optionalDependencies:
- "@types/c3" "^0.6.0"
- bootstrap-datepicker "^1.7.1"
- bootstrap-sass "^3.3.7"
- bootstrap-select "1.12.2"
- bootstrap-slider "^9.9.0"
- bootstrap-switch "~3.3.4"
- bootstrap-touchspin "~3.1.1"
- c3 "~0.4.11"
- d3 "~3.5.17"
- datatables.net "^1.10.15"
- datatables.net-colreorder "^1.4.1"
- datatables.net-colreorder-bs "~1.3.2"
- datatables.net-select "~1.2.0"
- drmonty-datatables-colvis "~1.1.2"
- eonasdan-bootstrap-datetimepicker "^4.17.47"
- font-awesome-sass "^4.7.0"
- google-code-prettify "~1.0.5"
- jquery-match-height "^0.7.2"
- moment "^2.19.1"
- moment-timezone "^0.4.1"
- patternfly-bootstrap-combobox "~1.1.7"
- patternfly-bootstrap-treeview "~2.1.0"
+ pify "^3.0.0"
pbkdf2@^3.0.3:
- version "3.0.16"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c"
+ version "3.0.14"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
@@ -5584,10 +5186,6 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
-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:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -5623,12 +5221,12 @@ pluralize@^7.0.0:
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
popper.js@^1.14.1:
- version "1.14.4"
- resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6"
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.1.tgz#b8815e5cda6f62fc2042e47618649f75866e6753"
portfinder@^1.0.9:
- version "1.0.16"
- resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.16.tgz#a6a68be9c352bc66c1a4c17a261f661f3facaf52"
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9"
dependencies:
async "^1.5.2"
debug "^2.2.0"
@@ -5693,48 +5291,11 @@ postcss-discard-unused@^2.2.1:
uniqs "^2.0.0"
postcss-filter-plugins@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec"
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c"
dependencies:
postcss "^5.0.4"
-
-postcss-flexbugs-fixes@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51"
- dependencies:
- postcss "^6.0.1"
-
-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.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.0.8:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.8.tgz#8c67ddb029407dfafe684a406cfc16bad2ce0814"
- dependencies:
- loader-utils "^1.1.0"
- postcss "^6.0.0"
- postcss-load-config "^1.2.0"
- schema-utils "^0.3.0"
+ uniqid "^4.0.0"
postcss-merge-idents@^2.1.5:
version "2.1.7"
@@ -5797,27 +5358,27 @@ postcss-minify-selectors@^2.0.4:
postcss "^5.0.14"
postcss-selector-parser "^2.0.0"
-postcss-modules-extract-imports@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb"
+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.0.1:
+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.0.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.1.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:
@@ -5913,13 +5474,13 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13:
- version "6.0.23"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+postcss@^6.0.1:
+ version "6.0.21"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d"
dependencies:
- chalk "^2.4.1"
+ chalk "^2.3.2"
source-map "^0.6.1"
- supports-color "^5.4.0"
+ supports-color "^5.3.0"
prelude-ls@~1.1.2:
version "1.1.2"
@@ -5929,10 +5490,18 @@ prepend-http@^1.0.0, prepend-http@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+prepend-http@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+
preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+prettier@^1.5.3:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75"
+
pretty-bytes@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
@@ -5944,18 +5513,11 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
-pretty-format@^20.0.3:
- version "20.0.3"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14"
- dependencies:
- ansi-regex "^2.1.1"
- ansi-styles "^3.0.0"
-
-private@^0.1.6, private@^0.1.7, private@^0.1.8:
+private@^0.1.6, private@^0.1.7, private@~0.1.5:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
-process-nextick-args@~2.0.0:
+process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
@@ -5967,38 +5529,16 @@ progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
-promise@8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450"
- dependencies:
- asap "~2.0.3"
-
-promise@^7.1.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
- dependencies:
- asap "~2.0.3"
-
-prop-types-extra@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f"
- dependencies:
- react-is "^16.3.2"
- warning "^3.0.0"
-
-prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2:
- version "15.6.2"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
- dependencies:
- loose-envify "^1.3.1"
- object-assign "^4.1.1"
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
proxy-addr@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
dependencies:
forwarded "~0.1.2"
- ipaddr.js "1.8.0"
+ ipaddr.js "1.6.0"
prr@~1.0.1:
version "1.0.1"
@@ -6008,13 +5548,9 @@ pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-psl@^1.1.24:
- version "1.1.29"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
-
public-encrypt@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994"
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
dependencies:
bn.js "^4.1.0"
browserify-rsa "^4.0.0"
@@ -6022,6 +5558,21 @@ public-encrypt@^4.0.0:
parse-asn1 "^5.0.0"
randombytes "^2.0.1"
+pump@^2.0.0, pump@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pumpify@^1.3.3:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb"
+ dependencies:
+ duplexify "^3.5.3"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
@@ -6030,10 +5581,6 @@ punycode@^1.2.4, punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-punycode@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
-
q@^1.1.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@@ -6042,9 +5589,9 @@ qs@6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-qs@~6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+qs@~6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
query-string@^4.1.0:
version "4.3.4"
@@ -6053,6 +5600,14 @@ query-string@^4.1.0:
object-assign "^4.1.0"
strict-uri-encode "^1.0.0"
+query-string@^5.0.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
+ dependencies:
+ decode-uri-component "^0.2.0"
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -6061,23 +5616,20 @@ querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-querystringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
+querystringify@0.0.x:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"
-raf@3.4.0, raf@^3.1.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
- dependencies:
- performance-now "^2.1.0"
+querystringify@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
-randomatic@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116"
+randomatic@^1.1.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
dependencies:
- is-number "^4.0.0"
- kind-of "^6.0.0"
- math-random "^1.0.1"
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.0.6"
@@ -6105,261 +5657,21 @@ raw-body@2.3.2:
iconv-lite "0.4.19"
unpipe "1.0.0"
-rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+rc@^1.1.7:
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092"
dependencies:
- deep-extend "^0.6.0"
+ deep-extend "~0.4.0"
ini "~1.3.0"
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-bootstrap-switch@^15.5.3:
- version "15.5.3"
- resolved "https://registry.yarnpkg.com/react-bootstrap-switch/-/react-bootstrap-switch-15.5.3.tgz#97287791d4ec0d1892d142542e7e5248002b1251"
-
-react-bootstrap-typeahead@^3.1.3:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/react-bootstrap-typeahead/-/react-bootstrap-typeahead-3.2.1.tgz#a982d3dca65efa003abe70743402b4ffeac8540f"
- dependencies:
- classnames "^2.2.0"
- escape-string-regexp "^1.0.5"
- invariant "^2.2.1"
- lodash "^4.17.2"
- prop-types "^15.5.8"
- prop-types-extra "^1.0.1"
- react-onclickoutside "^6.1.1"
- react-overlays "^0.8.1"
- react-popper "^1.0.0"
- warning "^4.0.1"
-
-react-bootstrap@^0.32.1:
- version "0.32.1"
- resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-0.32.1.tgz#60624c1b48a39d773ef6cce6421a4f33ecc166bb"
- dependencies:
- babel-runtime "^6.11.6"
- classnames "^2.2.5"
- dom-helpers "^3.2.0"
- invariant "^2.2.1"
- keycode "^2.1.2"
- prop-types "^15.5.10"
- prop-types-extra "^1.0.1"
- react-overlays "^0.8.0"
- react-prop-types "^0.4.0"
- react-transition-group "^2.0.0"
- uncontrollable "^4.1.0"
- warning "^3.0.0"
-
-react-c3js@^0.1.20:
- version "0.1.20"
- resolved "https://registry.yarnpkg.com/react-c3js/-/react-c3js-0.1.20.tgz#561bb211bd691be42af39726d11bab42d09f3e7b"
- dependencies:
- c3 "^0.4.11"
-
-react-click-outside@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/react-click-outside/-/react-click-outside-3.0.1.tgz#6e77e84d2f17afaaac26dbad743cbbf909f5e24c"
- dependencies:
- hoist-non-react-statics "^2.1.1"
-
-react-collapse@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/react-collapse/-/react-collapse-4.0.3.tgz#b96de959ed0092a43534630b599a4753dd76d543"
- dependencies:
- prop-types "^15.5.8"
-
-react-dev-utils@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.1.tgz#1f396e161fe44b595db1b186a40067289bf06613"
- dependencies:
- address "1.0.3"
- babel-code-frame "6.26.0"
- chalk "1.1.3"
- cross-spawn "5.1.0"
- detect-port-alt "1.1.6"
- escape-string-regexp "1.0.5"
- filesize "3.5.11"
- global-modules "1.0.0"
- gzip-size "3.0.0"
- inquirer "3.3.0"
- is-root "1.0.0"
- opn "5.2.0"
- react-error-overlay "^4.0.0"
- recursive-readdir "2.2.1"
- shell-quote "1.6.1"
- sockjs-client "1.1.4"
- strip-ansi "3.0.1"
- text-table "0.2.0"
-
-react-dom@^16.4.2:
- version "16.4.2"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.2.tgz#4afed569689f2c561d2b8da0b819669c38a0bda4"
- dependencies:
- fbjs "^0.8.16"
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
- prop-types "^15.6.0"
-
-react-error-overlay@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4"
-
-react-fontawesome@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/react-fontawesome/-/react-fontawesome-1.6.1.tgz#eddce17e7dc731aa09fd4a186688a61793a16c5c"
- dependencies:
- prop-types "^15.5.6"
-
-react-is@^16.3.2:
- version "16.4.2"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.4.2.tgz#84891b56c2b6d9efdee577cc83501dfc5ecead88"
-
-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-motion@^0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316"
- dependencies:
- performance-now "^0.2.0"
- prop-types "^15.5.8"
- raf "^3.1.0"
-
-react-onclickoutside@^6.1.1:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93"
-
-react-overlays@^0.8.0, react-overlays@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz#fad65eea5b24301cca192a169f5dddb0b20d3ac5"
- dependencies:
- classnames "^2.2.5"
- dom-helpers "^3.2.1"
- prop-types "^15.5.10"
- prop-types-extra "^1.0.1"
- react-transition-group "^2.2.0"
- warning "^3.0.0"
-
-react-popper@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.0.2.tgz#0e72f338b7f15ab9f9ec884e36ae0dad78a3e301"
- dependencies:
- babel-runtime "6.x.x"
- create-react-context "^0.2.1"
- popper.js "^1.14.1"
- prop-types "^15.6.1"
- typed-styles "^0.0.5"
- warning "^3.0.0"
-
-react-prop-types@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/react-prop-types/-/react-prop-types-0.4.0.tgz#f99b0bfb4006929c9af2051e7c1414a5c75b93d0"
- dependencies:
- warning "^3.0.0"
-
-react-redux@^5.0.7:
- version "5.0.7"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8"
- dependencies:
- hoist-non-react-statics "^2.5.0"
- invariant "^2.0.0"
- lodash "^4.17.5"
- lodash-es "^4.17.5"
- loose-envify "^1.1.0"
- prop-types "^15.6.0"
-
-react-router-dom@^4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
- dependencies:
- history "^4.7.2"
- invariant "^2.2.4"
- loose-envify "^1.3.1"
- prop-types "^15.6.1"
- react-router "^4.3.1"
- warning "^4.0.1"
-
-react-router@^4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
- dependencies:
- history "^4.7.2"
- hoist-non-react-statics "^2.5.0"
- invariant "^2.2.4"
- loose-envify "^1.3.1"
- path-to-regexp "^1.7.0"
- prop-types "^15.6.1"
- warning "^4.0.1"
-
-react-scripts@1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.4.tgz#d5c230e707918d6dd2d06f303b10f5222d017c88"
- dependencies:
- autoprefixer "7.1.6"
- babel-core "6.26.0"
- babel-eslint "7.2.3"
- babel-jest "20.0.3"
- babel-loader "7.1.2"
- babel-preset-react-app "^3.1.1"
- babel-runtime "6.26.0"
- case-sensitive-paths-webpack-plugin "2.1.1"
- chalk "1.1.3"
- css-loader "0.28.7"
- dotenv "4.0.0"
- dotenv-expand "4.2.0"
- eslint "4.10.0"
- eslint-config-react-app "^2.1.0"
- eslint-loader "1.9.0"
- eslint-plugin-flowtype "2.39.1"
- eslint-plugin-import "2.8.0"
- eslint-plugin-jsx-a11y "5.1.1"
- eslint-plugin-react "7.4.0"
- extract-text-webpack-plugin "3.0.2"
- file-loader "1.1.5"
- fs-extra "3.0.1"
- html-webpack-plugin "2.29.0"
- jest "20.0.4"
- object-assign "4.1.1"
- postcss-flexbugs-fixes "3.2.0"
- postcss-loader "2.0.8"
- promise "8.0.1"
- raf "3.4.0"
- react-dev-utils "^5.0.1"
- resolve "1.6.0"
- style-loader "0.19.0"
- sw-precache-webpack-plugin "0.11.4"
- url-loader "0.6.2"
- webpack "3.8.1"
- webpack-dev-server "2.9.4"
- webpack-manifest-plugin "1.3.2"
- whatwg-fetch "2.0.3"
- optionalDependencies:
- fsevents "^1.1.3"
-
-react-transition-group@^2.0.0, react-transition-group@^2.2.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.4.0.tgz#1d9391fabfd82e016f26fabd1eec329dbd922b5a"
- dependencies:
- dom-helpers "^3.3.1"
- loose-envify "^1.3.1"
- prop-types "^15.6.2"
- react-lifecycles-compat "^3.0.4"
-
-react@^16.4.2:
- version "16.4.2"
- resolved "https://registry.yarnpkg.com/react/-/react-16.4.2.tgz#2cd90154e3a9d9dd8da2991149fdca3c260e129f"
- dependencies:
- fbjs "^0.8.16"
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
- prop-types "^15.6.0"
-
-reactabular-table@^8.14.0:
- version "8.14.0"
- resolved "https://registry.yarnpkg.com/reactabular-table/-/reactabular-table-8.14.0.tgz#2ce05de47d499db91678fa9518505ea509bf3d7f"
+read-chunk@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655"
dependencies:
- classnames "^2.2.5"
+ pify "^3.0.0"
+ safe-buffer "^5.1.1"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -6375,6 +5687,13 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.0.0"
+read-pkg-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^3.0.0"
+
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -6391,27 +5710,35 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-readable-stream@1.0:
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
-readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
+ string_decoder "~1.0.3"
util-deprecate "~1.0.1"
+readable-stream@1.0:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
readdirp@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
@@ -6421,20 +5748,39 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
-recompose@^0.26.0:
- version "0.26.0"
- resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.26.0.tgz#9babff039cb72ba5bd17366d55d7232fbdfb2d30"
+recast@^0.12.5:
+ version "0.12.9"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1"
dependencies:
- change-emitter "^0.1.2"
- fbjs "^0.8.1"
- hoist-non-react-statics "^2.3.1"
- symbol-observable "^1.0.4"
+ ast-types "0.10.1"
+ core-js "^2.4.1"
+ esprima "~4.0.0"
+ private "~0.1.5"
+ source-map "~0.6.1"
-recursive-readdir@2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99"
+recast@^0.14.1:
+ version "0.14.7"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d"
+ dependencies:
+ ast-types "0.11.3"
+ esprima "~4.0.0"
+ private "~0.1.5"
+ source-map "~0.6.1"
+
+recast@~0.11.12:
+ version "0.11.23"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
dependencies:
- minimatch "3.0.3"
+ ast-types "0.9.6"
+ esprima "~3.1.0"
+ 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"
redent@^1.0.0:
version "1.0.0"
@@ -6457,22 +5803,13 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^0.4.2"
-redux-thunk@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
-
-redux@<4.0.0:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
- dependencies:
- lodash "^4.2.1"
- lodash-es "^4.2.1"
- loose-envify "^1.1.0"
- symbol-observable "^1.0.3"
+reflect-metadata@^0.1.12:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2"
regenerate@^1.2.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
regenerator-runtime@^0.11.0:
version "0.11.1"
@@ -6499,15 +5836,13 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexp.prototype.flags@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
- dependencies:
- define-properties "^1.1.2"
+regex-parser@^2.2.9:
+ version "2.2.9"
+ resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.9.tgz#a372f45a248b62976a568037c1b6e60a60599192"
-regexpp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365"
+regexpp@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.0.1.tgz#d857c3a741dce075c2848dcb019a0a975b190d43"
regexpu-core@^1.0.0:
version "1.0.0"
@@ -6525,19 +5860,6 @@ regexpu-core@^2.0.0:
regjsgen "^0.2.0"
regjsparser "^0.1.4"
-registry-auth-token@^3.0.1:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
- dependencies:
- rc "^1.1.6"
- safe-buffer "^5.0.1"
-
-registry-url@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
- dependencies:
- rc "^1.0.1"
-
regjsgen@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
@@ -6580,39 +5902,45 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@^2.79.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+replace-ext@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
+
+replace-ext@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
+
+request@2.81.0:
+ version "2.81.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.0"
- http-signature "~1.2.0"
+ form-data "~2.1.1"
+ har-validator "~4.2.1"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
+ mime-types "~2.1.7"
+ oauth-sign "~0.8.1"
+ performance-now "^0.2.0"
+ qs "~6.4.0"
+ safe-buffer "^5.0.1"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
tunnel-agent "^0.6.0"
- uuid "^3.3.2"
+ uuid "^3.0.0"
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-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
@@ -6624,7 +5952,7 @@ require-uncached@^1.0.3:
caller-path "^0.1.0"
resolve-from "^1.0.0"
-requires-port@^1.0.0:
+requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -6649,29 +5977,42 @@ resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
-resolve-pathname@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
+resolve-url-loader@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz#e1b37034d48f22f8cfb9f04c026faaa070fdaf26"
+ dependencies:
+ adjust-sourcemap-loader "^1.1.0"
+ camelcase "^4.1.0"
+ convert-source-map "^1.5.1"
+ loader-utils "^1.1.0"
+ lodash.defaults "^4.0.0"
+ rework "^1.0.1"
+ rework-visit "^1.0.0"
+ source-map "^0.5.7"
+ urix "^0.1.0"
-resolve-url@^0.2.1:
+resolve-url@^0.2.1, resolve-url@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-resolve@1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-resolve@1.6.0:
+resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c"
dependencies:
path-parse "^1.0.5"
-resolve@^1.3.2, resolve@^1.5.0:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
+responselike@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
dependencies:
- path-parse "^1.0.5"
+ lowercase-keys "^1.0.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"
@@ -6684,31 +6025,46 @@ 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"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+rework-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a"
+
+rework@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7"
dependencies:
- align-text "^0.1.1"
+ convert-source-map "^0.3.3"
+ css "^2.0.0"
-rimraf@^2.2.8, rimraf@^2.6.1:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
dependencies:
glob "^7.0.5"
+rimraf@~2.2.6:
+ version "2.2.8"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
+
ripemd160@^2.0.0, ripemd160@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
dependencies:
- hash-base "^3.0.0"
+ hash-base "^2.0.0"
inherits "^2.0.1"
-run-async@^2.2.0:
+run-async@^2.0.0, run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
is-promise "^2.1.0"
+run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ dependencies:
+ aproba "^1.1.1"
+
rx-lite-aggregates@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
@@ -6719,69 +6075,64 @@ 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"
-rxjs@^5.5.2:
- version "5.5.11"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87"
+rxjs-compat@^6.0.0-rc.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/rxjs-compat/-/rxjs-compat-6.2.0.tgz#2eb49cc6ac20d0d7057c6887d1895beaab0966f9"
+
+rxjs@^5.4.2, rxjs@^5.5.2:
+ version "5.5.7"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.7.tgz#afb3d1642b069b2fbf203903d6501d1acb4cda27"
dependencies:
symbol-observable "1.0.1"
-safe-buffer@5.1.1:
+rxjs@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.0.tgz#e024d0e180b72756a83c2aaea8f25423751ba978"
+ dependencies:
+ tslib "^1.9.0"
+
+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"
-safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
-
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
dependencies:
ret "~0.1.10"
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-
-sane@~1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775"
- dependencies:
- anymatch "^1.3.0"
- exec-sh "^0.2.0"
- fb-watchman "^1.8.0"
- minimatch "^3.0.2"
- minimist "^1.1.1"
- walker "~1.0.5"
- watch "~0.10.0"
-
-sax@^1.2.1, sax@^1.2.4, sax@~1.2.1:
+sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-schema-utils@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
+schema-utils@^0.4.2, 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 "^5.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+
+scoped-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8"
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
selfsigned@^1.9.1:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823"
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758"
dependencies:
- node-forge "0.7.5"
+ node-forge "0.7.1"
-semver-diff@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
+semver-dsl@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0"
dependencies:
- semver "^5.0.3"
+ semver "^5.3.0"
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
@@ -6803,6 +6154,10 @@ send@0.16.2:
range-parser "~1.2.0"
statuses "~1.4.0"
+serialize-javascript@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005"
+
serve-index@^1.7.2:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -6824,10 +6179,6 @@ serve-static@1.13.2:
parseurl "~1.3.2"
send "0.16.2"
-serviceworker-cache-polyfill@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb"
-
set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -6854,7 +6205,7 @@ set-value@^2.0.0:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setimmediate@^1.0.4, setimmediate@^1.0.5:
+setimmediate@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
@@ -6883,33 +6234,40 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-shell-quote@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+shelljs@^0.8.0:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1"
dependencies:
- array-filter "~0.0.0"
- array-map "~0.0.0"
- array-reduce "~0.0.0"
- jsonify "~0.0.0"
-
-shellwords@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+simple-is@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+slice-ansi@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
dependencies:
is-fullwidth-code-point "^2.0.0"
+slide@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -6937,9 +6295,11 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-sockette@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/sockette/-/sockette-2.0.0.tgz#3da2f3459288d55cedcb6de580aeae68ae4554fc"
+sntp@1.x.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
+ dependencies:
+ hoek "2.x.x"
sockjs-client@1.1.4:
version "1.1.4"
@@ -6952,12 +6312,12 @@ sockjs-client@1.1.4:
json3 "^3.3.2"
url-parse "^1.1.8"
-sockjs@0.3.18:
- version "0.3.18"
- resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207"
+sockjs@0.3.19:
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
dependencies:
faye-websocket "^0.10.0"
- uuid "^2.0.2"
+ uuid "^3.0.1"
sort-keys@^1.0.0:
version "1.1.2"
@@ -6965,19 +6325,30 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
-sortabular@^1.5.1:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/sortabular/-/sortabular-1.6.0.tgz#d320198c3add5cf8e200b14e076f0a06ad08d341"
+sort-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
+ dependencies:
+ is-plain-obj "^1.0.0"
source-list-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
+source-map-resolve@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761"
+ dependencies:
+ atob "~1.1.0"
+ resolve-url "~0.2.1"
+ source-map-url "~0.3.0"
+ urix "~0.1.0"
+
source-map-resolve@^0.5.0:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
dependencies:
- atob "^2.1.1"
+ atob "^2.0.0"
decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
@@ -6989,21 +6360,31 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
+source-map-support@^0.5.3:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8"
+ dependencies:
+ source-map "^0.6.0"
+
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.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+source-map-url@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9"
+
+source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-source-map@^0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+source-map@^0.1.38:
+ version "0.1.43"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
dependencies:
amdefine ">=0.0.4"
-source-map@^0.6.1, 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"
@@ -7058,25 +6439,34 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
+sprintf-js@^1.0.3:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
sshpk@^1.7.0:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb"
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
dashdash "^1.12.0"
getpass "^0.1.1"
- safer-buffer "^2.0.2"
optionalDependencies:
bcrypt-pbkdf "^1.0.0"
ecc-jsbn "~0.1.1"
jsbn "~0.1.0"
tweetnacl "~0.14.0"
+ssri@^5.2.4:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ dependencies:
+ safe-buffer "^5.1.1"
+
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -7084,11 +6474,7 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-
-statuses@~1.4.0:
+"statuses@>= 1.3.1 < 2", statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
@@ -7099,25 +6485,40 @@ stream-browserify@^2.0.1:
inherits "~2.0.1"
readable-stream "^2.0.2"
+stream-each@^1.1.0:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd"
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
stream-http@^2.7.2:
- version "2.8.3"
- resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4"
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.1"
- readable-stream "^2.3.6"
+ readable-stream "^2.3.3"
to-arraybuffer "^1.0.0"
xtend "^4.0.0"
+stream-shift@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+
+stream-to-observable@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10"
+ dependencies:
+ any-observable "^0.2.0"
+
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-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac"
- dependencies:
- strip-ansi "^3.0.0"
+string-template@~0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add"
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
@@ -7127,26 +6528,16 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
-string.prototype.matchall@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz#2af8fe3d2d6dc53ca2a59bd376b089c3c152b3c8"
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.10.0"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
- regexp.prototype.flags "^1.2.0"
-
-string_decoder@^1.0.0, string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+string_decoder@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.0.tgz#384f322ee8a848e500effde99901bba849c5d403"
dependencies:
safe-buffer "~5.1.0"
@@ -7154,7 +6545,17 @@ string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+string_decoder@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+stringstream@~0.0.4:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
@@ -7166,9 +6567,16 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
-strip-bom@3.0.0, strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+strip-ansi@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
+
+strip-bom-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca"
+ dependencies:
+ first-chunk-stream "^2.0.0"
+ strip-bom "^2.0.0"
strip-bom@^2.0.0:
version "2.0.0"
@@ -7176,6 +6584,10 @@ strip-bom@^2.0.0:
dependencies:
is-utf8 "^0.2.0"
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -7186,36 +6598,30 @@ strip-indent@^1.0.1:
dependencies:
get-stdin "^4.0.1"
-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"
-style-loader@0.19.0:
- version "0.19.0"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759"
+style-loader@^0.20.3:
+ version "0.20.3"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4"
dependencies:
- loader-utils "^1.0.2"
- schema-utils "^0.3.0"
+ loader-utils "^1.1.0"
+ schema-utils "^0.4.5"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-supports-color@^3.1.2, supports-color@^3.2.3:
+supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
has-flag "^1.0.0"
-supports-color@^4.2.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@^5.3.0, supports-color@^5.4.0:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
+supports-color@^5.1.0, supports-color@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
dependencies:
has-flag "^3.0.0"
@@ -7231,104 +6637,82 @@ svgo@^0.7.0:
sax "~1.2.1"
whet.extend "~0.9.9"
-sw-precache-webpack-plugin@0.11.4:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz#a695017e54eed575551493a519dc1da8da2dc5e0"
- dependencies:
- del "^2.2.2"
- sw-precache "^5.1.1"
- uglify-js "^3.0.13"
-
-sw-precache@^5.1.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179"
- dependencies:
- dom-urls "^1.1.0"
- es6-promise "^4.0.5"
- glob "^7.1.1"
- lodash.defaults "^4.2.0"
- lodash.template "^4.4.0"
- meow "^3.7.0"
- mkdirp "^0.5.1"
- pretty-bytes "^4.0.2"
- sw-toolbox "^3.4.0"
- update-notifier "^2.3.0"
-
-sw-toolbox@^3.4.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5"
- dependencies:
- path-to-regexp "^1.0.1"
- serviceworker-cache-polyfill "^4.0.0"
-
symbol-observable@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
-symbol-observable@^1.0.3, symbol-observable@^1.0.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
-
-symbol-tree@^3.2.1:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
-
-table-resolver@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/table-resolver/-/table-resolver-3.3.0.tgz#22e575d3c6aed15404ab71a0f2046c4ff55e556e"
+symbol-observable@^0.2.2:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40"
-table@^4.0.1, table@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
+table@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
dependencies:
- ajv "^6.0.1"
- ajv-keywords "^3.0.0"
+ ajv "^5.2.3"
+ ajv-keywords "^2.1.0"
chalk "^2.1.0"
lodash "^4.17.4"
slice-ansi "1.0.0"
string-width "^2.1.1"
-tapable@^0.2.7:
- version "0.2.8"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
+tapable@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2"
-tar@^4:
- version "4.4.6"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b"
+tar-pack@^3.4.0:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
dependencies:
- chownr "^1.0.1"
- fs-minipass "^1.2.5"
- minipass "^2.3.3"
- minizlib "^1.1.0"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.2"
+ debug "^2.2.0"
+ fstream "^1.0.10"
+ fstream-ignore "^1.0.5"
+ once "^1.3.3"
+ readable-stream "^2.1.4"
+ rimraf "^2.5.1"
+ tar "^2.2.1"
+ uid-number "^0.0.6"
+
+tar-stream@^1.5.0:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
+ dependencies:
+ bl "^1.0.0"
+ end-of-stream "^1.0.0"
+ readable-stream "^2.0.0"
+ xtend "^4.0.0"
-term-size@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
+tar@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
dependencies:
- execa "^0.7.0"
+ block-stream "*"
+ fstream "^1.0.2"
+ inherits "2"
-test-exclude@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
+temp@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
dependencies:
- arrify "^1.0.1"
- micromatch "^3.1.8"
- object-assign "^4.1.0"
- read-pkg-up "^1.0.1"
- require-main-filename "^1.0.1"
+ os-tmpdir "^1.0.0"
+ rimraf "~2.2.6"
-text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0:
+text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-throat@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836"
+textextensions@2:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286"
-through@^2.3.6:
+through2@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ dependencies:
+ readable-stream "^2.1.5"
+ xtend "~4.0.1"
+
+through@X.X.X, through@^2.3.6, through@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -7336,17 +6720,13 @@ thunky@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
-time-stamp@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.1.tgz#708a89359c1fc50bd5e7b1c8aa750d08c9172232"
-
-timed-out@^4.0.0:
+timed-out@^4.0.0, timed-out@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
timers-browserify@^2.0.4:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae"
dependencies:
setimmediate "^1.0.4"
@@ -7356,10 +6736,6 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmpl@1.0.x:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
-
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@@ -7368,6 +6744,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"
@@ -7391,20 +6771,15 @@ to-regex@^3.0.1, to-regex@^3.0.2:
safe-regex "^1.1.0"
toposort@^1.0.0:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"
-tough-cookie@^2.3.2, tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
+tough-cookie@~2.3.0:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
dependencies:
- psl "^1.1.24"
punycode "^1.4.1"
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
-
trim-newlines@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
@@ -7413,6 +6788,81 @@ trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+tryer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7"
+
+ts-loader@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-4.1.0.tgz#6216e75600941df3270bc4a7125e20aefb2dc5ea"
+ dependencies:
+ chalk "^2.3.0"
+ enhanced-resolve "^4.0.0"
+ loader-utils "^1.0.2"
+ micromatch "^3.1.4"
+ semver "^5.0.1"
+
+ts-node@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81"
+ dependencies:
+ arrify "^1.0.0"
+ chalk "^2.3.0"
+ diff "^3.1.0"
+ make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.5.3"
+ yn "^2.0.0"
+
+tslib@^1.8.0, tslib@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
+tslib@^1.9.0:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e"
+
+tslint-angular@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/tslint-angular/-/tslint-angular-1.1.1.tgz#ae4724ae9b31e34ccc068600a6ea710113a1a161"
+ dependencies:
+ codelyzer "^4.0.2"
+ tslint "^5.8.0"
+
+tslint-loader@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-3.6.0.tgz#12ed4d5ef57d68be25cd12692fb2108b66469d76"
+ dependencies:
+ loader-utils "^1.0.2"
+ mkdirp "^0.5.1"
+ object-assign "^4.1.1"
+ rimraf "^2.4.4"
+ semver "^5.3.0"
+
+tslint@^5.8.0, tslint@^5.9.1:
+ version "5.9.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.3.0"
+ commander "^2.12.1"
+ diff "^3.2.0"
+ glob "^7.1.1"
+ js-yaml "^3.7.0"
+ minimatch "^3.0.4"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.8.0"
+ tsutils "^2.12.1"
+
+tsutils@^2.12.1:
+ version "2.22.2"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.22.2.tgz#0b9f3d87aa3eb95bd32d26ce2b88aa329a657951"
+ dependencies:
+ tslib "^1.8.1"
+
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
@@ -7440,51 +6890,48 @@ type-is@~1.6.15, type-is@~1.6.16:
media-typer "0.3.0"
mime-types "~2.1.18"
-typed-styles@^0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.5.tgz#a60df245d482a9b1adf9c06c078d0f06085ed1cf"
-
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-ua-parser-js@^0.7.18:
- version "0.7.18"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
+typescript@2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
-uglify-js@3.4.x, uglify-js@^3.0.13:
- version "3.4.7"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.7.tgz#4df6b92e54789aa921a254cb1e33704d6ec12b89"
+uglify-es@^3.3.4:
+ version "3.3.9"
+ resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
dependencies:
- commander "~2.16.0"
+ commander "~2.13.0"
source-map "~0.6.1"
-uglify-js@^2.6, uglify-js@^2.8.29:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+uglify-js@3.3.x:
+ version "3.3.16"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.16.tgz#23ba13efa27aa00885be7417819e8a9787f94028"
dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+ commander "~2.15.0"
+ source-map "~0.6.1"
-uglifyjs-webpack-plugin@^0.4.6:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309"
+uglifyjs-webpack-plugin@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043"
dependencies:
- source-map "^0.5.6"
- uglify-js "^2.8.29"
- webpack-sources "^1.0.1"
+ cacache "^10.0.4"
+ find-cache-dir "^1.0.0"
+ schema-utils "^0.4.5"
+ serialize-javascript "^1.4.0"
+ source-map "^0.6.1"
+ uglify-es "^3.3.4"
+ webpack-sources "^1.1.0"
+ worker-farm "^1.5.2"
-uncontrollable@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-4.1.0.tgz#e0358291252e1865222d90939b19f2f49f81c1a9"
- dependencies:
- invariant "^2.1.0"
+uid-number@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+
+underscore@~1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
union-value@^1.0.0:
version "1.0.0"
@@ -7499,19 +6946,27 @@ uniq@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+uniqid@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1"
+ dependencies:
+ macaddress "^0.2.8"
+
uniqs@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
-unique-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
+unique-filename@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
dependencies:
- crypto-random-string "^1.0.0"
+ unique-slug "^2.0.0"
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+unique-slug@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
+ dependencies:
+ imurmurhash "^0.1.4"
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
@@ -7524,54 +6979,32 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
-unzip-response@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
-
-upath@^1.0.5:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
+untildify@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1"
-update-notifier@^2.3.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
- dependencies:
- boxen "^1.2.1"
- chalk "^2.0.1"
- configstore "^3.0.0"
- import-lazy "^2.1.0"
- is-ci "^1.0.10"
- is-installed-globally "^0.1.0"
- is-npm "^1.0.0"
- latest-version "^3.0.0"
- semver-diff "^2.0.0"
- xdg-basedir "^3.0.0"
+upath@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d"
upper-case@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
-uri-js@^4.2.1:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
- dependencies:
- punycode "^2.1.0"
-
-urijs@^1.16.1:
- version "1.19.1"
- resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a"
-
-urix@^0.1.0:
+urix@^0.1.0, urix@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-url-loader@0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7"
+url-join@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a"
+
+url-loader@^0.5.9:
+ version "0.5.9"
+ resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295"
dependencies:
loader-utils "^1.0.2"
- mime "^1.4.1"
- schema-utils "^0.3.0"
+ mime "1.3.x"
url-parse-lax@^1.0.0:
version "1.0.0"
@@ -7579,12 +7012,29 @@ url-parse-lax@^1.0.0:
dependencies:
prepend-http "^1.0.1"
-url-parse@^1.1.8, url-parse@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15"
+url-parse-lax@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+ dependencies:
+ prepend-http "^2.0.0"
+
+url-parse@1.0.x:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
+ dependencies:
+ querystringify "0.0.x"
+ requires-port "1.0.x"
+
+url-parse@^1.1.8:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986"
dependencies:
- querystringify "^2.0.0"
- requires-port "^1.0.0"
+ querystringify "~1.0.0"
+ requires-port "~1.0.0"
+
+url-to-options@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
url@^0.11.0:
version "0.11.0"
@@ -7594,25 +7044,28 @@ url@^0.11.0:
querystring "0.2.0"
use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544"
+ dependencies:
+ kind-of "^6.0.2"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-util@0.10.3:
+util.promisify@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+ dependencies:
+ define-properties "^1.1.2"
+ object.getownpropertydescriptors "^2.0.3"
+
+util@0.10.3, util@^0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
dependencies:
inherits "2.0.1"
-util@^0.10.3:
- version "0.10.4"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
- dependencies:
- inherits "2.0.3"
-
utila@~0.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226"
@@ -7625,32 +7078,28 @@ utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-uuid@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
+uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-uuid@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+v8-compile-cache@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4"
validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
dependencies:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
-value-equal@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
-
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
vendors@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22"
verror@1.10.0:
version "1.10.0"
@@ -7660,37 +7109,55 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vm-browserify@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+vinyl-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a"
dependencies:
- indexof "0.0.1"
+ graceful-fs "^4.1.2"
+ pify "^2.3.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+ strip-bom-stream "^2.0.0"
+ vinyl "^1.1.0"
-walker@~1.0.5:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+vinyl@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
dependencies:
- makeerror "1.0.x"
+ clone "^1.0.0"
+ clone-stats "^0.0.1"
+ replace-ext "0.0.1"
-warning@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
+vinyl@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c"
dependencies:
- loose-envify "^1.0.0"
+ clone "^2.1.1"
+ clone-buffer "^1.0.0"
+ clone-stats "^1.0.0"
+ cloneable-readable "^1.0.0"
+ remove-trailing-separator "^1.0.1"
+ replace-ext "^1.0.0"
-warning@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.1.tgz#66ce376b7fbfe8a887c22bdf0e7349d73d397745"
+vm-browserify@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
dependencies:
- loose-envify "^1.0.0"
+ indexof "0.0.1"
-watch@~0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
+vue-parser@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/vue-parser/-/vue-parser-1.1.6.tgz#3063c8431795664ebe429c23b5506899706e6355"
+ dependencies:
+ parse5 "^3.0.3"
-watchpack@^1.4.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
+walkdir@^0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532"
+
+watchpack@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed"
dependencies:
chokidar "^2.0.2"
graceful-fs "^4.1.2"
@@ -7702,40 +7169,93 @@ wbuf@^1.1.0, wbuf@^1.7.2:
dependencies:
minimalistic-assert "^1.0.0"
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+webpack-addons@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a"
+ dependencies:
+ jscodeshift "^0.4.0"
-webidl-conversions@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+webpack-archive-plugin@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/webpack-archive-plugin/-/webpack-archive-plugin-3.0.0.tgz#924f2e5fbfce9385a309143e771fe3f9a6526e00"
+ dependencies:
+ archiver "^1.3.0"
+
+webpack-bundle-analyzer@^2.9.1:
+ version "2.11.1"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.11.1.tgz#b9fbfb6a32c0a8c1c3237223e90890796b950ab9"
+ dependencies:
+ acorn "^5.3.0"
+ bfj-node4 "^5.2.0"
+ chalk "^2.3.0"
+ commander "^2.13.0"
+ ejs "^2.5.7"
+ express "^4.16.2"
+ filesize "^3.5.11"
+ gzip-size "^4.1.0"
+ lodash "^4.17.4"
+ mkdirp "^0.5.1"
+ opener "^1.4.3"
+ ws "^4.0.0"
-webpack-dev-middleware@^1.11.0:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e"
+webpack-cli@^2.0.11:
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.0.13.tgz#6e2bd9ef91345344737217e22e29001ad8537518"
dependencies:
+ chalk "^2.3.2"
+ cross-spawn "^6.0.5"
+ diff "^3.5.0"
+ enhanced-resolve "^4.0.0"
+ glob-all "^3.1.0"
+ global-modules "^1.0.0"
+ got "^8.2.0"
+ inquirer "^5.1.0"
+ interpret "^1.0.4"
+ jscodeshift "^0.5.0"
+ listr "^0.13.0"
+ loader-utils "^1.1.0"
+ lodash "^4.17.5"
+ log-symbols "^2.2.0"
+ mkdirp "^0.5.1"
+ p-each-series "^1.0.0"
+ p-lazy "^1.0.0"
+ prettier "^1.5.3"
+ resolve-cwd "^2.0.0"
+ supports-color "^5.3.0"
+ v8-compile-cache "^1.1.2"
+ webpack-addons "^1.1.5"
+ yargs "^11.0.0"
+ yeoman-environment "^2.0.0"
+ yeoman-generator "^2.0.3"
+
+webpack-dev-middleware@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.0.1.tgz#7ffd6d0192883c83d3f262e8d7dec822493c6166"
+ dependencies:
+ loud-rejection "^1.6.0"
memory-fs "~0.4.1"
- mime "^1.5.0"
+ mime "^2.1.0"
path-is-absolute "^1.0.0"
range-parser "^1.0.3"
- time-stamp "^2.0.0"
+ url-join "^4.0.0"
+ webpack-log "^1.0.1"
-webpack-dev-server@2.9.4:
- version "2.9.4"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz#7883e61759c6a4b33e9b19ec4037bd4ab61428d1"
+webpack-dev-server@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.1.tgz#3c0fdd1ba3b50ebc79858a0e6b9ccdd1565b0c24"
dependencies:
ansi-html "0.0.7"
array-includes "^3.0.3"
bonjour "^3.5.0"
- chokidar "^1.6.0"
+ chokidar "^2.0.0"
compression "^1.5.2"
connect-history-api-fallback "^1.3.0"
debug "^3.1.0"
del "^3.0.0"
- express "^4.13.3"
+ express "^4.16.2"
html-entities "^1.2.0"
http-proxy-middleware "~0.17.4"
- import-local "^0.1.1"
+ import-local "^1.0.0"
internal-ip "1.2.0"
ip "^1.1.5"
killable "^1.0.0"
@@ -7744,54 +7264,60 @@ webpack-dev-server@2.9.4:
portfinder "^1.0.9"
selfsigned "^1.9.1"
serve-index "^1.7.2"
- sockjs "0.3.18"
+ sockjs "0.3.19"
sockjs-client "1.1.4"
spdy "^3.4.1"
- strip-ansi "^3.0.1"
- supports-color "^4.2.1"
- webpack-dev-middleware "^1.11.0"
- yargs "^6.6.0"
+ strip-ansi "^3.0.0"
+ supports-color "^5.1.0"
+ webpack-dev-middleware "3.0.1"
+ webpack-log "^1.1.2"
+ yargs "9.0.1"
-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"
+webpack-log@^1.0.1, webpack-log@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.1.2.tgz#cdc76016537eed24708dc6aa3d1e52189efee107"
dependencies:
- fs-extra "^0.30.0"
- lodash ">=3.5 <5"
+ chalk "^2.1.0"
+ log-symbols "^2.1.0"
+ loglevelnext "^1.0.1"
+ uuid "^3.1.0"
+
+webpack-merge@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216"
+ dependencies:
+ lodash "^4.17.5"
-webpack-sources@^1.0.1:
+webpack-sources@^1.0.1, webpack-sources@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@3.8.1:
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83"
+webpack@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.4.0.tgz#9439e523544034bc28401c72155b28627c3af384"
dependencies:
acorn "^5.0.0"
- acorn-dynamic-import "^2.0.0"
- ajv "^5.1.5"
- ajv-keywords "^2.0.0"
- async "^2.1.2"
- enhanced-resolve "^3.4.0"
- escope "^3.6.0"
- interpret "^1.0.0"
- json-loader "^0.5.4"
- json5 "^0.5.1"
+ acorn-dynamic-import "^3.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+ chrome-trace-event "^0.1.1"
+ enhanced-resolve "^4.0.0"
+ eslint-scope "^3.7.1"
loader-runner "^2.3.0"
loader-utils "^1.1.0"
memory-fs "~0.4.1"
+ micromatch "^3.1.8"
mkdirp "~0.5.0"
+ neo-async "^2.5.0"
node-libs-browser "^2.0.0"
- source-map "^0.5.3"
- supports-color "^4.2.1"
- tapable "^0.2.7"
- uglifyjs-webpack-plugin "^0.4.6"
- watchpack "^1.4.0"
+ schema-utils "^0.4.2"
+ tapable "^1.0.0"
+ uglifyjs-webpack-plugin "^1.2.4"
+ watchpack "^1.5.0"
webpack-sources "^1.0.1"
- yargs "^8.0.2"
websocket-driver@>=0.5.1:
version "0.7.0"
@@ -7804,74 +7330,31 @@ websocket-extensions@>=0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
-whatwg-encoding@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621"
- dependencies:
- iconv-lite "0.4.23"
-
-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@>=0.10.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
-
-whatwg-url@^4.3.0:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0"
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
whet.extend@~0.9.9:
version "0.9.9"
resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
-which-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+which@^1.2.14, which@^1.2.9:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- dependencies:
- string-width "^1.0.2 || 2"
-
-widest-line@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273"
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
dependencies:
- string-width "^2.1.1"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ string-width "^1.0.2"
wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-worker-farm@^1.3.1:
+worker-farm@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
dependencies:
@@ -7888,13 +7371,13 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-write-file-atomic@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
+write-file-atomic@^1.2.0:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
- signal-exit "^3.0.2"
+ slide "^1.1.5"
write@^0.2.1:
version "0.2.1"
@@ -7902,15 +7385,18 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-xdg-basedir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
+ws@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
+ dependencies:
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
-xml-name-validator@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
+xml-char-classes@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d"
-xtend@^4.0.0:
+xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -7918,95 +7404,128 @@ y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+
yallist@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-yallist@^3.0.0, yallist@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
-
-yargs-parser@^4.2.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
- dependencies:
- camelcase "^3.0.0"
-
-yargs-parser@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
- dependencies:
- camelcase "^3.0.0"
-
yargs-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
dependencies:
camelcase "^4.1.0"
-yargs@^6.6.0:
- version "6.6.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
+yargs-parser@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
dependencies:
- camelcase "^3.0.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- y18n "^3.2.1"
- yargs-parser "^4.2.0"
+ camelcase "^4.1.0"
-yargs@^7.0.2:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+yargs@9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
dependencies:
- camelcase "^3.0.0"
+ camelcase "^4.1.0"
cliui "^3.2.0"
decamelize "^1.1.1"
get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
y18n "^3.2.1"
- yargs-parser "^5.0.0"
+ yargs-parser "^7.0.0"
-yargs@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+yargs@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b"
dependencies:
- camelcase "^4.1.0"
- cliui "^3.2.0"
+ cliui "^4.0.0"
decamelize "^1.1.1"
+ find-up "^2.1.0"
get-caller-file "^1.0.1"
os-locale "^2.0.0"
- read-pkg-up "^2.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^2.0.0"
which-module "^2.0.0"
y18n "^3.2.1"
- yargs-parser "^7.0.0"
+ yargs-parser "^9.0.2"
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+yargs@~1.2.6:
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b"
+ dependencies:
+ minimist "^0.1.0"
+
+yeoman-environment@^2.0.0, yeoman-environment@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.0.5.tgz#84f22bafa84088971fe99ea85f654a3a3dd2b693"
+ dependencies:
+ chalk "^2.1.0"
+ debug "^3.1.0"
+ diff "^3.3.1"
+ escape-string-regexp "^1.0.2"
+ globby "^6.1.0"
+ grouped-queue "^0.3.3"
+ inquirer "^3.3.0"
+ is-scoped "^1.0.0"
+ lodash "^4.17.4"
+ log-symbols "^2.1.0"
+ mem-fs "^1.1.0"
+ text-table "^0.2.0"
+ untildify "^3.0.2"
+
+yeoman-generator@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.3.tgz#19426ed22687ffe05d31526c3f1c2cf67ba768f3"
+ dependencies:
+ async "^2.6.0"
+ chalk "^2.3.0"
+ cli-table "^0.3.1"
+ cross-spawn "^5.1.0"
+ dargs "^5.1.0"
+ dateformat "^3.0.2"
+ debug "^3.1.0"
+ detect-conflict "^1.0.0"
+ error "^7.0.2"
+ find-up "^2.1.0"
+ github-username "^4.0.0"
+ istextorbinary "^2.1.0"
+ lodash "^4.17.4"
+ make-dir "^1.1.0"
+ mem-fs-editor "^3.0.2"
+ minimist "^1.2.0"
+ pretty-bytes "^4.0.2"
+ read-chunk "^2.1.0"
+ read-pkg-up "^3.0.0"
+ rimraf "^2.6.2"
+ run-async "^2.0.0"
+ shelljs "^0.8.0"
+ text-table "^0.2.0"
+ through2 "^2.0.0"
+ yeoman-environment "^2.0.5"
+
+yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
+
+zip-stream@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04"
dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
+ archiver-utils "^1.3.0"
+ compress-commons "^1.2.0"
+ lodash "^4.8.0"
+ readable-stream "^2.0.0"
-yarn@^1.9.4:
- version "1.9.4"
- resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.9.4.tgz#3b82d8446b652775723900b470d966861976924b"
+zone.js@^0.8.26:
+ version "0.8.26"
+ resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.26.tgz#7bdd72f7668c5a7ad6b118148b4ea39c59d08d2d"
diff --git a/zuul/_setup_hook.py b/zuul/_setup_hook.py
index 9d2bcc5f2..d6c730d5c 100644
--- a/zuul/_setup_hook.py
+++ b/zuul/_setup_hook.py
@@ -24,14 +24,10 @@ _old_from_git = pbr.packaging._from_git
def _build_javascript():
if subprocess.call(['which', 'yarn']) != 0:
return
- if not os.path.exists('web/node_modules/.bin/webpack'):
- r = subprocess.Popen(['yarn', 'install', '-d'], cwd="web/").wait()
- if r:
- raise RuntimeError("Yarn install failed")
- if not os.path.exists('web/build/index.html'):
- r = subprocess.Popen(['yarn', 'build'], cwd="web/").wait()
- if r:
- raise RuntimeError("Yarn build failed")
+ if not os.path.exists('node_modules/.bin/webpack'):
+ subprocess.check_call(['yarn', 'install', '-d'])
+ if not os.path.exists('zuul/web/static/status.bundle.js'):
+ subprocess.check_call(['npm', 'run', 'build:dist'])
def _from_git(distribution):
diff --git a/zuul/web/__init__.py b/zuul/web/__init__.py
index 1063dd638..bfa8fdb8a 100755
--- a/zuul/web/__init__.py
+++ b/zuul/web/__init__.py
@@ -448,24 +448,22 @@ class ZuulWebAPI(object):
cherrypy.request.ws_handler.zuulweb = self.zuulweb
-class StaticHandler(object):
- def __init__(self, root):
- self.root = root
-
- def default(self, path):
- # Try to handle static file first
- handled = cherrypy.lib.static.staticdir(
- section="",
- dir=self.root,
- index='index.html')
- if not path or not handled:
- # When not found, serve the index.html
- return cherrypy.lib.static.serve_file(
- path=os.path.join(self.root, "index.html"),
- content_type="text/html")
- else:
- return cherrypy.lib.static.serve_file(
- path=os.path.join(self.root, path))
+class TenantStaticHandler(object):
+ def __init__(self, path):
+ self._cp_config = {
+ 'tools.staticdir.on': True,
+ 'tools.staticdir.dir': path,
+ 'tools.staticdir.index': 'status.html',
+ }
+
+
+class RootStaticHandler(object):
+ def __init__(self, path):
+ self._cp_config = {
+ 'tools.staticdir.on': True,
+ 'tools.staticdir.dir': path,
+ 'tools.staticdir.index': 'tenants.html',
+ }
class StreamManager(object):
@@ -558,6 +556,8 @@ class ZuulWeb(object):
route_map = cherrypy.dispatch.RoutesDispatcher()
api = ZuulWebAPI(self)
+ tenant_static = TenantStaticHandler(self.static_path)
+ root_static = RootStaticHandler(self.static_path)
route_map.connect('api', '/api/info',
controller=api, action='info')
route_map.connect('api', '/api/tenants',
@@ -600,10 +600,10 @@ class ZuulWeb(object):
'/api/connection/%s' % connection.connection_name)
# Add fallthrough routes at the end for the static html/js files
- route_map.connect(
- 'root_static', '/{path:.*}',
- controller=StaticHandler(self.static_path),
- action='default')
+ route_map.connect('root_static', '/{path:.*}',
+ controller=root_static, action='default')
+ route_map.connect('tenant_static', '/t/{tenant}/{path:.*}',
+ controller=tenant_static, action='default')
conf = {
'/': {
diff --git a/zuul/web/static/.keep b/zuul/web/static/.keep
deleted file mode 100644
index e69de29bb..000000000
--- a/zuul/web/static/.keep
+++ /dev/null