diff --git a/.travis.yml b/.travis.yml
index 5529afa0..8ddc20ba 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -24,7 +24,7 @@ services:
before_install:
# update docker
- - curl https://releases.rancher.com/install-docker/17.05.sh | sudo bash -
+ - curl https://releases.rancher.com/install-docker/17.09.sh | sudo bash -
# build the Backslash docker image
- python scripts/travis_version_fix.py
@@ -47,8 +47,10 @@ install:
- python manage.py bootstrap --develop
- python manage.py db upgrade
+ # required to work around https://github.com/dbcli/cli_helpers/issues/25
+ - .env/bin/pip uninstall -y cli_helpers
# (optional) install latest backlash-python
- #- .env/bin/pip install -e git://github.com/getslash/backslash-python.git@develop#egg=backslash-python
+ - .env/bin/pip install -e git://github.com/getslash/backslash-python.git@develop#egg=backslash-python
# run docker-compose setup in testing mode
- sudo docker-compose -f docker/docker-compose.yml build
@@ -62,8 +64,10 @@ script:
# build the frontend to make sure we can serve '/' in the unit tests
- ./node_modules/.bin/ember build
- cd ..
+ - .env/bin/pip install -e git+https://github.com/getslash/backslash-python@develop#egg=backslash
+ - .env/bin/pip install -e git+https://github.com/getslash/slash@develop#egg=slash
- .env/bin/py.test tests
- - .env/bin/py.test integration_tests --app-url http://127.0.0.1:8000 --driver SauceLabs --capability browserName Chrome --capability platform Linux --capability version 48.0 --capability tunnelIdentifier $TRAVIS_JOB_NUMBER
+ - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then .env/bin/py.test integration_tests --app-url http://127.0.0.1:8000 --driver SauceLabs --capability browserName Chrome --capability platform Linux --capability version 48.0 --capability tunnelIdentifier $TRAVIS_JOB_NUMBER; fi
after_success:
- .env/bin/python scripts/travis_docker_publish.py
diff --git a/CHANGES.md b/CHANGES.md
index b132a48d..4e8a45f0 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,17 @@
# Changelog
+## Version 2.12.0
+
+* Backslash now supports reporting interruption exceptions to help determine what caused the session to be interrupted. When the sessions are reported with a compatible toolchain (for example, Slash >= 1.5.0), the session and test views will show the interruption exceptions and their contexts
+* Added an option to display metadata values in an accessible location for tests and sessions
+* Warnings are now deduplicated within sessions and tests, preventing DB bloat
+* Added a view for test cases. This is planned to evolve into a suite management feature over the next releases
+* Fixed the order of display of quick-jump items, and they are now sorted by name
+* Added the ability to search by product type
+* Added a "status_description" field for tests, allowing setting more informative information on what the test is currently doing (via API)
+* Added timing metrics API, enabling tests and sessions to display the total time distribution spent while running
+* Fixed indication of search term syntax errors
+
## Version 2.11.1
* Fixed handling of test timespan when the test starts and before a keepalive is received
diff --git a/_sample_suites/simple/test_1.py b/_sample_suites/simple/test_1.py
index a5aec328..0cff6023 100644
--- a/_sample_suites/simple/test_1.py
+++ b/_sample_suites/simple/test_1.py
@@ -1,5 +1,7 @@
import slash
+import warnings
+
def test_1():
pass
@@ -7,7 +9,8 @@ def test_1():
@slash.tag('tag_without_value')
def test_2():
- slash.logger.warning('This is a warning')
+ for i in range(5):
+ warnings.warn('This is a warning!')
@slash.tag('tag_with_value', 'some_value')
diff --git a/deps/develop.txt b/deps/develop.txt
index d9318460..f15281e6 100644
--- a/deps/develop.txt
+++ b/deps/develop.txt
@@ -7,3 +7,4 @@ tmuxp
livereload
ipython
slash
+yarl
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 0acf0309..f1d060d0 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -4,7 +4,7 @@ RUN npm install -g ember-cli bower
ADD ./webapp/ /frontend/
RUN cd /frontend/ && yarn install && bower install --allow-root
-RUN cd /frontend/ && node_modules/.bin/ember build
+RUN cd /frontend/ && node_modules/.bin/ember build --environment production
diff --git a/docs/installation.rst b/docs/installation.rst
index 782b0268..335d6d03 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -87,3 +87,14 @@ You can start Backslash by running::
Now that the server is up and running, it's time to configure your
server. You can read about it in the :ref:`configuration` section.
+
+
+
+Upgrade
+-------
+
+The way to upgrade an existing deployment to the latest version is:
+1. update the docker image:
+ $ docker pull getslash/backslash
+2. restart the daemon:
+ $ sudo systemctl restart backslash-docker
diff --git a/docs/server_configuration.rst b/docs/server_configuration.rst
index e786a729..dde9efa9 100644
--- a/docs/server_configuration.rst
+++ b/docs/server_configuration.rst
@@ -94,6 +94,24 @@ page, you can specify it via the ``test_metadata_links`` variable::
The above will add a link to the test page pointing at the Jenkins
build whenever a "jenkins_url" metadata key is found for a test
+Metadata Details
+~~~~~~~~~~~~~~~~
+
+Similar to metadata links, you can choose specific metadata keys to be displayed as informational values for tests and/or sessionsL::
+
+ ...
+ test_metadata_display_items:
+ - key: my_metadata_key
+ name: My Metadata Key
+
+Or::
+
+ ...
+ session_metadata_display_items:
+ - key: my_metadata_key
+ name: My Metadata Key
+
+
Deployment Customization
------------------------
diff --git a/flask_app/app.yml b/flask_app/app.yml
index 2cfc65a3..b054d535 100644
--- a/flask_app/app.yml
+++ b/flask_app/app.yml
@@ -21,3 +21,7 @@ display_names:
related_entity: related
test_metadata_links: []
+
+session_metadata_display_items: []
+
+test_metadata_display_items: []
diff --git a/flask_app/blueprints/api/errors.py b/flask_app/blueprints/api/errors.py
index 4277ad51..4b6fe144 100644
--- a/flask_app/blueprints/api/errors.py
+++ b/flask_app/blueprints/api/errors.py
@@ -20,12 +20,15 @@
NoneType = type(None)
-@API(version=3)
-def add_error(message: str, exception_type: (str, NoneType)=None, traceback: (list, NoneType)=None, timestamp: (float, int)=None, test_id: int=None, session_id: int=None, is_failure: bool=False): # pylint: disable=bad-whitespace
+@API(version=4)
+def add_error(message: str, exception_type: (str, NoneType)=None, traceback: (list, NoneType)=None, timestamp: (float, int)=None, test_id: int=None, session_id: int=None, is_failure: bool=False, is_interruption: bool=False): # pylint: disable=bad-whitespace
# pylint: disable=superfluous-parens
if not ((test_id is not None) ^ (session_id is not None)):
error_abort('Either test_id or session_id required')
+ if is_failure and is_interruption:
+ error_abort('Interruptions cannot be marked as failures')
+
if timestamp is None:
timestamp = get_current_time()
if test_id is not None:
@@ -37,16 +40,22 @@ def add_error(message: str, exception_type: (str, NoneType)=None, traceback: (li
try:
obj = cls.query.filter(cls.id == object_id).one()
- increment_field = cls.num_failures if is_failure else cls.num_errors
+ if is_failure:
+ increment_field = cls.num_failures
+ elif is_interruption:
+ increment_field = cls.num_interruptions
+ else:
+ increment_field = cls.num_errors
cls.query.filter(cls.id == object_id).update(
{increment_field: increment_field + 1})
err = Error(message=message,
exception_type=exception_type,
traceback_url=_normalize_traceback_get_url(traceback),
+ is_interruption=is_interruption,
is_failure=is_failure,
timestamp=timestamp)
obj.errors.append(err)
- if obj.end_time is not None:
+ if not is_interruption and obj.end_time is not None:
if cls is Test:
if is_failure and obj.status not in (statuses.FAILURE, statuses.ERROR):
obj.status = statuses.FAILURE
diff --git a/flask_app/blueprints/api/main.py b/flask_app/blueprints/api/main.py
index 016afded..460a846e 100644
--- a/flask_app/blueprints/api/main.py
+++ b/flask_app/blueprints/api/main.py
@@ -2,7 +2,7 @@
import logbook
import requests
-from flask import abort, current_app
+from flask import abort
from flask_simple_api import error_abort
from flask_security import current_user
@@ -11,7 +11,7 @@
from .blueprint import API
from ... import metrics
-from ...models import db, Session, Test, Comment, User, Role, Warning, Entity, TestVariation, TestMetadata
+from ...models import db, Session, Test, Comment, User, Role, Entity, TestVariation, TestMetadata
from ...utils import get_current_time, statuses
from ...utils.api_utils import requires_role
from ...utils.subjects import get_or_create_subject_instance
@@ -29,6 +29,8 @@
from . import errors # pylint: disable=unused-import
from . import labels # pylint: disable=unused-import
from . import quick_search # pylint: disable=unused-import
+from . import timing # pylint: disable=unused-import
+from . import warnings # pylint: disable=unused-import
from .blueprint import blueprint # pylint: disable=unused-import
@@ -172,6 +174,12 @@ def report_test_distributed(
return test
+@API
+def update_status_description(test_id: int, description: str):
+ Test.query.get_or_404(test_id).status_description = description
+ db.session.commit()
+
+
@API
def report_test_end(id: int, duration: (float, int)=None):
test = Test.query.get(id)
@@ -195,7 +203,7 @@ def report_test_end(id: int, duration: (float, int)=None):
elif not test.interrupted and not test.skipped:
test.status = statuses.SUCCESS
- db.session.add(test)
+ test.status_description = None
db.session.commit()
@@ -260,30 +268,6 @@ def _update_running_test_status(test_id, status, ignore_conflict=False, addition
abort(requests.codes.not_found)
-@API
-def add_warning(message: str, filename: str=None, lineno: int=None, test_id: int=None, session_id: int=None, timestamp: (int, float)=None):
- # pylint: disable=superfluous-parens
- if not ((test_id is not None) ^ (session_id is not None)):
- error_abort('Either session_id or test_id required')
- if session_id is not None:
- obj = Session.query.get_or_404(session_id)
- else:
- obj = Test.query.get_or_404(test_id)
- if timestamp is None:
- timestamp = get_current_time()
- if obj.num_warnings < current_app.config['MAX_WARNINGS_PER_ENTITY']:
- db.session.add(
- Warning(message=message, timestamp=timestamp, filename=filename, lineno=lineno, test_id=test_id, session_id=session_id))
- obj.num_warnings = type(obj).num_warnings + 1
- if session_id is None:
- obj.session.num_test_warnings = Session.num_test_warnings + 1
- db.session.add(obj.session)
-
- db.session.add(obj)
- db.session.commit()
-
-
-
@API(require_real_login=True)
def post_comment(comment: str, session_id: int=None, test_id: int=None):
if not (session_id is not None) ^ (test_id is not None):
diff --git a/flask_app/blueprints/api/quick_search.py b/flask_app/blueprints/api/quick_search.py
index 7e390009..2e51db9b 100644
--- a/flask_app/blueprints/api/quick_search.py
+++ b/flask_app/blueprints/api/quick_search.py
@@ -17,7 +17,10 @@ def quick_search(term: str):
(select email as key, CASE WHEN first_name is NULL THEN email
ELSE (first_name || ' ' || last_name || ' (' || email || ')') END as name, 'user' as type from "user")) u
- where u.name ilike :term limit :num_hits""").params(
+ where u.name ilike :term
+ ORDER BY name asc
+ limit :num_hits
+ """).params(
term='%{}%'.format(term),
num_hits=num_hits,
)
diff --git a/flask_app/blueprints/api/timing.py b/flask_app/blueprints/api/timing.py
new file mode 100644
index 00000000..927913d7
--- /dev/null
+++ b/flask_app/blueprints/api/timing.py
@@ -0,0 +1,41 @@
+import flux
+from ...models import Timing, db
+from ...utils.db_utils import json_object_agg
+from .blueprint import API
+
+from sqlalchemy import case
+
+NoneType = type(None)
+
+
+@API
+def report_timing_start(name: str, session_id: int, test_id: (int, NoneType)=None): # pylint: disable=bad-whitespace
+ db.session.execute(
+ '''
+ INSERT INTO timing(session_id, test_id, name, total)
+ VALUES (:session_id, :test_id, :name, :interval)
+ ON CONFLICT(id) DO UPDATE SET total = timing.total + EXCLUDED.total''',
+ {'session_id': session_id, 'test_id': test_id, 'name': name, 'interval': -flux.current_timeline.time()})
+ db.session.commit()
+
+
+@API
+def report_timing_end(name: str, session_id: int, test_id: (int, NoneType)=None): # pylint: disable=bad-whitespace
+ timing = Timing.query.filter_by(session_id=session_id, test_id=test_id, name=name).first_or_404()
+ timing.total = Timing.total + flux.current_timeline.time()
+ db.session.commit()
+
+
+@API
+def get_timings(session_id: (int, NoneType)=None, test_id: (int, NoneType)=None):
+ now = flux.current_timeline.time()
+ total_clause = case(
+ [
+ (Timing.total < 0, now - Timing.total)
+ ], else_=Timing.total)
+ kwargs = {'test_id': test_id}
+ if session_id is not None:
+ kwargs['session_id'] = session_id
+ query = db.session.query(json_object_agg(Timing.name, total_clause)).\
+ filter_by(**kwargs)
+ return query.scalar() or {}
diff --git a/flask_app/blueprints/api/warnings.py b/flask_app/blueprints/api/warnings.py
new file mode 100644
index 00000000..2903df61
--- /dev/null
+++ b/flask_app/blueprints/api/warnings.py
@@ -0,0 +1,37 @@
+# pylint: disable=bad-whitespace
+from flask import current_app
+from flask_simple_api import error_abort
+from .blueprint import API
+from ...models import Session, Warning, Test, db
+from ...utils import get_current_time
+
+
+@API
+def add_warning(message:str, filename:str=None, lineno:int=None, test_id:int=None, session_id:int=None, timestamp:(int,float)=None):
+ # pylint: disable=superfluous-parens
+ if not ((test_id is not None) ^ (session_id is not None)):
+ error_abort('Either session_id or test_id required')
+
+ if session_id is not None:
+ obj = Session.query.get_or_404(session_id)
+ else:
+ obj = Test.query.get_or_404(test_id)
+
+ if timestamp is None:
+ timestamp = get_current_time()
+
+ warning = Warning.query.filter_by(session_id=session_id, test_id=test_id, lineno=lineno, filename=filename, message=message).first()
+ if warning is None:
+ if obj.num_warnings < current_app.config['MAX_WARNINGS_PER_ENTITY']:
+ warning = Warning(message=message, timestamp=timestamp, filename=filename, lineno=lineno, test_id=test_id, session_id=session_id)
+ db.session.add(warning)
+ else:
+ warning.num_warnings = Warning.num_warnings + 1
+ warning.timestamp = timestamp
+
+ obj.num_warnings = type(obj).num_warnings + 1
+ if session_id is None:
+ obj.session.num_test_warnings = Session.num_test_warnings + 1
+ db.session.add(obj.session)
+
+ db.session.commit()
diff --git a/flask_app/blueprints/rest.py b/flask_app/blueprints/rest.py
index b2e389b9..2775da8a 100644
--- a/flask_app/blueprints/rest.py
+++ b/flask_app/blueprints/rest.py
@@ -85,6 +85,7 @@ def _get_iterator(self):
test_query_parser.add_argument('search', type=str, default=None)
test_query_parser.add_argument('after_index', type=int, default=None)
test_query_parser.add_argument('before_index', type=int, default=None)
+test_query_parser.add_argument('id', type=str, default=None)
@_resource('/tests', '/tests/', '/sessions//tests')
@@ -100,6 +101,9 @@ def _get_object_by_id(self, object_id):
def _get_iterator(self):
args = test_query_parser.parse_args()
+ if args.id is not None:
+ return _get_query_by_id_or_logical_id(self.MODEL, args.id)
+
if args.session_id is None:
args.session_id = request.view_args.get('session_id')
@@ -207,6 +211,7 @@ def _get_object_by_id_or_logical_id(model, object_id):
errors_query_parser = reqparse.RequestParser()
errors_query_parser.add_argument('session_id', default=None)
errors_query_parser.add_argument('test_id', default=None)
+errors_query_parser.add_argument('interruptions', default=False, type=bool)
@_resource('/warnings', '/warnings/')
@@ -231,10 +236,14 @@ def _get_iterator(self):
args = errors_query_parser.parse_args()
if args.session_id is not None:
- return Error.query.filter_by(session_id=parse_session_id(args.session_id))
+ query = Error.query.filter_by(session_id=parse_session_id(args.session_id))
elif args.test_id is not None:
- return Error.query.filter_by(test_id=parse_test_id(args.test_id))
- abort(requests.codes.bad_request)
+ query = Error.query.filter_by(test_id=parse_test_id(args.test_id))
+ else:
+ abort(requests.codes.bad_request)
+
+ query = query.filter_by(is_interruption=args.interruptions)
+ return query
@blueprint.route('/tracebacks/')
@@ -370,3 +379,19 @@ class MigrationsResource(ModelResource):
'total_num_objects',
'remaining_num_objects'
]
+
+
+@_resource('/cases', '/cases/')
+class CaseResource(ModelResource):
+
+ MODEL = models.TestInformation
+ DEFAULT_SORT = (models.TestInformation.name, models.TestInformation.file_name, models.TestInformation.class_name)
+
+ def _get_iterator(self):
+ search = request.args.get('search')
+ if search:
+ returned = get_orm_query_from_search_string('case', search, abort_on_syntax_error=True)
+ else:
+ returned = super()._get_iterator()
+ returned = returned.filter(~self.MODEL.file_name.like('/%'))
+ return returned
diff --git a/flask_app/config.py b/flask_app/config.py
index abf280d6..7ed9d810 100644
--- a/flask_app/config.py
+++ b/flask_app/config.py
@@ -16,8 +16,15 @@ def get_runtime_config_private_dict():
'debug': current_app.config['DEBUG'],
'version': __version__,
'setup_needed': True,
- 'display_names': current_app.config['display_names'],
- 'test_metadata_links': current_app.config['test_metadata_links'],
+ **{
+ key: current_app.config[key]
+ for key in (
+ 'display_names',
+ 'test_metadata_links',
+ 'session_metadata_display_items',
+ 'test_metadata_display_items',
+ )
+ }
}
returned.update(
(cfg.key, cfg.value)
diff --git a/flask_app/models.py b/flask_app/models.py
index e576e395..4e7d8274 100644
--- a/flask_app/models.py
+++ b/flask_app/models.py
@@ -150,6 +150,7 @@ class Session(db.Model, TypenameMixin, StatusPredicatesMixin, HasSubjectsMixin,
num_error_tests = db.Column(db.Integer, default=0)
num_skipped_tests = db.Column(db.Integer, default=0)
num_finished_tests = db.Column(db.Integer, default=0)
+ num_interruptions = db.Column(db.Integer, default=0)
num_interrupted_tests = db.Column(db.Integer, server_default="0")
num_warnings = db.Column(db.Integer, nullable=False, server_default="0")
num_test_warnings = db.Column(db.Integer, nullable=False, server_default="0")
@@ -339,7 +340,7 @@ class TestInformation(db.Model):
@classmethod
def get_typename(cls):
- return 'test_info'
+ return 'case'
@@ -451,6 +452,7 @@ def last_comment(self):
is_interactive = db.Column(db.Boolean, server_default='FALSE')
status = db.Column(db.String(20), nullable=False, default=statuses.STARTED)
+ status_description = db.Column(db.String(1024), nullable=True)
skip_reason = db.Column(db.Text(), nullable=True)
@@ -458,6 +460,7 @@ def last_comment(self):
num_failures = db.Column(db.Integer, default=0)
num_comments = db.Column(db.Integer, default=0)
num_warnings = db.Column(db.Integer, nullable=False, server_default="0")
+ num_interruptions = db.Column(db.Integer, default=0)
__table_args__ = (
Index('ix_test_start_time', start_time.desc()),
@@ -513,6 +516,7 @@ class Error(db.Model, TypenameMixin):
message = db.Column(db.Text())
timestamp = db.Column(db.Float, default=get_current_time)
is_failure = db.Column(db.Boolean, default=False)
+ is_interruption = db.Column(db.Boolean, default=False)
test_id = db.Column(db.ForeignKey('test.id', ondelete='CASCADE'), nullable=True, index=True)
session_id = db.Column(db.ForeignKey('session.id', ondelete='CASCADE'), nullable=True, index=True)
@@ -531,8 +535,13 @@ class Warning(db.Model, TypenameMixin):
filename = db.Column(db.String(2048), nullable=True)
lineno = db.Column(db.Integer, nullable=True)
timestamp = db.Column(db.Float, nullable=False)
+ num_warnings = db.Column(db.Integer, nullable=True, default=1)
-
+ __table_args__ = (
+ Index('ix_warning_details',
+ session_id, test_id, filename, lineno,
+ postgresql_where=(session_id == None)), # pylint: disable=singleton-comparison
+ )
roles_users = db.Table('roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id', ondelete='CASCADE')),
@@ -680,3 +689,19 @@ class BackgroundMigration(db.Model):
@classmethod
def get_typename(cls):
return 'migration'
+
+
+class Timing(db.Model):
+
+ id = db.Column(db.Integer, primary_key=True)
+ name = db.Column(db.String(1024), nullable=False)
+ total = db.Column(db.Float(), default=0)
+
+ session_id = db.Column(db.ForeignKey('session.id', ondelete='CASCADE'), nullable=False)
+ test_id = db.Column(db.ForeignKey('test.id', ondelete='CASCADE'), nullable=True)
+
+ __table_args__= (
+ Index('ix_timing_test', test_id, name, postgresql_where=(test_id != None), unique=True),
+ Index('ix_timing_session', session_id, name),
+ Index('ix_timing_session_no_test', session_id, name, postgresql_where=(test_id == None), unique=True), # pylint: disable=singleton-comparison
+ )
diff --git a/flask_app/search/logic.py b/flask_app/search/logic.py
index 7760e013..9e2c1b4d 100644
--- a/flask_app/search/logic.py
+++ b/flask_app/search/logic.py
@@ -1,18 +1,21 @@
-import time
-import threading
import operator
+import threading
+import time
from flask import current_app
from sqlalchemy import func
+
from psycopg2.extras import DateTimeTZRange
-from ..models import Test, TestInformation, User, Session, db, session_label, Label, session_subject, SubjectInstance, Subject, Entity, session_entity, ProductVersion, ProductRevision, SessionMetadata
from . import value_parsers
+from ..filters import builders as filter_builders
+from ..models import (Entity, Label, Product, ProductRevision, ProductVersion, Session,
+ SessionMetadata, Subject, SubjectInstance, Test,
+ TestInformation, User, db, session_entity, session_label,
+ session_subject)
from .exceptions import UnknownField
from .helpers import only_ops
-from ..filters import builders as filter_builders
-
_current = threading.local()
@@ -29,7 +32,7 @@ class SearchContext(object):
def get_base_query(self):
raise NotImplementedError() # pragma: no cover
- def get_fallback_filter(self, search_term):
+ def get_fallback_filter(self, term):
raise NotImplementedError() # pragma: no cover
def __enter__(self):
@@ -45,6 +48,8 @@ def get_for_type(cls, objtype):
return TestSearchContext()
if objtype is Session or (isinstance(objtype, str) and objtype.lower() == 'session'):
return SessionSearchContext()
+ if objtype is TestInformation or (isinstance(objtype, str) and objtype.lower() == 'case'):
+ return TestCaseSearchContext()
raise NotImplementedError() # pragma: no cover
def search__start_time(self, op, value):
@@ -149,6 +154,11 @@ def search__product_version(self, op, value):
subquery = db.session.query(session_subject).join(SubjectInstance).join(ProductRevision).join(ProductVersion).filter(ProductVersion.version == value, session_subject.c.session_id == Test.session_id).exists().correlate(Test)
return _negate_maybe(op, subquery)
+ @only_ops(['=', '!='])
+ def search__product_type(self, op, value):
+ subquery = db.session.query(session_subject).join(SubjectInstance).join(ProductRevision).join(Product).filter(Product.name == value, session_subject.c.session_id == Test.session_id).exists().correlate(Test)
+ return _negate_maybe(op, subquery)
+
@only_ops(['=', '!='])
def search__label(self, op, value):
labels = Label.query.filter(Label.name==value).all()
@@ -212,6 +222,11 @@ def search__product_version(self, op, value):
subquery = db.session.query(session_subject).join(SubjectInstance).join(ProductRevision).join(ProductVersion).filter(ProductVersion.version == value, session_subject.c.session_id == Session.id).exists().correlate(Session)
return _negate_maybe(op, subquery)
+ @only_ops(['=', '!='])
+ def search__product(self, op, value):
+ subquery = db.session.query(session_subject).join(SubjectInstance).join(ProductRevision).join(ProductVersion).join(Product).filter(Product.name == value, session_subject.c.session_id == Session.id).exists().correlate(Session)
+ return _negate_maybe(op, subquery)
+
@only_ops(['='])
def search__test(self, op, value): # pylint: disable=unused-argument
return db.session.query(Test).join(TestInformation).filter(Test.session_id == Session.id, TestInformation.name == value).exists().correlate(Session)
@@ -236,6 +251,26 @@ def _metadata_query(self, op, key, subkey, value):
return _negate_maybe(op, returned)
+class TestCaseSearchContext(SearchContext):
+
+ MODEL = TestInformation
+ SEARCHABLE_FIELDS = {
+ 'id': True,
+ }
+
+ def get_base_query(self):
+ return TestInformation.query
+
+ def get_fallback_filter(self, term):
+ return TestInformation.name.contains(term) | TestInformation.file_name.contains(term) | TestInformation.class_name.contains(term)
+
+ @only_ops(['=', '!=', '~'])
+ def search__file_name(self, op, value):
+ field = self.MODEL.file_name
+ return _negate_maybe(op, op.func(field, value))
+
+
+
def _negate_maybe(op, query):
if op.op == '!=':
diff --git a/flask_app/search/search.py b/flask_app/search/search.py
index 6b94e496..b19b1ae8 100644
--- a/flask_app/search/search.py
+++ b/flask_app/search/search.py
@@ -15,7 +15,7 @@ def get_orm_query_from_search_string(object_type, query, abort_on_syntax_error=F
except SearchSyntaxError as e:
if not abort_on_syntax_error:
raise
- error_abort('Syntax Error', code=requests.codes.bad_request, extra={'errors': [{'detail': e.reason}]})
+ error_abort('Syntax Error', code=requests.codes.bad_request, extra={'errors': [{'syntax_error': e.reason}]})
return returned
__all__ = ['get_orm_query_from_search_string']
diff --git a/flask_app/search/syntax.py b/flask_app/search/syntax.py
index 8ec310e9..e6a96ac2 100644
--- a/flask_app/search/syntax.py
+++ b/flask_app/search/syntax.py
@@ -104,7 +104,7 @@ def _handle_logical_argument(arg):
identifier + RPAR).setParseAction(_handle_func_call)
-atom = func_call | identifier | (DQUOTE + Word(alphanums_plus + ' ') + DQUOTE) | (SQUOTE + Word(alphanums_plus + ' ') + SQUOTE)
+atom = func_call | identifier | (DQUOTE + Word(alphanums_plus + ' <>') + DQUOTE) | (SQUOTE + Word(alphanums_plus + ' <>') + SQUOTE)
binop = oneOf(list(_OPERATORS))
and_ = Keyword("and", caseless=True)
diff --git a/flask_app/utils/rendering.py b/flask_app/utils/rendering.py
index cb2782a3..5516af63 100644
--- a/flask_app/utils/rendering.py
+++ b/flask_app/utils/rendering.py
@@ -18,7 +18,7 @@ def render_api_object(obj, only_fields=None, extra_fields=None, is_single=False)
except NotImplementedError:
continue
- if value is None and python_type is bool and column.default is not None:
+ if value is None and python_type in (bool, int) and column.default is not None:
value = column.default.arg
returned[field_name] = value
diff --git a/integration_tests/ui/conftest.py b/integration_tests/ui/conftest.py
index 8c4df03d..834cb22a 100644
--- a/integration_tests/ui/conftest.py
+++ b/integration_tests/ui/conftest.py
@@ -7,14 +7,28 @@
@pytest.fixture(scope='session')
def recorded_session(integration_url):
- session_id = run_suite(integration_url)
+ return _get_recorded_session(integration_url)
+
+
+@pytest.fixture(scope='session')
+def recorded_interrupted_session(integration_url):
+ return _get_recorded_session(integration_url, name='interrupted', interrupt=True)
+
+
+def _get_recorded_session(integration_url, **kwargs):
+ session_id = run_suite(integration_url, **kwargs)
return Munch(id=session_id)
+
@pytest.fixture
def ui_session(recorded_session, ui): # pylint: disable=unused-argument
assert recorded_session.id is not None
ui.driver.refresh()
- return ui.driver.find_element_by_xpath(f"//a[@href='/#/sessions/{recorded_session.id}']")
+ return ui.find_session_link(recorded_session)
+
+@pytest.fixture
+def ui_interrupted_session(recorded_interrupted_session, ui):
+ return ui.find_session_link(recorded_interrupted_session)
@pytest.fixture
def ui(has_selenium, selenium, integration_url): # pylint: disable=unused-argument
@@ -84,3 +98,7 @@ def logout(self):
def assert_no_element(self, css_selector):
assert self.driver.find_elements_by_css_selector(css_selector) == []
+
+ def find_session_link(self, session):
+ self.driver.refresh()
+ return self.driver.find_element_by_xpath(f"//a[@href='/#/sessions/{session.id}']")
diff --git a/integration_tests/ui/test_cases_view.py b/integration_tests/ui/test_cases_view.py
new file mode 100644
index 00000000..d170eeb1
--- /dev/null
+++ b/integration_tests/ui/test_cases_view.py
@@ -0,0 +1,2 @@
+def test_test_cases_view(ui):
+ ui.driver.find_element_by_link_text('Test Cases').click()
diff --git a/integration_tests/ui/test_interrupted_sessions.py b/integration_tests/ui/test_interrupted_sessions.py
new file mode 100644
index 00000000..a133e1f5
--- /dev/null
+++ b/integration_tests/ui/test_interrupted_sessions.py
@@ -0,0 +1,13 @@
+def test_session_interruption(ui, ui_interrupted_session):
+ ui_interrupted_session.click()
+ interrupted_test = ui.driver.find_element_by_css_selector('a.test')
+ css_classes = interrupted_test.get_attribute('class')
+ assert 'success' not in css_classes
+ assert 'fail' not in css_classes
+ interrupted_test.click()
+ assert 'errors' not in ui.driver.current_url
+ ui.driver.find_element_by_partial_link_text('Interruptions').click()
+ error_boxes = ui.driver.find_elements_by_class_name('error-box')
+ assert len(error_boxes) == 1
+ [err] = error_boxes
+ assert 'interruption' in err.get_attribute('class')
diff --git a/integration_tests/ui/test_sessions.py b/integration_tests/ui/test_sessions.py
new file mode 100644
index 00000000..25568ff5
--- /dev/null
+++ b/integration_tests/ui/test_sessions.py
@@ -0,0 +1,5 @@
+from yarl import URL
+
+def test_session_not_found(ui):
+ ui.driver.get(str(URL(ui.driver.current_url).with_fragment('/sessions/blap')))
+ assert ui.driver.find_element_by_css_selector(".error-details h1").text.lower() == 'not found'
diff --git a/integration_tests/utils.py b/integration_tests/utils.py
index 9762f717..9460152c 100644
--- a/integration_tests/utils.py
+++ b/integration_tests/utils.py
@@ -10,7 +10,7 @@
from slash.frontend.slash_run import slash_run
-def run_suite(backslash_url, name='simple'):
+def run_suite(backslash_url, name='simple', interrupt=False):
session_id = None
@@ -26,6 +26,10 @@ def session_start():
plugins.manager.install(plugin, activate=True)
stack.callback(plugins.manager.uninstall, plugin)
- slash_run([os.path.join('_sample_suites', name), '--session-label', 'testing'])
+ try:
+ slash_run([os.path.join('_sample_suites', name), '--session-label', 'testing'])
+ except KeyboardInterrupt:
+ if not interrupt:
+ raise
return session_id
diff --git a/migrations/versions/4af90bfc558d_add_error_is_interruption.py b/migrations/versions/4af90bfc558d_add_error_is_interruption.py
new file mode 100644
index 00000000..f63f0a5a
--- /dev/null
+++ b/migrations/versions/4af90bfc558d_add_error_is_interruption.py
@@ -0,0 +1,26 @@
+"""Add Error.is_interruption
+
+Revision ID: 4af90bfc558d
+Revises: f0bfc3f425c7
+Create Date: 2017-10-19 13:58:05.413915
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '4af90bfc558d'
+down_revision = 'f0bfc3f425c7'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('error', sa.Column('is_interruption', sa.Boolean(), nullable=True))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_column('error', 'is_interruption')
+ # ### end Alembic commands ###
diff --git a/migrations/versions/534d739192db_add_interruption_counters.py b/migrations/versions/534d739192db_add_interruption_counters.py
new file mode 100644
index 00000000..0538eda6
--- /dev/null
+++ b/migrations/versions/534d739192db_add_interruption_counters.py
@@ -0,0 +1,28 @@
+"""Add interruption counters
+
+Revision ID: 534d739192db
+Revises: 4af90bfc558d
+Create Date: 2017-10-19 15:21:47.063851
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '534d739192db'
+down_revision = '4af90bfc558d'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('session', sa.Column('num_interruptions', sa.Integer(), nullable=True))
+ op.add_column('test', sa.Column('num_interruptions', sa.Integer(), nullable=True))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_column('test', 'num_interruptions')
+ op.drop_column('session', 'num_interruptions')
+ # ### end Alembic commands ###
diff --git a/migrations/versions/95dad744de97_add_test_status_description.py b/migrations/versions/95dad744de97_add_test_status_description.py
new file mode 100644
index 00000000..251643de
--- /dev/null
+++ b/migrations/versions/95dad744de97_add_test_status_description.py
@@ -0,0 +1,26 @@
+"""Add test.status_description
+
+Revision ID: 95dad744de97
+Revises: 7de4c23aaddd
+Create Date: 2017-10-09 13:03:19.677995
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '95dad744de97'
+down_revision = '7de4c23aaddd'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('test', sa.Column('status_description', sa.String(length=1024), nullable=True))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_column('test', 'status_description')
+ # ### end Alembic commands ###
diff --git a/migrations/versions/ad9b81f99615_add_timing_metrics.py b/migrations/versions/ad9b81f99615_add_timing_metrics.py
new file mode 100644
index 00000000..34867a9e
--- /dev/null
+++ b/migrations/versions/ad9b81f99615_add_timing_metrics.py
@@ -0,0 +1,41 @@
+"""Add timing metrics
+
+Revision ID: ad9b81f99615
+Revises: 95dad744de97
+Create Date: 2017-10-10 14:40:42.445701
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = 'ad9b81f99615'
+down_revision = '95dad744de97'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.create_table('timing',
+ sa.Column('id', sa.Integer(), nullable=False),
+ sa.Column('name', sa.String(length=1024), nullable=False),
+ sa.Column('total', sa.Float(), nullable=True),
+ sa.Column('session_id', sa.Integer(), nullable=False),
+ sa.Column('test_id', sa.Integer(), nullable=True),
+ sa.ForeignKeyConstraint(['session_id'], ['session.id'], ondelete='CASCADE'),
+ sa.ForeignKeyConstraint(['test_id'], ['test.id'], ondelete='CASCADE'),
+ sa.PrimaryKeyConstraint('id')
+ )
+ op.create_index('ix_timing_session', 'timing', ['session_id', 'name'], unique=False)
+ op.create_index('ix_timing_session_no_test', 'timing', ['session_id', 'name'], unique=True, postgresql_where=sa.text('test_id IS NULL'))
+ op.create_index('ix_timing_test', 'timing', ['test_id', 'name'], unique=True, postgresql_where=sa.text('test_id IS NOT NULL'))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_index('ix_timing_test', table_name='timing')
+ op.drop_index('ix_timing_session_no_test', table_name='timing')
+ op.drop_index('ix_timing_session', table_name='timing')
+ op.drop_table('timing')
+ # ### end Alembic commands ###
diff --git a/migrations/versions/f0bfc3f425c7_add_warning_deduplication.py b/migrations/versions/f0bfc3f425c7_add_warning_deduplication.py
new file mode 100644
index 00000000..c9826b85
--- /dev/null
+++ b/migrations/versions/f0bfc3f425c7_add_warning_deduplication.py
@@ -0,0 +1,28 @@
+"""Add warning deduplication
+
+Revision ID: f0bfc3f425c7
+Revises: ad9b81f99615
+Create Date: 2017-10-15 13:37:53.475324
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = 'f0bfc3f425c7'
+down_revision = 'ad9b81f99615'
+
+from alembic import op
+import sqlalchemy as sa
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('warning', sa.Column('num_warnings', sa.Integer(), nullable=True))
+ op.create_index('ix_warning_details', 'warning', ['session_id', 'test_id', 'filename', 'lineno'], unique=False, postgresql_where=sa.text('session_id IS NULL'))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_index('ix_warning_details', table_name='warning')
+ op.drop_column('warning', 'num_warnings')
+ # ### end Alembic commands ###
diff --git a/tests/conftest.py b/tests/conftest.py
index 8cf8abf6..c6eeba1f 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -408,8 +408,6 @@ def invalid_variation(request):
return request.param
-
-
@pytest.fixture
def test_info(file_name, test_name, class_name):
return {'file_name': file_name, 'name': test_name, 'class_name': class_name}
@@ -423,6 +421,9 @@ def error_container(request, client):
def label_container(request, client):
return _get_api_object_by_typename(client=client, typename=request.param)
+@pytest.fixture(params=['session', 'test'])
+def timing_container(request, client):
+ return _get_api_object_by_typename(client=client, typename=request.param)
@pytest.fixture(params=['session', 'test'])
def related_entity_container(request, client):
diff --git a/tests/test_test_api.py b/tests/test_test_api.py
index 9416d560..1e24c977 100644
--- a/tests/test_test_api.py
+++ b/tests/test_test_api.py
@@ -11,6 +11,15 @@ def test_test_information_filename(started_test, file_name):
assert started_test.info['file_name'] == file_name
+def test_test_status_description(started_test):
+ assert started_test.status_description is None
+ description = 'blap'
+ started_test.update_status_description(description)
+ assert started_test.refresh().status_description == description
+ started_test.report_end()
+ assert started_test.refresh().status_description is None
+
+
def test_test_information_classname(started_test, class_name):
assert started_test.info['class_name'] == class_name
diff --git a/tests/test_timing_api.py b/tests/test_timing_api.py
new file mode 100644
index 00000000..ac8dbd7e
--- /dev/null
+++ b/tests/test_timing_api.py
@@ -0,0 +1,29 @@
+import flux
+import pytest
+
+
+def test_timing_start_end(timing_container, timing_action):
+ assert timing_container.get_timings() == {}
+ start_time = flux.current_timeline.time()
+ timing_container.report_timing_start(timing_action)
+ _validate_timing_ongoing(timing_container, timing_action)
+ timing_container.report_timing_end(timing_action)
+ total_time = flux.current_timeline.time() - start_time
+ assert timing_container.get_timings()[timing_action] == total_time
+
+
+def _validate_timing_ongoing(timing_container, timing_action):
+ prev = None
+ for _ in range(3):
+ timings = timing_container.get_timings()
+ assert len(timings) == 1
+ if prev is not None:
+ assert 0 < prev < timings[timing_action]
+ else:
+ prev = timings[timing_action]
+ assert prev > 0
+ flux.current_timeline.sleep(1)
+
+@pytest.fixture
+def timing_action():
+ return 'waiting for something'
diff --git a/tests/test_warnings.py b/tests/test_warnings.py
index ba36f2c3..bf478ead 100644
--- a/tests/test_warnings.py
+++ b/tests/test_warnings.py
@@ -13,6 +13,7 @@ def test_add_warnings(warning_container, filename, lineno, message, timestamp):
assert fetched.lineno == lineno
assert fetched.timestamp == timestamp
assert fetched.filename == filename
+ assert fetched.num_warnings == 1
if isinstance(warning_container, test.Test):
assert warning_container.get_session().num_test_warnings == 1
assert warning_container.get_session().num_warnings == 0
@@ -27,14 +28,25 @@ def test_max_warnings_per_entity(warning_container, message, webapp):
max_warnings = 3
webapp.app.config['MAX_WARNINGS_PER_ENTITY'] = max_warnings
- for _ in range(max_warnings + 1):
- warning_container.add_warning(message=message)
+ for i in range(max_warnings + 1):
+ warning_container.add_warning(message=f'{message}{i}' )
warning_container.refresh()
assert warning_container.num_warnings == max_warnings + 1
assert len(warning_container.query_warnings().all()) == max_warnings
+
+def test_add_warning_twice(warning_container, filename, lineno, message, timestamp):
+ num_warnings = 5
+ for i in range(num_warnings):
+ warning_container.add_warning(
+ filename=filename, lineno=lineno, message=message,
+ timestamp=timestamp + i)
+ [fetched] = warning_container.query_warnings()
+ assert fetched.num_warnings == num_warnings
+
+
@pytest.fixture
def filename():
return 'some_filename.py'
diff --git a/webapp/.ember-cli b/webapp/.ember-cli
index 927fabe4..b4934f38 100644
--- a/webapp/.ember-cli
+++ b/webapp/.ember-cli
@@ -5,6 +5,6 @@
Setting `disableAnalytics` to true will prevent any data from being sent.
*/
- "disableAnalytics": false,
+ "disableAnalytics": true,
"usePods": true
}
diff --git a/webapp/.gitignore b/webapp/.gitignore
index 5ad14dd6..8fa39a63 100644
--- a/webapp/.gitignore
+++ b/webapp/.gitignore
@@ -14,4 +14,10 @@
/coverage/*
/libpeerconnection.log
npm-debug.log*
+yarn-error.log
testem.log
+
+# ember-try
+.node_modules.ember-try/
+bower.json.ember-try
+package.json.ember-try
diff --git a/webapp/app/app.js b/webapp/app/app.js
index cfc235b5..a706aaff 100644
--- a/webapp/app/app.js
+++ b/webapp/app/app.js
@@ -1,11 +1,9 @@
-import Ember from "ember";
-import Resolver from "./resolver";
-import loadInitializers from "ember-load-initializers";
-import config from "./config/environment";
+import Application from '@ember/application';
+import Resolver from './resolver';
+import loadInitializers from 'ember-load-initializers';
+import config from './config/environment';
-let App;
-
-App = Ember.Application.extend({
+const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
diff --git a/webapp/app/application/route.js b/webapp/app/application/route.js
index 8fa90943..fd1d6d82 100644
--- a/webapp/app/application/route.js
+++ b/webapp/app/application/route.js
@@ -41,10 +41,10 @@ export default Ember.Route.extend(ApplicationRouteMixin, {
load_current_user() {
let self = this;
if (self.get("session.data.authenticated")) {
- return retry(() => {
- return self.store.queryRecord("user", {current_user: true});
- }).then(function(u) {
- self.set("session.data.authenticated.current_user", u);
+ return retry(async function() {
+ let users = await self.store.query("user", {current_user: true});
+ let user = await users.get('firstObject');
+ self.set("session.data.authenticated.current_user", user);
return self.get("user_prefs").get_all();
});
}
diff --git a/webapp/app/application/template.hbs b/webapp/app/application/template.hbs
index c8042373..9d6a324e 100644
--- a/webapp/app/application/template.hbs
+++ b/webapp/app/application/template.hbs
@@ -22,7 +22,8 @@
{{#if u.email }}
{{#nav-link to="sessions"}}Sessions{{/nav-link}}
- {{#nav-link to="tests"}}Tests{{/nav-link}}
+ {{#nav-link to="tests"}}Tests{{/nav-link}}
+ {{#nav-link to="cases"}}Test Cases{{/nav-link}}
{{#nav-link to="subjects"}}{{capitalize (pluralize (display_name "subject"))}}{{/nav-link}}
{{#nav-link to="users"}}Users{{/nav-link}}
{{# if (can "admin") }}
diff --git a/webapp/app/cases/controller.js b/webapp/app/cases/controller.js
new file mode 100644
index 00000000..436b56a6
--- /dev/null
+++ b/webapp/app/cases/controller.js
@@ -0,0 +1,13 @@
+import Ember from "ember";
+import config from "../config/environment";
+import SearchControllerMixin from "./../mixins/search-controller";
+
+export default Ember.Controller.extend(SearchControllerMixin, {
+ queryParams: ["search", "page", "page_size"],
+
+ page: 1,
+ available_page_sizes: config.APP.available_page_sizes,
+ page_size: config.APP.default_page_size,
+ searching: false,
+
+});
diff --git a/webapp/app/cases/route.js b/webapp/app/cases/route.js
new file mode 100644
index 00000000..cb753780
--- /dev/null
+++ b/webapp/app/cases/route.js
@@ -0,0 +1,42 @@
+import Ember from 'ember';
+
+import PaginatedRoute from "../mixins/paginated-route";
+import ComplexModelRoute from "../mixins/complex-model-route";
+import SearchRouteMixin from "../mixins/search-route";
+import AuthenticatedRouteMixin
+ from "ember-simple-auth/mixins/authenticated-route-mixin";
+
+
+export default Ember.Route.extend(
+ PaginatedRoute, AuthenticatedRouteMixin,
+ ComplexModelRoute, SearchRouteMixin, {
+
+
+ queryParams: {
+ filter: {
+ replace: true,
+ refreshModel: true
+ },
+ page: {
+ refreshModel: true
+ },
+ page_size: {
+ refreshModel: true
+ },
+ search: {
+ refreshModel: true,
+ },
+ },
+
+ model({search, page, page_size}) {
+ let query = { page: page, page_size: page_size, search: search};
+
+ return Ember.RSVP.hash({
+ search: search,
+ cases: this.store.query('case', query),
+ }).catch(function(exception) {
+ return {error: exception.errors.get('firstObject')};
+ });
+ },
+
+});
diff --git a/webapp/app/cases/template.hbs b/webapp/app/cases/template.hbs
new file mode 100644
index 00000000..9c70082a
--- /dev/null
+++ b/webapp/app/cases/template.hbs
@@ -0,0 +1,9 @@
+{{#tool-bar}}
+ {{#search-bar search=(mut search) searching=searching}}
+ {{/search-bar}}
+{{/tool-bar}}
+{{#if error}}
+ {{request-error-details error=error}}
+{{else}}
+ {{query-results results=cases meta=cases.meta page=(mut page) use_item_box=true}}
+{{/if}}
diff --git a/webapp/app/components/case-item/component.js b/webapp/app/components/case-item/component.js
new file mode 100644
index 00000000..5d0e3327
--- /dev/null
+++ b/webapp/app/components/case-item/component.js
@@ -0,0 +1,6 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ classNames: ["query-item"],
+
+});
diff --git a/webapp/app/components/case-item/template.hbs b/webapp/app/components/case-item/template.hbs
new file mode 100644
index 00000000..8f66fe54
--- /dev/null
+++ b/webapp/app/components/case-item/template.hbs
@@ -0,0 +1,7 @@
+
+
{{item.name}}
+
{{#link-to "cases" (query-params search=(concat 'file_name="' item.file_name '"'))}} {{item.file_name}}{{/link-to}}
+
+ {{#link-to "tests" (query-params search=(concat 'test_info_id=' item.id))}}{{/link-to}}
+
+
diff --git a/webapp/app/components/error-box/component.js b/webapp/app/components/error-box/component.js
index 5ec94e1c..47851f45 100644
--- a/webapp/app/components/error-box/component.js
+++ b/webapp/app/components/error-box/component.js
@@ -2,8 +2,10 @@ import Ember from "ember";
export default Ember.Component.extend({
expanded: false,
+ error: null,
- classNameBindings: ['expanded'],
+ classNames: ['error-box'],
+ classNameBindings: ['expanded', 'error.is_interruption:interruption'],
actions: {
toggle_expanded() {
diff --git a/webapp/app/components/error-box/component.scss b/webapp/app/components/error-box/component.scss
index 6654e9b3..053d8343 100644
--- a/webapp/app/components/error-box/component.scss
+++ b/webapp/app/components/error-box/component.scss
@@ -2,6 +2,11 @@
margin-top: 0.5em;
border: 1px solid #ddd;
border-left-color: $brand-danger;
+
+ &.interruption {
+ border-left-color: gray;
+ }
+
border-left-width: 7px;
.copy-btn {
diff --git a/webapp/app/components/moment-time/template.hbs b/webapp/app/components/moment-time/template.hbs
index eac4ad39..2dd3e2b2 100644
--- a/webapp/app/components/moment-time/template.hbs
+++ b/webapp/app/components/moment-time/template.hbs
@@ -1 +1 @@
-{{time_string}}
+{{~time_string~}}
diff --git a/webapp/app/components/request-error-details/component.js b/webapp/app/components/request-error-details/component.js
new file mode 100644
index 00000000..67fd74c3
--- /dev/null
+++ b/webapp/app/components/request-error-details/component.js
@@ -0,0 +1,6 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ classNames: ['container'],
+ error: null,
+});
diff --git a/webapp/app/components/request-error-details/template.hbs b/webapp/app/components/request-error-details/template.hbs
new file mode 100644
index 00000000..8635b26c
--- /dev/null
+++ b/webapp/app/components/request-error-details/template.hbs
@@ -0,0 +1,19 @@
+
+ {{#if error.syntax_errorr}}
+ Search syntax error
+{{else}}
+ {{#each-in error as |name value|}}
+ {{#with (capitalize (undasherize name)) as |display_name|}}
+ {{#with (capitalize (undasherize value)) as |display_value|}}
+
+ {{#if (eq display_name display_value)}}
+ {{display_name}}
+ {{else}}
+ {{capitalize (undasherize name)}}: {{value}}
+ {{/if}}
+
+ {{/with}}
+ {{/with}}
+ {{/each-in}}
+{{/if}}
+
diff --git a/webapp/app/components/search-bar/component.js b/webapp/app/components/search-bar/component.js
index d2828c8c..aec0f4f8 100644
--- a/webapp/app/components/search-bar/component.js
+++ b/webapp/app/components/search-bar/component.js
@@ -7,19 +7,28 @@ export default Ember.Component.extend({
entered_search: null,
search: null,
show_help: true,
+ update_entered_search: true,
init() {
this._super(...arguments);
this.set('entered_search', this.get('search'));
},
+ on_entered_search_updated: Ember.observer('search', function() {
+ if (this.get('update_entered_search')) {
+ this.set('entered_search', this.get('search'));
+ }
+ }),
+
actions: {
search() {
let entered_search = this.get("entered_search");
if (entered_search !== this.get('search')) {
this.set('searching', true);
}
+ this.set("update_entered_search", false);
this.set("search", entered_search);
+ this.set("update_entered_search", true);
}
}
});
diff --git a/webapp/app/components/session-overview/component.js b/webapp/app/components/session-overview/component.js
index cb43598b..e160e9c2 100644
--- a/webapp/app/components/session-overview/component.js
+++ b/webapp/app/components/session-overview/component.js
@@ -6,6 +6,12 @@ export default Ember.Component.extend({
session_model: null,
user: null,
metadata: null,
+ runtime_config: Ember.inject.service(),
+
+ metadata_display_items: function() {
+ let returned = this.get('runtime_config').get_cached('session_metadata_display_items');
+ return returned;
+ }.property(),
not_complete: Ember.computed.and(
"session_model.finished_running",
diff --git a/webapp/app/components/session-overview/template.hbs b/webapp/app/components/session-overview/template.hbs
index 298084a8..61b8264a 100644
--- a/webapp/app/components/session-overview/template.hbs
+++ b/webapp/app/components/session-overview/template.hbs
@@ -75,7 +75,7 @@
{{#link-to 'subject' subject.name}}
{{subject.name}}
{{/link-to}}
- {{subject.version}}
+ {{subject.version}}q
{{/each}}
@@ -90,3 +90,13 @@
{{item-label label=label}}
{{/each}}
+
+{{#each metadata_display_items as |item|}}
+ {{#with (get metadata item.key) as |value|}}
+ {{#if value}}
+
+ {{item.name}}: {{get metadata item.key}}
+
+ {{/if}}
+ {{/with}}
+{{/each}}
diff --git a/webapp/app/components/user-item/component.js b/webapp/app/components/user-item/component.js
new file mode 100644
index 00000000..c0ee701e
--- /dev/null
+++ b/webapp/app/components/user-item/component.js
@@ -0,0 +1,6 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ classNames: ["query-item"],
+ user: Ember.computed.alias('item'),
+});
diff --git a/webapp/app/components/user-item/template.hbs b/webapp/app/components/user-item/template.hbs
new file mode 100644
index 00000000..b9b027af
--- /dev/null
+++ b/webapp/app/components/user-item/template.hbs
@@ -0,0 +1,15 @@
+
+
+ {{users/user-avatar user=user}}
+
+ {{#link-to "user.sessions" user.email}}{{user.display_name}}{{/link-to}}
+
+
+
+ {{#if user.last_activity}}
+ Last active {{moment-time ago=user.last_activity}}
+ {{else}}
+ Last active: N/A
+ {{/if}}
+
+
diff --git a/webapp/app/components/warning-box/template.hbs b/webapp/app/components/warning-box/template.hbs
index c5a71890..b867cf28 100644
--- a/webapp/app/components/warning-box/template.hbs
+++ b/webapp/app/components/warning-box/template.hbs
@@ -1,4 +1,7 @@
{{moment-time unix=warning.timestamp}} - From {{warning.filename}}, line {{warning.lineno}}
+ {{#if (gt warning.num_warnings 1) }}
+ (Repeated {{warning.num_warnings}} times)
+ {{/if}}
{{warning.message}}
diff --git a/webapp/app/mixins/polling-route.js b/webapp/app/mixins/polling-route.js
index d9bfe2a2..a8b0a5e6 100644
--- a/webapp/app/mixins/polling-route.js
+++ b/webapp/app/mixins/polling-route.js
@@ -21,9 +21,4 @@ export default Ember.Mixin.create({
}
}).on("init"),
- actions: {
- error: function(err) {
- return err.not_found;
- }
- }
});
diff --git a/webapp/app/mixins/search-route.js b/webapp/app/mixins/search-route.js
index 741f81ae..d697130f 100644
--- a/webapp/app/mixins/search-route.js
+++ b/webapp/app/mixins/search-route.js
@@ -5,5 +5,6 @@ export default Ember.Mixin.create({
setupController(controller) {
this._super(...arguments);
controller.set('searching', false);
- }
+ },
+
});
diff --git a/webapp/app/models/case.js b/webapp/app/models/case.js
new file mode 100644
index 00000000..0d01229a
--- /dev/null
+++ b/webapp/app/models/case.js
@@ -0,0 +1,18 @@
+import DS from "ember-data";
+
+export default DS.Model.extend({
+ file_name: DS.attr(),
+ class_name: DS.attr(),
+ name: DS.attr(),
+ type: DS.attr(),
+
+ location: function() {
+ let returned = this.get('file_name');
+ let class_name = this.get('class_name');
+ if (class_name) {
+ returned += `::${class_name}`;
+ }
+ return returned;
+
+ }.property('file_name', 'class_name'),
+});
diff --git a/webapp/app/models/error.js b/webapp/app/models/error.js
index b86e7ba5..6eb62b61 100644
--- a/webapp/app/models/error.js
+++ b/webapp/app/models/error.js
@@ -6,6 +6,7 @@ const _MAX_NUM_ERROR_CHARS = 600;
export default DS.Model.extend({
message: DS.attr("string"),
exception_type: DS.attr("string"),
+ is_interruption: DS.attr("boolean"),
full_message: function() {
let exc_type = this.get("exception_type");
diff --git a/webapp/app/models/session.js b/webapp/app/models/session.js
index a00a1d9b..6587094b 100644
--- a/webapp/app/models/session.js
+++ b/webapp/app/models/session.js
@@ -17,6 +17,7 @@ export default DS.Model.extend(HasLogicalId, HasComputedStatus, {
num_error_tests: DS.attr("number"),
num_interrupted_tests: DS.attr("number"),
num_errors: DS.attr("number"),
+ num_interruptions: DS.attr("number"),
num_failed_tests: DS.attr("number"),
num_finished_tests: DS.attr("number"),
num_skipped_tests: DS.attr("number"),
diff --git a/webapp/app/models/test.js b/webapp/app/models/test.js
index fcb76065..7debcdec 100644
--- a/webapp/app/models/test.js
+++ b/webapp/app/models/test.js
@@ -13,8 +13,10 @@ export default DS.Model.extend(HasLogicalId, HasComputedStatus, {
end_time: DS.attr("number"),
duration: DS.attr("number"),
status: DS.attr("string"),
+ status_description: DS.attr(),
num_errors: DS.attr("number"),
+ num_interruptions: DS.attr("number"),
num_warnings: DS.attr("number"),
num_comments: DS.attr("number"),
diff --git a/webapp/app/models/user.js b/webapp/app/models/user.js
index 26bdea86..ce9b9c9c 100644
--- a/webapp/app/models/user.js
+++ b/webapp/app/models/user.js
@@ -1,13 +1,13 @@
import DS from "ember-data";
export default DS.Model.extend({
- email: DS.attr(),
- user_roles: DS.attr(),
+ capabilities: DS.attr(),
display_name: DS.attr(),
+ email: DS.attr(),
full_name: DS.attr(),
-
last_activity: DS.attr(),
+ type: DS.attr(),
+ user_roles: DS.attr(),
- capabilities: DS.attr()
});
diff --git a/webapp/app/models/warning.js b/webapp/app/models/warning.js
index 17223a97..6353d837 100644
--- a/webapp/app/models/warning.js
+++ b/webapp/app/models/warning.js
@@ -4,5 +4,6 @@ export default DS.Model.extend({
message: DS.attr(),
timestamp: DS.attr("number"),
filename: DS.attr(),
- lineno: DS.attr("number")
+ lineno: DS.attr("number"),
+ num_warnings: DS.attr("number"),
});
diff --git a/webapp/app/resolver.js b/webapp/app/resolver.js
index fbc2b73e..2fb563d6 100644
--- a/webapp/app/resolver.js
+++ b/webapp/app/resolver.js
@@ -1,3 +1,3 @@
-import Resolver from "ember-resolver";
+import Resolver from 'ember-resolver';
export default Resolver;
diff --git a/webapp/app/router.js b/webapp/app/router.js
index 0ae002b7..01f0a54b 100644
--- a/webapp/app/router.js
+++ b/webapp/app/router.js
@@ -1,7 +1,7 @@
-import Ember from "ember";
-import config from "./config/environment";
+import EmberRouter from '@ember/routing/router';
+import config from './config/environment';
-const Router = Ember.Router.extend({
+const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
});
@@ -10,12 +10,14 @@ Router.map(function() {
this.route("index", { path: "/" });
this.route("sessions", { path: "/sessions" });
this.route("session", { path: "/sessions/:id" }, function() {
+ this.route("interruptions");
this.route("errors");
this.route("single_error", { path: "/errors/:index" });
this.route("warnings");
this.route("info");
this.route("children");
this.route("test", {path: "/tests/:test_id"}, function() {
+ this.route("interruptions");
this.route("errors");
this.route("warnings");
this.route("comments");
@@ -46,6 +48,7 @@ Router.map(function() {
this.route('admin', function() {
this.route('migrations');
});
+ this.route('cases');
});
export default Router;
diff --git a/webapp/app/session/info/route.js b/webapp/app/session/info/route.js
index 2f995a3c..d7b2e100 100644
--- a/webapp/app/session/info/route.js
+++ b/webapp/app/session/info/route.js
@@ -2,7 +2,6 @@ import Ember from "ember";
import ComplexModelRoute from "../../mixins/complex-model-route";
export default Ember.Route.extend(ComplexModelRoute, {
- api: Ember.inject.service(),
model() {
let self = this;
@@ -10,20 +9,7 @@ export default Ember.Route.extend(ComplexModelRoute, {
return Ember.RSVP.hash({
session_model: session_model,
related_entities: self.store.query('entity', {session_id: session_model.id, page_size: 100}),
- metadata: this.get("api")
- .call("get_metadata", {
- entity_type: "session",
- entity_id: parseInt(session_model.id)
- })
- .then(
- function(r)
- {
- if (session_model.data.child_id != null) {
- delete r.result['slash::commandline'];
- }
- return r.result;
- }
- )
+ metadata: this.modelFor("session").metadata,
});
}
});
diff --git a/webapp/app/session/interruptions/controller.js b/webapp/app/session/interruptions/controller.js
new file mode 100644
index 00000000..affe4f20
--- /dev/null
+++ b/webapp/app/session/interruptions/controller.js
@@ -0,0 +1,7 @@
+import Ember from "ember";
+
+export default Ember.Controller.extend({
+ single_error_route_name: "session.single_error",
+
+ parent_id: Ember.computed.oneWay("session.id")
+});
diff --git a/webapp/app/session/interruptions/route.js b/webapp/app/session/interruptions/route.js
new file mode 100644
index 00000000..edc33725
--- /dev/null
+++ b/webapp/app/session/interruptions/route.js
@@ -0,0 +1,25 @@
+import Ember from "ember";
+import AuthenticatedRouteMixin
+ from "ember-simple-auth/mixins/authenticated-route-mixin";
+import PaginatedRoute from "../../mixins/paginated-route";
+import ComplexModelRoute from "../../mixins/complex-model-route";
+
+export default Ember.Route.extend(
+ AuthenticatedRouteMixin,
+ ComplexModelRoute,
+ PaginatedRoute,
+ {
+ model: function({page, page_size}) {
+ const parent = this.modelFor("session").session_model;
+ return Ember.RSVP.hash({
+ session: this.modelFor("session").session_model,
+ errors: this.store.query("error", {
+ session_id: parent.id,
+ interruptions: true,
+ page: page,
+ page_size: page_size,
+ })
+ });
+ }
+ }
+);
diff --git a/webapp/app/session/interruptions/template.hbs b/webapp/app/session/interruptions/template.hbs
new file mode 100644
index 00000000..e030eda5
--- /dev/null
+++ b/webapp/app/session/interruptions/template.hbs
@@ -0,0 +1,4 @@
+{{pagination-nav page=(mut page) has_next=errors.meta.has_more num_pages=errors.meta.num_pages}}
+{{#each errors as |error index|}}
+ {{error-box error=error}}
+{{/each}}
diff --git a/webapp/app/session/route.js b/webapp/app/session/route.js
index 0bc8b1cb..32af97fe 100644
--- a/webapp/app/session/route.js
+++ b/webapp/app/session/route.js
@@ -16,10 +16,30 @@ export default Ember.Route.extend(
model({ id }) {
let self = this;
- return self.store.queryRecord("session", {id: id}).then(function(session) {
+ return self.store.query("session", {id: id}).then(function(sessions) {
+ let session = sessions.get('firstObject');
+
+ if (!session) {
+ return Ember.RSVP.reject({not_found: true});
+ }
+
return Ember.RSVP.hash({
session_model: session,
- user: self.store.find("user", session.get("user_id"))
+ user: self.store.find("user", session.get("user_id")),
+ metadata: self.get("api")
+ .call("get_metadata", {
+ entity_type: "session",
+ entity_id: parseInt(session.id)
+ })
+ .then(
+ function(r)
+ {
+ if (session.data.child_id != null) {
+ delete r.result['slash::commandline'];
+ }
+ return r.result;
+ }
+ ),
});
});
},
diff --git a/webapp/app/session/template.hbs b/webapp/app/session/template.hbs
index d5e3323e..fa0fefb7 100644
--- a/webapp/app/session/template.hbs
+++ b/webapp/app/session/template.hbs
@@ -46,6 +46,12 @@
{{/link-to}}
{{/if}}
+ {{#if session_model.num_interruptions}}
+ {{#link-to 'session.interruptions' tagName='li'}}
+ Interruptions {{session_model.num_interruptions}}
+ {{/link-to}}
+ {{/if}}
+
{{#with session_model.num_warnings as |num_warnings|}}
{{#if num_warnings}}
{{#link-to 'session.warnings' tagName='li'}}
diff --git a/webapp/app/session/test/controller.js b/webapp/app/session/test/controller.js
index b51df11e..ab31b027 100644
--- a/webapp/app/session/test/controller.js
+++ b/webapp/app/session/test/controller.js
@@ -22,4 +22,8 @@ export default Ember.Controller.extend({
}
}.property('test_metadata'),
+
+ metadata_display_items: function() {
+ return this.get('runtime_config').get_cached('test_metadata_display_items');
+ }.property(),
});
diff --git a/webapp/app/session/test/index/route.js b/webapp/app/session/test/index/route.js
index c3c3a1f3..32975440 100644
--- a/webapp/app/session/test/index/route.js
+++ b/webapp/app/session/test/index/route.js
@@ -4,6 +4,8 @@ import ComplexModelRoute from "../../../mixins/complex-model-route";
export default Ember.Route.extend(ComplexModelRoute, {
+ api: Ember.inject.service(),
+
model() {
let session_model = this.modelFor("session").session_model;
let test_model = this.modelFor("session.test").test_model;
@@ -12,6 +14,13 @@ export default Ember.Route.extend(ComplexModelRoute, {
session_model: session_model,
test_model: test_model,
metadata: test_metadata,
+ timings: this.get('api').call('get_timings', {test_id: parseInt(test_model.id)}).then(function(timings) {
+ let returned = [];
+ for (let name in timings.result) {
+ returned.push({name: name, total: timings.result[name]});
+ }
+ return returned;
+ }),
});
}
});
diff --git a/webapp/app/session/test/index/template.hbs b/webapp/app/session/test/index/template.hbs
index 5febc129..61e1ec1b 100644
--- a/webapp/app/session/test/index/template.hbs
+++ b/webapp/app/session/test/index/template.hbs
@@ -4,6 +4,9 @@
{{humanized-duration start_time=test_model.start_time end_time=test_model.end_time}}
+ {{#if test_model.status_description}}
+ Current status: {{test_model.status_description}}
+ {{/if}}
{{moment-time unix=test_model.start_time}}
@@ -11,6 +14,14 @@
{{moment-time unix=test_model.end_time}}
+
+ {{#each timings as |timing|}}
+
+
{{timing.name}}
+
{{timing.total}}s
+
+ {{/each}}
+
diff --git a/webapp/app/session/test/interruptions/controller.js b/webapp/app/session/test/interruptions/controller.js
new file mode 100644
index 00000000..dcbc5de5
--- /dev/null
+++ b/webapp/app/session/test/interruptions/controller.js
@@ -0,0 +1,5 @@
+import PaginatedFilteredController
+ from "../../../controllers/paginated_filtered_controller";
+import RelativeItemJump from "../../../mixins/relative-item-jump";
+
+export default PaginatedFilteredController.extend(RelativeItemJump, {});
diff --git a/webapp/app/session/test/interruptions/route.js b/webapp/app/session/test/interruptions/route.js
new file mode 100644
index 00000000..81a627f3
--- /dev/null
+++ b/webapp/app/session/test/interruptions/route.js
@@ -0,0 +1,26 @@
+import Ember from "ember";
+import AuthenticatedRouteMixin
+ from "ember-simple-auth/mixins/authenticated-route-mixin";
+import PaginatedRoute from "../../../mixins/paginated-route";
+import ComplexModelRoute from "../../../mixins/complex-model-route";
+
+export default Ember.Route.extend(
+ AuthenticatedRouteMixin,
+ PaginatedRoute,
+ ComplexModelRoute,
+ {
+ model: function({page, page_size}) {
+ const parent = this.modelFor("session.test");
+ return Ember.RSVP.hash({
+ test_model: parent.test_model,
+ session_model: parent.session_model,
+ errors: this.store.query("error", {
+ interruptions: true,
+ test_id: parent.test_model.id,
+ page: page,
+ page_size: page_size,
+ })
+ });
+ }
+ }
+);
diff --git a/webapp/app/session/test/interruptions/template.hbs b/webapp/app/session/test/interruptions/template.hbs
new file mode 100644
index 00000000..e030eda5
--- /dev/null
+++ b/webapp/app/session/test/interruptions/template.hbs
@@ -0,0 +1,4 @@
+{{pagination-nav page=(mut page) has_next=errors.meta.has_more num_pages=errors.meta.num_pages}}
+{{#each errors as |error index|}}
+ {{error-box error=error}}
+{{/each}}
diff --git a/webapp/app/session/test/route.js b/webapp/app/session/test/route.js
index ec69a496..6d34ebed 100644
--- a/webapp/app/session/test/route.js
+++ b/webapp/app/session/test/route.js
@@ -16,11 +16,15 @@ export default Ember.Route.extend(ComplexModelRoute, {
this.get("parent_controller").set("current_test", model.test_model);
},
- model(params) {
+ model({test_id}) {
let self = this;
let session = self.modelFor("session").session_model;
- return self.store.find('test', params.test_id).then(function(test) {
+ return self.store.query('test', {id: test_id}).then(function(tests) {
+ let test = tests.get('firstObject');
+ if (!test) {
+ return Ember.RSVP.reject({not_found: true});
+ }
return Ember.RSVP.hash({
session_model: session,
diff --git a/webapp/app/session/test/template.hbs b/webapp/app/session/test/template.hbs
index b3b6b633..588a4fc7 100644
--- a/webapp/app/session/test/template.hbs
+++ b/webapp/app/session/test/template.hbs
@@ -4,6 +4,7 @@
copy_value=(format-test-name test_model.info)
value=(format-test-name test_model.info with_filename=false)}}
+
from {{elements/copyable-text value=test_model.info.file_name}}
{{#if (eq test_model.status "SKIPPED")}}
@@ -23,6 +24,19 @@
+
+
+ {{#each metadata_display_items as |item|}}
+ {{#with (get test_metadata item.key) as |value|}}
+ {{#if value}}
+
+ {{item.name}}: {{value}}
+
+ {{/if}}
+ {{/with}}
+ {{/each}}
+
+
@@ -43,6 +57,12 @@
{{/link-to}}
{{/if}}
+ {{#if test_model.num_interruptions}}
+ {{#link-to 'session.test.interruptions' tagName='li'}}
+ Interruptions {{test_model.num_interruptions}}
+ {{/link-to}}
+ {{/if}}
+
{{#with test_model.num_warnings as |num_warnings|}}
{{#if num_warnings}}
{{#link-to 'session.test.warnings' tagName='li'}}
diff --git a/webapp/app/sessions/template.hbs b/webapp/app/sessions/template.hbs
index e967f55f..b5dde3f7 100644
--- a/webapp/app/sessions/template.hbs
+++ b/webapp/app/sessions/template.hbs
@@ -35,6 +35,10 @@
product_version = 1.0.0 |
Find sessions which ran on product version 1.0.0 |
+
+ product = Microwave |
+ Find sessions which ran on a specific product type |
+
test = test_something |
Find sessions which contain a test named test_something |
@@ -66,11 +70,7 @@
{{/tool-bar}}
{{#if error}}
-
+ {{request-error-details error=error}}
{{else}}
{{query-results
results=sessions
diff --git a/webapp/app/styles/items.scss b/webapp/app/styles/items.scss
index 28669077..1b452fa6 100644
--- a/webapp/app/styles/items.scss
+++ b/webapp/app/styles/items.scss
@@ -213,6 +213,11 @@ $left-badge-close-width: 10px;
}
+ &.condensed .main-info {
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+ }
+
.subject-info {
align-items: center;
display: flex;
@@ -315,3 +320,17 @@ $left-badge-close-width: 10px;
50% {flex: 0 0 30px;}
to {flex: 0 0 $left-badge-close-width;}
}
+
+
+/* Newer query-item, will eventually replace the older item classes */
+
+.query-item {
+ border: 1px solid $gray-lighter;
+ box-sizing: border-box;
+ padding: 0.5em 1em 0.5em 1em;
+ margin-bottom: 3px;
+
+ &:hover {
+ background: $gray-lighter;
+ }
+}
diff --git a/webapp/app/test/route.js b/webapp/app/test/route.js
index fe4080bd..b695165f 100644
--- a/webapp/app/test/route.js
+++ b/webapp/app/test/route.js
@@ -1,9 +1,13 @@
import Ember from "ember";
export default Ember.Route.extend({
- model(params) {
+ model({test_id}) {
let self = this;
- return self.store.find("test", params.test_id).then(function(test) {
+ return self.store.query("test", {id: test_id}).then(function(tests) {
+ let test = tests.get('firstObject');
+ if (!test) {
+ return Ember.RSVP.reject({not_found: true});
+ }
return Ember.RSVP.hash({
test: test,
session: self.store.find("session", test.get("session_id"))
diff --git a/webapp/app/tests/route.js b/webapp/app/tests/route.js
index fa296e13..04d0dd4d 100644
--- a/webapp/app/tests/route.js
+++ b/webapp/app/tests/route.js
@@ -23,25 +23,21 @@ export default PaginatedFilteredRoute.extend(AuthenticatedRouteMixin, ComplexMod
model(params) {
let query = { page: params.page, page_size: params.page_size };
- if (params.search) {
- query.search = params.search;
+ if (!params.search) {
+ return {tests: null, error: null};
}
+
+ query.search = params.search;
+
this.transfer_filter_params(params, query);
+
return this.store
.query("test", query)
.then(function(tests) {
- return { tests: tests, error: null };
+ return { tests: tests, error: null, search: query.search};
})
.catch(function(exception) {
- let message = null;
- exception.errors.forEach(function(e) {
- message = e.detail;
- });
-
- if (message) {
- return { error: message };
- }
- throw exception; // reraise
+ return {error: exception.errors.get('firstObject')};
});
},
diff --git a/webapp/app/tests/template.hbs b/webapp/app/tests/template.hbs
index 046384df..b0bdda72 100644
--- a/webapp/app/tests/template.hbs
+++ b/webapp/app/tests/template.hbs
@@ -45,17 +45,26 @@
product_version = 1.0.0 |
Find tests which ran on product version 1.0.0 |
+
+ product = Microwave |
+ Find sessions which ran on a specific product type |
+
+
{{/search-bar}}
{{/tool-bar}}
{{#if error}}
-
+ {{request-error-details error=error}}
{{else}}
- {{query-results results=tests meta=tests.meta page=(mut page) show_user=true}}
+ {{#if (not searching) }}
+ {{# if (not search) }}
+
+ Enter a search query to search for test executions
+
+ {{else}}
+ {{query-results results=tests meta=tests.meta page=(mut page) show_user=true}}
+ {{/if}}
+ {{/if}}
{{/if}}
diff --git a/webapp/app/users/template.hbs b/webapp/app/users/template.hbs
index 1041b314..31375362 100644
--- a/webapp/app/users/template.hbs
+++ b/webapp/app/users/template.hbs
@@ -4,22 +4,4 @@
{{dropdown-select value=(mut sort) options=sort_options title="Sort"}}
{{/tool-bar}}
-{{pagination-nav page=(mut page) has_next=users.meta.has_more }}
-
-{{#each users as |user|}}
- {{#link-to 'user.sessions' user.email classNames="item user"}}
- {{users/user-avatar user=user}}
-
- {{user.display_name}}
-
-
- {{#if user.last_activity}}
- Last active {{moment-time ago=user.last_activity}}
- {{else}}
- Last active: N/A
- {{/if}}
-
- {{/link-to}}
-{{/each}}
-
-{{pagination-nav page=(mut page) has_next=users.meta.has_more }}
+{{query-results results=users meta=users.meta page=(mut page) use_item_box=true}}
diff --git a/webapp/config/environment.js b/webapp/config/environment.js
index 8f698363..d63097ca 100644
--- a/webapp/config/environment.js
+++ b/webapp/config/environment.js
@@ -1,11 +1,12 @@
/* eslint-env node */
+'use strict';
module.exports = function(environment) {
- var ENV = {
+ let ENV = {
modulePrefix: 'webapp',
- environment: environment,
rootURL: null,
locationType: 'hash',
+ environment,
EmberENV: {
FEATURES: {
// Here you can enable experimental features on an ember canary build
diff --git a/webapp/config/targets.js b/webapp/config/targets.js
index 2bebfaca..df7664c2 100644
--- a/webapp/config/targets.js
+++ b/webapp/config/targets.js
@@ -1,5 +1,4 @@
/* eslint-env node */
-
module.exports = {
browsers: [
'ie 9',
diff --git a/webapp/ember-cli-build.js b/webapp/ember-cli-build.js
index 4f526e02..0fdc28fd 100644
--- a/webapp/ember-cli-build.js
+++ b/webapp/ember-cli-build.js
@@ -1,8 +1,10 @@
-/*jshint node:true*/
/* global require, module */
-var EmberApp = require('ember-cli/lib/broccoli/ember-app');
+/* eslint-env node */
+'use strict';
-module.exports = function(defaults) {
+const EmberApp = require('ember-cli/lib/broccoli/ember-app');
+
+module.exports = function(/*defaults*/) {
var app = new EmberApp({
'ember-font-awesome': {
diff --git a/webapp/package.json b/webapp/package.json
index 9f233b94..8c015080 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -1,48 +1,49 @@
{
"name": "webapp",
"version": "0.0.0",
+ "private": true,
+ "description": "Backslash Webapp",
+ "license": "BSD3",
+ "author": "Rotem Yaari",
"directories": {
"doc": "doc",
"test": "tests"
},
+ "repository": "",
"scripts": {
"build": "ember build",
"start": "ember server",
"test": "ember test"
},
- "repository": "",
- "author": "",
- "license": "MIT",
"devDependencies": {
"broccoli-asset-rev": "^2.4.5",
"broccoli-merge-trees": "^2.0.0",
"broccoli-static-compiler": "^0.2.2",
"ember-ajax": "^3.0.0",
"ember-aupac-typeahead": "2.2.0",
- "ember-c3": "^0.3.1",
- "ember-cli": "^2.13.1",
+ "ember-cli": "~2.16.2",
"ember-cli-app-version": "^3.0.0",
- "ember-cli-babel": "^6.0.0",
"ember-cli-bootstrap-sassy": "^0.5.6",
"ember-cli-clipboard": "^0.6.0",
+ "ember-cli-babel": "^6.6.0",
"ember-cli-dependency-checker": "^2.0.0",
- "ember-cli-eslint": "^3.0.0",
+ "ember-cli-eslint": "^4.0.0",
"ember-cli-htmlbars": "^2.0.1",
- "ember-cli-htmlbars-inline-precompile": "^0.4.0",
+ "ember-cli-htmlbars-inline-precompile": "^1.0.0",
"ember-cli-inject-live-reload": "^1.4.1",
"ember-cli-mirage": "^0.3.1",
- "ember-cli-qunit": "^4.0.0-beta.1",
"ember-cli-sass": "^6.1.3",
+ "ember-cli-qunit": "^4.0.0",
"ember-cli-shims": "^1.1.0",
"ember-cli-showdown": "^3.1.0",
"ember-cli-sri": "^2.1.0",
"ember-cli-string-helpers": "1.2.1",
"ember-cli-tooltipster": "^0.8.1",
- "ember-cli-uglify": "^1.2.0",
+ "ember-cli-uglify": "^2.0.0",
"ember-component-css": "0.3.3",
"ember-composable-helpers": "2.0.1",
"ember-concurrency": "^0.8.3",
- "ember-data": "^2.13.0",
+ "ember-data": "~2.16.2",
"ember-export-application-global": "^2.0.0",
"ember-font-awesome": "3.0.5",
"ember-infinity": "^0.2.8",
@@ -57,8 +58,8 @@
"ember-resolver": "^4.0.0",
"ember-retry": "^0.0.4",
"ember-simple-auth": "^1.1.0",
- "ember-source": "~2.13.0",
"ember-truth-helpers": "^1.3.0",
+ "ember-source": "~2.16.0",
"ember-welcome-page": "^3.0.0",
"liquid-fire": "0.27.3",
"loader.js": "^4.2.3",
@@ -67,7 +68,6 @@
"ui-ember-slider": "^0.5.0"
},
"engines": {
- "node": ">= 4"
- },
- "private": true
+ "node": "^4.5 || 6.* || >= 7.*"
+ }
}
diff --git a/webapp/testem.js b/webapp/testem.js
index b2340483..e79c22e8 100644
--- a/webapp/testem.js
+++ b/webapp/testem.js
@@ -1,12 +1,22 @@
/* eslint-env node */
module.exports = {
- "test_page": "tests/index.html?hidepassed",
- "disable_watching": true,
- "launch_in_ci": [
- "PhantomJS"
+ test_page: 'tests/index.html?hidepassed',
+ disable_watching: true,
+ launch_in_ci: [
+ 'Chrome'
],
- "launch_in_dev": [
- "PhantomJS",
- "Chrome"
- ]
+ launch_in_dev: [
+ 'Chrome'
+ ],
+ browser_args: {
+ Chrome: {
+ mode: 'ci',
+ args: [
+ '--disable-gpu',
+ '--headless',
+ '--remote-debugging-port=9222',
+ '--window-size=1440,900'
+ ]
+ },
+ }
};
diff --git a/webapp/tests/helpers/destroy-app.js b/webapp/tests/helpers/destroy-app.js
index c3d4d1ab..e7f983bd 100644
--- a/webapp/tests/helpers/destroy-app.js
+++ b/webapp/tests/helpers/destroy-app.js
@@ -1,5 +1,5 @@
-import Ember from 'ember';
+import { run } from '@ember/runloop';
export default function destroyApp(application) {
- Ember.run(application, 'destroy');
+ run(application, 'destroy');
}
diff --git a/webapp/tests/helpers/module-for-acceptance.js b/webapp/tests/helpers/module-for-acceptance.js
index 76996fd0..90a93bac 100644
--- a/webapp/tests/helpers/module-for-acceptance.js
+++ b/webapp/tests/helpers/module-for-acceptance.js
@@ -1,10 +1,8 @@
import { module } from 'qunit';
-import Ember from 'ember';
+import { resolve } from 'rsvp';
import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
-const { RSVP: { Promise } } = Ember;
-
export default function(name, options = {}) {
module(name, {
beforeEach() {
@@ -17,7 +15,7 @@ export default function(name, options = {}) {
afterEach() {
let afterEach = options.afterEach && options.afterEach.apply(this, arguments);
- return Promise.resolve(afterEach).then(() => destroyApp(this.application));
+ return resolve(afterEach).then(() => destroyApp(this.application));
}
});
}
diff --git a/webapp/tests/helpers/start-app.js b/webapp/tests/helpers/start-app.js
index 9a605eb8..681aa01a 100644
--- a/webapp/tests/helpers/start-app.js
+++ b/webapp/tests/helpers/start-app.js
@@ -1,12 +1,13 @@
-import Ember from 'ember';
import Application from '../../app';
import config from '../../config/environment';
+import { merge } from '@ember/polyfills';
+import { run } from '@ember/runloop';
export default function startApp(attrs) {
- let attributes = Ember.merge({}, config.APP);
- attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
+ let attributes = merge({}, config.APP);
+ attributes = merge(attributes, attrs); // use defaults, but you can override;
- return Ember.run(() => {
+ return run(() => {
let application = Application.create(attributes);
application.setupForTesting();
application.injectTestHelpers();
diff --git a/webapp/tests/integration/components/case-item/component-test.js b/webapp/tests/integration/components/case-item/component-test.js
new file mode 100644
index 00000000..9e278e05
--- /dev/null
+++ b/webapp/tests/integration/components/case-item/component-test.js
@@ -0,0 +1,24 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('case-item', 'Integration | Component | case item', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{case-item}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#case-item}}
+ template block text
+ {{/case-item}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
diff --git a/webapp/tests/integration/components/request-error-details/component-test.js b/webapp/tests/integration/components/request-error-details/component-test.js
new file mode 100644
index 00000000..d3ee210d
--- /dev/null
+++ b/webapp/tests/integration/components/request-error-details/component-test.js
@@ -0,0 +1,24 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('request-error-details', 'Integration | Component | request error details', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{request-error-details}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#request-error-details}}
+ template block text
+ {{/request-error-details}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
diff --git a/webapp/tests/integration/components/user-item/component-test.js b/webapp/tests/integration/components/user-item/component-test.js
new file mode 100644
index 00000000..5e7f6468
--- /dev/null
+++ b/webapp/tests/integration/components/user-item/component-test.js
@@ -0,0 +1,24 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('user-item', 'Integration | Component | user item', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{user-item}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#user-item}}
+ template block text
+ {{/user-item}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
diff --git a/webapp/yarn.lock b/webapp/yarn.lock
index af392011..12e41b05 100644
--- a/webapp/yarn.lock
+++ b/webapp/yarn.lock
@@ -2,55 +2,52 @@
# yarn lockfile v1
-"@glimmer/compiler@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.22.3.tgz#3aef9448460af1d320a82423323498a6ff38a0c6"
- dependencies:
- "@glimmer/syntax" "^0.22.3"
- "@glimmer/util" "^0.22.3"
- "@glimmer/wire-format" "^0.22.3"
+"@glimmer/compiler@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/compiler/-/compiler-0.25.3.tgz#25eb06394f3ba1c1fae5af25c9cf7deb2c11ef4e"
+ dependencies:
+ "@glimmer/interfaces" "^0.25.3"
+ "@glimmer/syntax" "^0.25.3"
+ "@glimmer/util" "^0.25.3"
+ "@glimmer/wire-format" "^0.25.3"
simple-html-tokenizer "^0.3.0"
-"@glimmer/di@^0.1.8":
- version "0.1.11"
- resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.1.11.tgz#a6878c07a13a2c2c76fcde598a5c97637bfc4280"
-
"@glimmer/di@^0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e"
-"@glimmer/interfaces@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.22.3.tgz#1c2e3289ae41a750f0c8ddcc64529b9e90dda604"
+"@glimmer/interfaces@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.25.3.tgz#8c460b28ad5a17eaa1712e6aa7b8ebb49738c38f"
dependencies:
- "@glimmer/wire-format" "^0.22.3"
+ "@glimmer/wire-format" "^0.25.3"
-"@glimmer/node@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.22.3.tgz#ff33eea6e65147a20c1bd1f05fdc4a6c3595c54c"
+"@glimmer/node@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/node/-/node-0.25.3.tgz#301828e8455be141d5384b01980ed9be02984059"
dependencies:
- "@glimmer/runtime" "^0.22.3"
+ "@glimmer/runtime" "^0.25.3"
simple-dom "^0.3.0"
-"@glimmer/object-reference@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/object-reference/-/object-reference-0.22.3.tgz#31db68c8912324c63509b1ef83213f7ad4ef312b"
+"@glimmer/object-reference@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/object-reference/-/object-reference-0.25.3.tgz#e0d1fa874f912e7d1232d487fcd2096e6b31b620"
dependencies:
- "@glimmer/reference" "^0.22.3"
- "@glimmer/util" "^0.22.3"
+ "@glimmer/reference" "^0.25.3"
+ "@glimmer/util" "^0.25.3"
-"@glimmer/object@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/object/-/object-0.22.3.tgz#1fc9fd7465c7d12e5b92464ad40038b595de8ed0"
+"@glimmer/object@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/object/-/object-0.25.3.tgz#451eb208dadba1ede9c0c038a90dfe32637493fe"
dependencies:
- "@glimmer/object-reference" "^0.22.3"
- "@glimmer/util" "^0.22.3"
+ "@glimmer/object-reference" "^0.25.3"
+ "@glimmer/util" "^0.25.3"
-"@glimmer/reference@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.22.3.tgz#6f2ef8cd97fe756d89fef75f8c3c79003502a2a9"
+"@glimmer/reference@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/reference/-/reference-0.25.3.tgz#a09ddc397bee0223de73ea5044a304a30935104f"
dependencies:
- "@glimmer/util" "^0.22.3"
+ "@glimmer/util" "^0.25.3"
"@glimmer/resolver@^0.3.0":
version "0.3.0"
@@ -58,33 +55,35 @@
dependencies:
"@glimmer/di" "^0.2.0"
-"@glimmer/runtime@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.22.3.tgz#b8cb28efc9cc86c406ee996f5c2cf6730620d404"
+"@glimmer/runtime@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/runtime/-/runtime-0.25.3.tgz#ae2101a1e4de3330d08f20806c18327dbfa86d78"
dependencies:
- "@glimmer/interfaces" "^0.22.3"
- "@glimmer/object" "^0.22.3"
- "@glimmer/object-reference" "^0.22.3"
- "@glimmer/reference" "^0.22.3"
- "@glimmer/util" "^0.22.3"
- "@glimmer/wire-format" "^0.22.3"
+ "@glimmer/interfaces" "^0.25.3"
+ "@glimmer/object" "^0.25.3"
+ "@glimmer/object-reference" "^0.25.3"
+ "@glimmer/reference" "^0.25.3"
+ "@glimmer/util" "^0.25.3"
+ "@glimmer/wire-format" "^0.25.3"
-"@glimmer/syntax@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.22.3.tgz#8528d19324bf7f920f5cfd31925e452e51781b44"
+"@glimmer/syntax@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.25.3.tgz#b3f8a59bee616fd600301d778de3b649bf77036e"
dependencies:
+ "@glimmer/interfaces" "^0.25.3"
+ "@glimmer/util" "^0.25.3"
handlebars "^4.0.6"
simple-html-tokenizer "^0.3.0"
-"@glimmer/util@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.22.3.tgz#8272f50905d1bb904ee371e8ade83fd779b51508"
+"@glimmer/util@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.25.3.tgz#7cedf72947137b519658c8be34d0d5965cebe3a1"
-"@glimmer/wire-format@^0.22.3":
- version "0.22.3"
- resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.22.3.tgz#19b226d9b93ba6ee54472d9ffb1d48e7c0d80a0d"
+"@glimmer/wire-format@^0.25.3":
+ version "0.25.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/wire-format/-/wire-format-0.25.3.tgz#046692b3a26a30a498712266cd0bdb47d7710f37"
dependencies:
- "@glimmer/util" "^0.22.3"
+ "@glimmer/util" "^0.25.3"
abbrev@1:
version "1.1.0"
@@ -111,9 +110,9 @@ acorn@^4.0.3:
version "4.0.13"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
-acorn@^5.0.1:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
+acorn@^5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
after@0.8.1:
version "0.8.1"
@@ -130,6 +129,24 @@ ajv@^4.7.0, ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
+ajv@^5.1.0:
+ version "5.2.4"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.4.tgz#3daf9a8b67221299fdae8d82d117ed8e6c80244b"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ json-schema-traverse "^0.3.0"
+ json-stable-stringify "^1.0.1"
+
+ajv@^5.2.0:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ json-schema-traverse "^0.3.0"
+ json-stable-stringify "^1.0.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"
@@ -144,25 +161,35 @@ alter@~0.2.0:
dependencies:
stable "~0.1.3"
-amd-name-resolver@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-0.0.5.tgz#76962dac876ed3311b05d29c6a58c14e1ef3304b"
- dependencies:
- ensure-posix-path "^1.0.1"
-
amd-name-resolver@0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-0.0.6.tgz#d3e4ba2dfcaab1d820c1be9de947c67828cfe595"
dependencies:
ensure-posix-path "^1.0.1"
+amd-name-resolver@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-0.0.7.tgz#814301adfe8a2f109f6e84d5e935196efb669615"
+ dependencies:
+ ensure-posix-path "^1.0.1"
+
+amd-name-resolver@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/amd-name-resolver/-/amd-name-resolver-1.0.0.tgz#0e593b28d6fa3326ab1798107edaea961046e8d8"
+ dependencies:
+ ensure-posix-path "^1.0.1"
+
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-ansi-escapes@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+ansi-escapes@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
+
+ansi-escapes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
version "0.2.1"
@@ -172,14 +199,24 @@ ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
ansi-styles@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
-ansi-styles@^2.1.0, ansi-styles@^2.2.1:
+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.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
+ dependencies:
+ color-convert "^1.9.0"
+
ansicolors@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef"
@@ -208,7 +245,7 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
-argparse@^1.0.7, argparse@~1.0.2:
+argparse@^1.0.7:
version "1.0.9"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
dependencies:
@@ -288,11 +325,27 @@ ast-types@0.8.12:
version "0.8.12"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc"
+ast-types@0.8.15:
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52"
+
ast-types@0.9.6:
version "0.9.6"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
-async-disk-cache@^1.0.0, async-disk-cache@^1.2.1:
+async-disk-cache@^1.0.0:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-1.3.3.tgz#6040486660b370e4051cd9fa9fee275e1fae3728"
+ dependencies:
+ debug "^2.1.3"
+ heimdalljs "^0.2.3"
+ istextorbinary "2.1.0"
+ mkdirp "^0.5.0"
+ rimraf "^2.5.3"
+ rsvp "^3.0.18"
+ username-sync "1.0.1"
+
+async-disk-cache@^1.2.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-1.3.2.tgz#ac53d6152843df202c9406e28d774362608d74dd"
dependencies:
@@ -312,10 +365,23 @@ async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+async-promise-queue@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.4.tgz#308baafbc74aff66a0bb6e7f4a18d4fe8434440c"
+ dependencies:
+ async "^2.4.1"
+ debug "^2.6.8"
+
async@^1.4.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+async@^2.4.1:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
+ dependencies:
+ lodash "^4.14.0"
+
async@~0.2.9:
version "0.2.10"
resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
@@ -328,11 +394,15 @@ aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-aws4@^1.2.1:
+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.2.1, aws4@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
+babel-code-frame@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
dependencies:
@@ -340,6 +410,14 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.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:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
babel-core@^5.0.0:
version "5.8.38"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558"
@@ -549,12 +627,24 @@ babel-plugin-dead-code-elimination@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz#5f7c451274dcd7cccdbfbb3e0b85dd28121f0f65"
-babel-plugin-debug-macros@^0.1.1, babel-plugin-debug-macros@^0.1.6, babel-plugin-debug-macros@^0.1.7:
+babel-plugin-debug-macros@^0.1.1, babel-plugin-debug-macros@^0.1.7:
version "0.1.10"
resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.1.10.tgz#dd077ad6e1cc0a8f9bbc6405c561392ebfc9a01c"
dependencies:
semver "^5.3.0"
+babel-plugin-debug-macros@^0.1.11:
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.1.11.tgz#6c562bf561fccd406ce14ab04f42c218cf956605"
+ dependencies:
+ semver "^5.3.0"
+
+babel-plugin-ember-modules-api-polyfill@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.0.1.tgz#baaf26dcebe2ed1de120021bc42be29f520497b3"
+ dependencies:
+ ember-rfc176-data "^0.2.7"
+
babel-plugin-eval@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz#a2faed25ce6be69ade4bfec263f70169195950da"
@@ -655,6 +745,16 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0:
babel-types "^6.24.1"
lodash "^4.2.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:
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ lodash "^4.17.4"
+
babel-plugin-transform-es2015-classes@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
@@ -840,7 +940,7 @@ babel-polyfill@^6.16.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-preset-env@1.3.3, babel-preset-env@^1.2.0:
+babel-preset-env@1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.3.3.tgz#5913407784e3d98de2aa814a3ef9059722b34e0b"
dependencies:
@@ -874,6 +974,41 @@ babel-preset-env@1.3.3, babel-preset-env@^1.2.0:
browserslist "^1.4.0"
invariant "^2.2.2"
+babel-preset-env@^1.5.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4"
+ dependencies:
+ babel-plugin-check-es2015-constants "^6.22.0"
+ babel-plugin-syntax-trailing-function-commas "^6.22.0"
+ babel-plugin-transform-async-to-generator "^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.23.0"
+ babel-plugin-transform-es2015-classes "^6.23.0"
+ babel-plugin-transform-es2015-computed-properties "^6.22.0"
+ babel-plugin-transform-es2015-destructuring "^6.23.0"
+ babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
+ babel-plugin-transform-es2015-for-of "^6.23.0"
+ babel-plugin-transform-es2015-function-name "^6.22.0"
+ babel-plugin-transform-es2015-literals "^6.22.0"
+ babel-plugin-transform-es2015-modules-amd "^6.22.0"
+ babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-umd "^6.23.0"
+ babel-plugin-transform-es2015-object-super "^6.22.0"
+ babel-plugin-transform-es2015-parameters "^6.23.0"
+ babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
+ babel-plugin-transform-es2015-spread "^6.22.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.22.0"
+ babel-plugin-transform-es2015-template-literals "^6.22.0"
+ babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.22.0"
+ babel-plugin-transform-exponentiation-operator "^6.22.0"
+ babel-plugin-transform-regenerator "^6.22.0"
+ browserslist "^2.1.2"
+ invariant "^2.2.2"
+ semver "^5.3.0"
+
babel-register@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
@@ -893,6 +1028,13 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.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.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333"
@@ -903,6 +1045,16 @@ babel-template@^6.24.1:
babylon "^6.11.0"
lodash "^4.2.0"
+babel-template@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
babel-traverse@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695"
@@ -917,6 +1069,20 @@ babel-traverse@^6.24.1:
invariant "^2.2.0"
lodash "^4.2.0"
+babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
babel-types@^6.19.0, babel-types@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975"
@@ -926,6 +1092,15 @@ babel-types@^6.19.0, babel-types@^6.24.1:
lodash "^4.2.0"
to-fast-properties "^1.0.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:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
babel6-plugin-strip-class-callcheck@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/babel6-plugin-strip-class-callcheck/-/babel6-plugin-strip-class-callcheck-6.0.0.tgz#de841c1abebbd39f78de0affb2c9a52ee228fddf"
@@ -942,6 +1117,10 @@ babylon@^6.11.0, babylon@^6.15.0:
version "6.17.2"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.2.tgz#201d25ef5f892c41bae49488b08db0dd476e9f5c"
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
backbone@^1.1.2:
version "1.3.3"
resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.3.3.tgz#4cc80ea7cb1631ac474889ce40f2f8bc683b2999"
@@ -956,6 +1135,14 @@ balanced-match@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+base-64@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
+
base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
@@ -1025,6 +1212,18 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
+boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
bootstrap-sass@^3.0.0:
version "3.3.7"
resolved "https://registry.yarnpkg.com/bootstrap-sass/-/bootstrap-sass-3.3.7.tgz#6596c7ab40f6637393323ab0bc80d064fc630498"
@@ -1043,7 +1242,14 @@ bower-endpoint-parser@0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz#00b565adbfab6f2d35addde977e97962acbcb3f6"
-brace-expansion@^1.0.0, brace-expansion@^1.1.7:
+brace-expansion@^1.0.0:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brace-expansion@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
dependencies:
@@ -1079,16 +1285,19 @@ broccoli-asset-rewrite@^1.1.0:
broccoli-filter "^1.2.3"
broccoli-babel-transpiler@^5.6.2:
- version "5.6.2"
- resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.6.2.tgz#958c72e43575b2f0a862a5096dba1ce1ebc7d74d"
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-5.7.2.tgz#756c30544775144e984333b7115f42c916ba08e0"
dependencies:
babel-core "^5.0.0"
broccoli-funnel "^1.0.0"
broccoli-merge-trees "^1.0.0"
- broccoli-persistent-filter "^1.0.1"
+ broccoli-persistent-filter "^1.4.2"
clone "^0.2.0"
hash-for-dep "^1.0.2"
+ heimdalljs-logger "^0.1.7"
json-stable-stringify "^1.0.0"
+ rsvp "^3.5.0"
+ workerpool "^2.2.1"
broccoli-babel-transpiler@^6.0.0:
version "6.0.0"
@@ -1102,15 +1311,30 @@ broccoli-babel-transpiler@^6.0.0:
hash-for-dep "^1.0.2"
json-stable-stringify "^1.0.0"
+broccoli-babel-transpiler@^6.1.2:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-6.1.2.tgz#26019c045b5ea3e44cfef62821302f9bd483cabd"
+ dependencies:
+ babel-core "^6.14.0"
+ broccoli-funnel "^1.0.0"
+ broccoli-merge-trees "^1.0.0"
+ broccoli-persistent-filter "^1.4.0"
+ clone "^2.0.0"
+ hash-for-dep "^1.0.2"
+ heimdalljs-logger "^0.1.7"
+ json-stable-stringify "^1.0.0"
+ rsvp "^3.5.0"
+ workerpool "^2.2.1"
+
broccoli-brocfile-loader@^0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/broccoli-brocfile-loader/-/broccoli-brocfile-loader-0.18.0.tgz#2e86021c805c34ffc8d29a2fb721cf273e819e4b"
dependencies:
findup-sync "^0.4.2"
-broccoli-builder@^0.18.3:
- version "0.18.4"
- resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.4.tgz#abc6db2c07d214454918e2997ea87441b69b69d3"
+broccoli-builder@^0.18.8:
+ version "0.18.8"
+ resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.8.tgz#fe54694d544c3cdfdb01028e802eeca65749a879"
dependencies:
heimdalljs "^0.2.0"
promise-map-series "^0.2.1"
@@ -1194,6 +1418,18 @@ broccoli-debug@^0.6.1:
symlink-or-copy "^1.1.8"
tree-sync "^1.2.2"
+broccoli-debug@^0.6.2, broccoli-debug@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/broccoli-debug/-/broccoli-debug-0.6.3.tgz#1f33bb0eacb5db81366f0492524c82b1217eb578"
+ dependencies:
+ broccoli-plugin "^1.2.1"
+ fs-tree-diff "^0.5.2"
+ heimdalljs "^0.2.1"
+ heimdalljs-logger "^0.1.7"
+ minimatch "^3.0.3"
+ symlink-or-copy "^1.1.8"
+ tree-sync "^1.2.2"
+
broccoli-file-creator@^1.0.0, broccoli-file-creator@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/broccoli-file-creator/-/broccoli-file-creator-1.1.1.tgz#1b35b67d215abdfadd8d49eeb69493c39e6c3450"
@@ -1236,7 +1472,7 @@ broccoli-funnel-reducer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea"
-broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.2, broccoli-funnel@^1.0.6, broccoli-funnel@^1.0.9, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0:
+broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.2, broccoli-funnel@^1.0.9, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296"
dependencies:
@@ -1255,6 +1491,24 @@ broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.2, broccoli
symlink-or-copy "^1.0.0"
walk-sync "^0.3.1"
+broccoli-funnel@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-2.0.1.tgz#6823c73b675ef78fffa7ab800f083e768b51d449"
+ dependencies:
+ array-equal "^1.0.0"
+ blank-object "^1.0.1"
+ broccoli-plugin "^1.3.0"
+ debug "^2.2.0"
+ fast-ordered-set "^1.0.0"
+ fs-tree-diff "^0.5.3"
+ heimdalljs "^0.2.0"
+ minimatch "^3.0.0"
+ mkdirp "^0.5.0"
+ path-posix "^1.0.0"
+ rimraf "^2.4.3"
+ symlink-or-copy "^1.0.0"
+ walk-sync "^0.3.1"
+
broccoli-kitchen-sink-helpers@^0.2.5, broccoli-kitchen-sink-helpers@^0.2.6, broccoli-kitchen-sink-helpers@~0.2.0:
version "0.2.9"
resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.2.9.tgz#a5e0986ed8d76fb5984b68c3f0450d3a96e36ecc"
@@ -1269,19 +1523,19 @@ broccoli-kitchen-sink-helpers@^0.3.1:
glob "^5.0.10"
mkdirp "^0.5.1"
-broccoli-lint-eslint@^3.3.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/broccoli-lint-eslint/-/broccoli-lint-eslint-3.3.1.tgz#35c675546a5a7ad8f3319edd732e3aad8ca241de"
+broccoli-lint-eslint@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/broccoli-lint-eslint/-/broccoli-lint-eslint-4.1.0.tgz#dccfa1150dc62407cd66fd56a619273c5479a10e"
dependencies:
aot-test-generators "^0.1.0"
broccoli-concat "^3.2.2"
broccoli-persistent-filter "^1.2.0"
- eslint "^3.0.0"
+ eslint "^4.0.0"
json-stable-stringify "^1.0.1"
lodash.defaultsdeep "^4.6.0"
md5-hex "^2.0.0"
-broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^1.1.1, broccoli-merge-trees@^1.1.4:
+broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^1.1.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5"
dependencies:
@@ -1301,9 +1555,9 @@ broccoli-merge-trees@^2.0.0:
broccoli-plugin "^1.3.0"
merge-trees "^1.0.1"
-broccoli-middleware@^1.0.0-beta.8:
- version "1.0.0-beta.8"
- resolved "https://registry.yarnpkg.com/broccoli-middleware/-/broccoli-middleware-1.0.0-beta.8.tgz#89cb6a9950ff0cf5bd75071d83d7cd6f6a11a95b"
+broccoli-middleware@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/broccoli-middleware/-/broccoli-middleware-1.0.0.tgz#92f4e1fb9a791ea986245a7077f35cc648dab097"
dependencies:
handlebars "^4.0.4"
mime "^1.2.11"
@@ -1326,7 +1580,7 @@ broccoli-persistent-filter@1.2.13:
symlink-or-copy "^1.0.1"
walk-sync "^0.3.1"
-broccoli-persistent-filter@^1.0.1, broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.5, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.2.0:
+broccoli-persistent-filter@^1.0.1, broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.3.1.tgz#d02556a135c77dfb859bba7844bc3539be7168e1"
dependencies:
@@ -1344,6 +1598,24 @@ broccoli-persistent-filter@^1.0.1, broccoli-persistent-filter@^1.0.3, broccoli-p
symlink-or-copy "^1.0.1"
walk-sync "^0.3.1"
+broccoli-persistent-filter@^1.1.5, broccoli-persistent-filter@^1.4.0, broccoli-persistent-filter@^1.4.2:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.3.tgz#3511bc52fc53740cda51621f58a28152d9911bc1"
+ dependencies:
+ async-disk-cache "^1.2.1"
+ async-promise-queue "^1.0.3"
+ broccoli-plugin "^1.0.0"
+ fs-tree-diff "^0.5.2"
+ hash-for-dep "^1.0.2"
+ heimdalljs "^0.2.1"
+ heimdalljs-logger "^0.1.7"
+ mkdirp "^0.5.1"
+ promise-map-series "^0.2.1"
+ rimraf "^2.6.1"
+ rsvp "^3.0.18"
+ symlink-or-copy "^1.0.1"
+ walk-sync "^0.3.1"
+
broccoli-plugin@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.1.0.tgz#73e2cfa05f8ea1e3fc1420c40c3d9e7dc724bf02"
@@ -1362,6 +1634,22 @@ broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli
rimraf "^2.3.4"
symlink-or-copy "^1.1.8"
+broccoli-rollup@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/broccoli-rollup/-/broccoli-rollup-1.3.0.tgz#43a0a7798555bab54217009eb470a4ff5a056df0"
+ dependencies:
+ broccoli-plugin "^1.2.1"
+ es6-map "^0.1.4"
+ fs-extra "^0.30.0"
+ fs-tree-diff "^0.5.2"
+ heimdalljs "^0.2.1"
+ heimdalljs-logger "^0.1.7"
+ md5-hex "^1.3.0"
+ node-modules-path "^1.0.1"
+ rollup "^0.41.4"
+ symlink-or-copy "^1.1.8"
+ walk-sync "^0.3.1"
+
broccoli-sass-source-maps@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/broccoli-sass-source-maps/-/broccoli-sass-source-maps-2.0.0.tgz#7f25f9f4b296918cec6e00672c63e75abce33d45"
@@ -1445,23 +1733,25 @@ broccoli-templater@^1.0.0:
broccoli-stew "^1.2.0"
lodash.template "^3.3.2"
-broccoli-uglify-sourcemap@^1.0.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-1.5.2.tgz#04f84ab0db539031fa868ccfa563c9932d50cedb"
+broccoli-uglify-sourcemap@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-2.0.0.tgz#2dc574e9d330c2e0dcc834b3d24c794b405a3803"
dependencies:
broccoli-plugin "^1.2.1"
- debug "^2.2.0"
- lodash.merge "^4.5.1"
- matcher-collection "^1.0.0"
+ debug "^3.1.0"
+ lodash.defaultsdeep "^4.6.0"
+ matcher-collection "^1.0.5"
mkdirp "^0.5.0"
- source-map-url "^0.3.0"
+ source-map-url "^0.4.0"
symlink-or-copy "^1.0.1"
- uglify-js "^2.7.0"
- walk-sync "^0.1.3"
+ uglify-es "^3.1.3"
+ walk-sync "^0.3.2"
broccoli-unwatched-tree@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/broccoli-unwatched-tree/-/broccoli-unwatched-tree-0.1.1.tgz#4312fde04bdafe67a05a967d72cc50b184a9f514"
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/broccoli-unwatched-tree/-/broccoli-unwatched-tree-0.1.3.tgz#ab0fb820f613845bf67a803baad820f68b1e3aae"
+ dependencies:
+ broccoli-source "^1.1.0"
broccoli-writer@^0.1.1, broccoli-writer@~0.1.1:
version "0.1.1"
@@ -1477,6 +1767,13 @@ browserslist@^1.4.0:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
+browserslist@^2.1.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8"
+ dependencies:
+ caniuse-lite "^1.0.30000718"
+ electron-to-chromium "^1.3.18"
+
bser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
@@ -1503,7 +1800,7 @@ bytes@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070"
-calculate-cache-key-for-tree@^1.0.0:
+calculate-cache-key-for-tree@^1.0.0, calculate-cache-key-for-tree@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/calculate-cache-key-for-tree/-/calculate-cache-key-for-tree-1.1.0.tgz#0c3e42c9c134f3c9de5358c0f16793627ea976d6"
dependencies:
@@ -1556,18 +1853,22 @@ caniuse-db@^1.0.30000639:
version "1.0.30000676"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000676.tgz#82ea578237637c8ff34a28acaade373b624c4ea8"
+caniuse-lite@^1.0.30000718:
+ version "1.0.30000727"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000727.tgz#20c895768398ded5f98a4beab4a76c285def41d2"
+
capture-exit@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
dependencies:
rsvp "^3.3.3"
-cardinal@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-0.5.0.tgz#00d5f661dbd4aabfdf7d41ce48a5a59bca35a291"
+cardinal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9"
dependencies:
ansicolors "~0.2.1"
- redeyed "~0.5.0"
+ redeyed "~1.0.0"
caseless@~0.12.0:
version "0.12.0"
@@ -1600,6 +1901,22 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
+chalk@^2.0.0, chalk@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
+chalk@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.0.tgz#477b3bf2f9b8fd5ca9e429747e37f724ee7af240"
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
charenc@~0.0.1:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
@@ -1648,15 +1965,15 @@ clean-css@^3.4.5:
commander "2.8.x"
source-map "0.4.x"
-cli-cursor@^1.0.1, cli-cursor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
- restore-cursor "^1.0.1"
+ 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-spinners@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06"
cli-table2@^0.2.0:
version "0.2.0"
@@ -1717,6 +2034,16 @@ 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"
+color-convert@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
+ dependencies:
+ color-name "^1.1.1"
+
+color-name@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
colors@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
@@ -1737,12 +2064,16 @@ commander@2.8.x:
dependencies:
graceful-readlink ">= 1.0.0"
-commander@2.9.0, commander@^2.5.0, commander@^2.6.0:
+commander@2.9.0, commander@^2.6.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
graceful-readlink ">= 1.0.0"
+commander@^2.5.0, commander@~2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
commoner@~0.10.3:
version "0.10.8"
resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5"
@@ -1794,7 +2125,7 @@ concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-concat-stream@^1.4.7, concat-stream@^1.5.2:
+concat-stream@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
dependencies:
@@ -1817,13 +2148,13 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-console-ui@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-1.0.3.tgz#31c524461b63422769f9e89c173495d91393721c"
+console-ui@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-2.0.0.tgz#159ef7d098a491f84705bb69cd63ecec9a367b14"
dependencies:
- chalk "^1.1.3"
- inquirer "^1.2.3"
- ora "^0.2.0"
+ chalk "^2.1.0"
+ inquirer "^3.2.1"
+ ora "^1.3.0"
through "^2.3.8"
consolidate@^0.14.0:
@@ -1872,11 +2203,11 @@ core-object@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/core-object/-/core-object-1.1.0.tgz#86d63918733cf9da1a5aae729e62c0a88e66ad0a"
-core-object@^3.0.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.3.tgz#df399b3311bdb0c909e8aae8929fc3c1c4b25880"
+core-object@^3.1.3:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.5.tgz#fa627b87502adc98045e44678e9a8ec3b9c0d2a9"
dependencies:
- chalk "^1.1.3"
+ chalk "^2.0.0"
core-util-is@~1.0.0:
version "1.0.2"
@@ -1889,13 +2220,6 @@ cross-spawn@^3.0.0:
lru-cache "^4.0.1"
which "^1.2.9"
-cross-spawn@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
- dependencies:
- lru-cache "^4.0.1"
- which "^1.2.9"
-
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"
@@ -1914,6 +2238,12 @@ cryptiles@2.x.x:
dependencies:
boom "2.x.x"
+cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
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"
@@ -1930,6 +2260,10 @@ d@1:
dependencies:
es5-ext "^0.10.9"
+dag-map@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-2.0.2.tgz#9714b472de82a1843de2fba9b6876938cab44c68"
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -1954,12 +2288,18 @@ debug@2.6.7:
dependencies:
ms "2.0.0"
-debug@2.6.8, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.4.0:
+debug@2.6.8, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.4.0, debug@^2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
dependencies:
ms "2.0.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:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -2085,6 +2425,10 @@ electron-to-chromium@^1.2.7:
version "1.3.13"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.13.tgz#1b3a5eace6e087bb5e257a100b0cbfe81b2891fc"
+electron-to-chromium@^1.3.18:
+ version "1.3.21"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz#a967ebdcfe8ed0083fc244d1894022a8e8113ea2"
+
ember-ajax@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-ajax/-/ember-ajax-3.0.0.tgz#8f21e9da0c1d433cf879aa855fce464d517e9ab5"
@@ -2098,12 +2442,6 @@ ember-aupac-typeahead@2.2.0:
ember-cli-babel "^5.1.7"
ember-cli-htmlbars "^1.1.1"
-ember-c3@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/ember-c3/-/ember-c3-0.3.1.tgz#56a4bbeb82fc0a2669b636ec6d8fb26e1bd372bf"
- dependencies:
- ember-cli-babel "^5.1.5"
-
ember-cli-app-version@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-3.0.0.tgz#d67a33aeec7bd03187fbe72c5663dadec4c3368a"
@@ -2112,21 +2450,6 @@ ember-cli-app-version@^3.0.0:
ember-cli-htmlbars "^1.0.0"
git-repo-version "0.4.1"
-ember-cli-babel@6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.1.0.tgz#d9c83a7d0c67cc8a3ccb9bd082971c3593e54fad"
- dependencies:
- amd-name-resolver "0.0.6"
- babel-plugin-debug-macros "^0.1.6"
- babel-plugin-transform-es2015-modules-amd "^6.24.0"
- babel-polyfill "^6.16.0"
- babel-preset-env "^1.2.0"
- broccoli-babel-transpiler "^6.0.0"
- broccoli-funnel "^1.0.0"
- broccoli-source "^1.1.0"
- clone "^2.0.0"
- ember-cli-version-checker "^1.2.0"
-
ember-cli-babel@^5.0.0, ember-cli-babel@^5.1.3, ember-cli-babel@^5.1.5, ember-cli-babel@^5.1.6, ember-cli-babel@^5.1.7, ember-cli-babel@^5.2.4:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-5.2.4.tgz#5ce4f46b08ed6f6d21e878619fb689719d6e8e13"
@@ -2137,7 +2460,7 @@ ember-cli-babel@^5.0.0, ember-cli-babel@^5.1.3, ember-cli-babel@^5.1.5, ember-cl
ember-cli-version-checker "^1.0.2"
resolve "^1.1.2"
-ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.0.0-beta.9, ember-cli-babel@^6.1.0:
+ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.0.0-beta.9:
version "6.3.0"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.3.0.tgz#ecb9533bc924b73594fe7bd96a99b4b2bb71c4fb"
dependencies:
@@ -2152,6 +2475,23 @@ ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.0.0-be
clone "^2.0.0"
ember-cli-version-checker "^2.0.0"
+ember-cli-babel@^6.0.0-beta.4, ember-cli-babel@^6.1.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.4.1, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.8.2:
+ version "6.8.2"
+ resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.8.2.tgz#eac2785964f4743f4c815cd53c6288f00cc087d7"
+ dependencies:
+ amd-name-resolver "0.0.7"
+ babel-plugin-debug-macros "^0.1.11"
+ babel-plugin-ember-modules-api-polyfill "^2.0.1"
+ babel-plugin-transform-es2015-modules-amd "^6.24.0"
+ babel-polyfill "^6.16.0"
+ babel-preset-env "^1.5.1"
+ broccoli-babel-transpiler "^6.1.2"
+ broccoli-debug "^0.6.2"
+ broccoli-funnel "^1.0.0"
+ broccoli-source "^1.1.0"
+ clone "^2.0.0"
+ ember-cli-version-checker "^2.0.0"
+
ember-cli-bootstrap-sassy@^0.5.6:
version "0.5.6"
resolved "https://registry.yarnpkg.com/ember-cli-bootstrap-sassy/-/ember-cli-bootstrap-sassy-0.5.6.tgz#d4a557c91acdcac3241f53d7fd14005a714d1217"
@@ -2188,12 +2528,12 @@ ember-cli-dependency-checker@^2.0.0:
is-git-url "^1.0.0"
semver "^5.3.0"
-ember-cli-eslint@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-3.1.0.tgz#8d9e2a867654835ac1b24858d9117e143fa54bd4"
+ember-cli-eslint@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-4.2.0.tgz#3ecb7b0e67fdadd1e68eaba05fbaffb03bcd7864"
dependencies:
- broccoli-lint-eslint "^3.3.0"
- ember-cli-version-checker "^1.3.1"
+ broccoli-lint-eslint "^4.1.0"
+ ember-cli-version-checker "^2.0.0"
rsvp "^3.2.1"
walk-sync "^0.3.0"
@@ -2205,16 +2545,17 @@ ember-cli-get-dependency-depth@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ember-cli-get-dependency-depth/-/ember-cli-get-dependency-depth-1.0.0.tgz#e0afecf82a2d52f00f28ab468295281aec368d11"
-ember-cli-htmlbars-inline-precompile@^0.4.0:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-0.4.3.tgz#4123f507fea6c59ba4c272ef7e713a6d55ba06c9"
+ember-cli-htmlbars-inline-precompile@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/ember-cli-htmlbars-inline-precompile/-/ember-cli-htmlbars-inline-precompile-1.0.2.tgz#5b544f664d5d9911f08cd979c5f70d8cb0ca2add"
dependencies:
babel-plugin-htmlbars-inline-precompile "^0.2.3"
ember-cli-version-checker "^2.0.0"
hash-for-dep "^1.0.2"
+ heimdalljs-logger "^0.1.7"
silent-error "^1.1.0"
-ember-cli-htmlbars@^1.0.0, ember-cli-htmlbars@^1.0.1, ember-cli-htmlbars@^1.0.10, ember-cli-htmlbars@^1.0.3, ember-cli-htmlbars@^1.1.1:
+ember-cli-htmlbars@^1.0.0, ember-cli-htmlbars@^1.0.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.3.tgz#06815262c1577736235bd42ce99db559ce5ebfd1"
dependencies:
@@ -2224,6 +2565,16 @@ ember-cli-htmlbars@^1.0.0, ember-cli-htmlbars@^1.0.1, ember-cli-htmlbars@^1.0.10
json-stable-stringify "^1.0.0"
strip-bom "^2.0.0"
+ember-cli-htmlbars@^1.0.1, ember-cli-htmlbars@^1.0.10, ember-cli-htmlbars@^1.1.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.4.tgz#461289724b34af372a6a0c4b6635819156963353"
+ dependencies:
+ broccoli-persistent-filter "^1.0.3"
+ ember-cli-version-checker "^1.0.2"
+ hash-for-dep "^1.0.2"
+ json-stable-stringify "^1.0.0"
+ strip-bom "^2.0.0"
+
ember-cli-htmlbars@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-2.0.1.tgz#e1e333c7ef4cc546c67734996541fd94ca4423ca"
@@ -2233,6 +2584,15 @@ ember-cli-htmlbars@^2.0.1:
json-stable-stringify "^1.0.0"
strip-bom "^3.0.0"
+ember-cli-htmlbars@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-2.0.3.tgz#e116e1500dba12f29c94b05b9ec90f52cb8bb042"
+ dependencies:
+ broccoli-persistent-filter "^1.0.3"
+ hash-for-dep "^1.0.2"
+ json-stable-stringify "^1.0.0"
+ strip-bom "^3.0.0"
+
ember-cli-import-polyfill@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/ember-cli-import-polyfill/-/ember-cli-import-polyfill-0.2.0.tgz#c1a08a8affb45c97b675926272fe78cf4ca166f2"
@@ -2267,17 +2627,21 @@ ember-cli-legacy-blueprints@^0.1.2:
rsvp "^3.0.17"
silent-error "^1.0.0"
-ember-cli-lodash-subset@^1.0.11, ember-cli-lodash-subset@^1.0.7:
+ember-cli-lodash-subset@^1.0.7:
version "1.0.12"
resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-1.0.12.tgz#af2e77eba5dcb0d77f3308d3a6fd7d3450f6e537"
+ember-cli-lodash-subset@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ember-cli-lodash-subset/-/ember-cli-lodash-subset-2.0.1.tgz#20cb68a790fe0fde2488ddfd8efbb7df6fe766f2"
+
ember-cli-mirage@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/ember-cli-mirage/-/ember-cli-mirage-0.3.2.tgz#db672dfcd44258041f18f5e9ddd4dc0b60861c3c"
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/ember-cli-mirage/-/ember-cli-mirage-0.3.4.tgz#eeb9d6e02c0c49c81915762178bab9a42d86ada8"
dependencies:
broccoli-funnel "^1.0.2"
broccoli-merge-trees "^1.1.0"
- broccoli-unwatched-tree "^0.1.1"
+ broccoli-stew "^1.5.0"
chalk "^1.1.1"
ember-cli-babel "^5.1.7"
ember-cli-node-assets "^0.1.4"
@@ -2324,20 +2688,20 @@ ember-cli-preprocess-registry@^3.1.0:
process-relative-require "^1.0.0"
silent-error "^1.0.0"
-ember-cli-qunit@^4.0.0-beta.1:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.0.0.tgz#1f0022469a5bd64f627b8102880a25e94e533a3b"
+ember-cli-qunit@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.0.1.tgz#905aa07620ae9fdb417c7e48d45bd2277b62f864"
dependencies:
- broccoli-funnel "^1.0.1"
+ broccoli-funnel "^2.0.0"
broccoli-merge-trees "^2.0.0"
- ember-cli-babel "^6.0.0-beta.7"
- ember-cli-test-loader "^2.0.0"
- ember-cli-version-checker "^1.1.4"
- ember-qunit "^2.1.3"
+ ember-cli-babel "^6.8.1"
+ ember-cli-test-loader "^2.2.0"
+ ember-cli-version-checker "^2.0.0"
+ ember-qunit "^2.2.0"
qunit-notifications "^0.1.1"
- qunitjs "^2.0.1"
- resolve "^1.1.6"
- silent-error "^1.0.0"
+ qunitjs "^2.4.0"
+ resolve "^1.4.0"
+ silent-error "^1.1.0"
ember-cli-sass@^6.1.3:
version "6.2.0"
@@ -2358,11 +2722,12 @@ ember-cli-shims@^1.1.0:
silent-error "^1.0.1"
ember-cli-showdown@^3.1.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ember-cli-showdown/-/ember-cli-showdown-3.2.1.tgz#19fc73670ccb60f59db8703ff5666769dd8d7d94"
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/ember-cli-showdown/-/ember-cli-showdown-3.2.2.tgz#a0b1539bf84bf2f09671514664defde64bdabb07"
dependencies:
broccoli-funnel "^1.0.1"
broccoli-merge-trees "^1.1.1"
+ broccoli-source "^1.1.0"
broccoli-stew "^1.5.0"
ember-cli-babel "^6.0.0"
ember-cli-htmlbars "^1.1.1"
@@ -2383,7 +2748,7 @@ ember-cli-string-helpers@1.2.1:
broccoli-funnel "^1.0.1"
ember-cli-babel "^5.1.7"
-ember-cli-string-utils@^1.0.0:
+ember-cli-string-utils@^1.0.0, ember-cli-string-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1"
@@ -2393,27 +2758,29 @@ ember-cli-test-info@^1.0.0:
dependencies:
ember-cli-string-utils "^1.0.0"
-ember-cli-test-loader@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-2.1.0.tgz#16163bae0ac32cad1af13c4ed94c6c698b54d431"
+ember-cli-test-loader@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ember-cli-test-loader/-/ember-cli-test-loader-2.2.0.tgz#3fb8d5d1357e4460d3f0a092f5375e71b6f7c243"
dependencies:
- ember-cli-babel "^6.0.0-beta.7"
+ ember-cli-babel "^6.8.1"
ember-cli-tooltipster@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/ember-cli-tooltipster/-/ember-cli-tooltipster-0.8.1.tgz#f1d2e548f31425dc2fb44a3b8d83b403675d451f"
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/ember-cli-tooltipster/-/ember-cli-tooltipster-0.8.2.tgz#ee436abaa713eb93a63742462a27b48dcf67f18e"
dependencies:
broccoli-funnel "^1.2.0"
broccoli-merge-trees "^2.0.0"
- ember-cli-babel "^6.0.0"
- ember-string-ishtmlsafe-polyfill "^1.1.0"
+ broccoli-stew "^1.5.0"
+ ember-cli-babel "^6.3.0"
+ ember-string-ishtmlsafe-polyfill "^2.0.0"
tooltipster "^4.2.5"
-ember-cli-uglify@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-1.2.0.tgz#3208c32b54bc2783056e8bb0d5cfe9bbaf17ffb2"
+ember-cli-uglify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-2.0.0.tgz#b096727d7d1718acc9bfe5d1bc81ce26cafdf6ca"
dependencies:
- broccoli-uglify-sourcemap "^1.0.0"
+ broccoli-uglify-sourcemap "^2.0.0"
+ lodash.defaultsdeep "^4.6.0"
ember-cli-valid-component-name@^1.0.0:
version "1.0.0"
@@ -2434,53 +2801,53 @@ ember-cli-version-checker@^2.0.0:
resolve "^1.3.3"
semver "^5.3.0"
-ember-cli@^2.13.1:
- version "2.13.2"
- resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-2.13.2.tgz#a561f08e69b184fa3175f706cced299c0d1684e5"
+ember-cli@~2.16.2:
+ version "2.16.2"
+ resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-2.16.2.tgz#53b922073a8e6f34255a6e0dcb1794a91ba3e1b7"
dependencies:
- amd-name-resolver "0.0.6"
+ amd-name-resolver "1.0.0"
babel-plugin-transform-es2015-modules-amd "^6.24.0"
bower-config "^1.3.0"
bower-endpoint-parser "0.2.2"
broccoli-babel-transpiler "^6.0.0"
broccoli-brocfile-loader "^0.18.0"
- broccoli-builder "^0.18.3"
+ broccoli-builder "^0.18.8"
broccoli-concat "^3.2.2"
broccoli-config-loader "^1.0.0"
broccoli-config-replace "^1.1.2"
- broccoli-funnel "^1.0.6"
+ broccoli-debug "^0.6.3"
+ broccoli-funnel "^2.0.0"
broccoli-funnel-reducer "^1.0.0"
broccoli-merge-trees "^2.0.0"
- broccoli-middleware "^1.0.0-beta.8"
+ broccoli-middleware "^1.0.0"
broccoli-source "^1.1.0"
broccoli-stew "^1.2.0"
calculate-cache-key-for-tree "^1.0.0"
capture-exit "^1.1.0"
- chalk "^1.1.3"
+ chalk "^2.0.1"
clean-base-url "^1.0.0"
compression "^1.4.4"
configstore "^3.0.0"
- console-ui "^1.0.2"
- core-object "^3.0.0"
+ console-ui "^2.0.0"
+ core-object "^3.1.3"
+ dag-map "^2.0.2"
diff "^3.2.0"
ember-cli-broccoli-sane-watcher "^2.0.4"
- ember-cli-get-component-path-option "^1.0.0"
ember-cli-is-package-missing "^1.0.0"
ember-cli-legacy-blueprints "^0.1.2"
- ember-cli-lodash-subset "^1.0.11"
+ ember-cli-lodash-subset "^2.0.1"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-preprocess-registry "^3.1.0"
ember-cli-string-utils "^1.0.0"
- ember-try "^0.2.14"
+ ember-try "^0.2.15"
ensure-posix-path "^1.0.2"
- escape-string-regexp "^1.0.3"
- execa "^0.6.0"
+ execa "^0.8.0"
exists-sync "0.0.4"
exit "^0.1.2"
express "^4.12.3"
filesize "^3.1.3"
find-up "^2.1.0"
- fs-extra "2.0.0"
+ fs-extra "^4.0.0"
fs-tree-diff "^0.5.2"
get-caller-file "^1.0.0"
git-repo-info "^1.4.1"
@@ -2491,14 +2858,14 @@ ember-cli@^2.13.1:
heimdalljs-logger "^0.1.7"
http-proxy "^1.9.0"
inflection "^1.7.0"
- is-git-url "^0.2.0"
+ is-git-url "^1.0.0"
isbinaryfile "^3.0.0"
js-yaml "^3.6.1"
json-stable-stringify "^1.0.1"
leek "0.0.24"
lodash.template "^4.2.5"
markdown-it "^8.3.0"
- markdown-it-terminal "0.0.4"
+ markdown-it-terminal "0.1.0"
minimatch "^3.0.0"
morgan "^1.8.1"
node-modules-path "^1.0.0"
@@ -2508,14 +2875,14 @@ ember-cli@^2.13.1:
promise-map-series "^0.2.1"
quick-temp "^0.1.8"
resolve "^1.3.0"
- rsvp "^3.3.3"
+ rsvp "^3.6.0"
sane "^1.6.0"
semver "^5.1.1"
silent-error "^1.0.0"
sort-package-json "^1.4.0"
symlink-or-copy "^1.1.8"
temp "0.8.3"
- testem "^1.15.0"
+ testem "^1.18.0"
tiny-lr "^1.0.3"
tree-sync "^1.2.1"
uuid "^3.0.0"
@@ -2552,12 +2919,12 @@ ember-composable-helpers@2.0.1:
ember-cli-babel "^5.1.7"
ember-concurrency@^0.8.3:
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-0.8.5.tgz#e0741fc74b71029877b1795a5d2aeab3e23fd7a0"
+ version "0.8.10"
+ resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-0.8.10.tgz#5788d1a43ed1e73562495719b29efe903c789675"
dependencies:
babel-core "^6.24.1"
- ember-cli-babel "^6.1.0"
- ember-getowner-polyfill "^1.1.0"
+ ember-cli-babel "^6.6.0"
+ ember-getowner-polyfill "^2.0.0"
ember-maybe-import-regenerator "^0.1.5"
ember-cookies@^0.0.13:
@@ -2567,20 +2934,25 @@ ember-cookies@^0.0.13:
ember-cli-babel "^5.1.7"
ember-getowner-polyfill "^1.2.2"
-ember-data@^2.13.0:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-2.13.1.tgz#fd85daf3c4c7bfe6a0c2e42cedf72048979f94ae"
+ember-data@~2.16.2:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/ember-data/-/ember-data-2.16.3.tgz#0853ed86bf813fcdbc97319d2c22abccf87b5093"
dependencies:
- amd-name-resolver "0.0.5"
+ amd-name-resolver "0.0.7"
babel-plugin-feature-flags "^0.3.1"
babel-plugin-filter-imports "^0.3.1"
+ babel-plugin-transform-es2015-block-scoping "^6.24.1"
babel6-plugin-strip-class-callcheck "^6.0.0"
babel6-plugin-strip-heimdall "^6.0.1"
broccoli-babel-transpiler "^6.0.0"
+ broccoli-debug "^0.6.2"
broccoli-file-creator "^1.0.0"
- broccoli-merge-trees "^1.0.0"
+ broccoli-funnel "^1.2.0"
+ broccoli-merge-trees "^2.0.0"
+ broccoli-rollup "^1.2.0"
+ calculate-cache-key-for-tree "^1.1.0"
chalk "^1.1.1"
- ember-cli-babel "^6.0.0-beta.7"
+ ember-cli-babel "^6.8.2"
ember-cli-path-utils "^1.0.0"
ember-cli-string-utils "^1.0.0"
ember-cli-test-info "^1.0.0"
@@ -2602,21 +2974,20 @@ ember-export-application-global@^2.0.0:
ember-cli-babel "^6.0.0-beta.7"
ember-factory-for-polyfill@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/ember-factory-for-polyfill/-/ember-factory-for-polyfill-1.1.2.tgz#ea802002ec55154eea7be82abb586e77429be579"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/ember-factory-for-polyfill/-/ember-factory-for-polyfill-1.2.0.tgz#e27752a7d9dbd5336e8b470341bc1c55bbe3e4d2"
dependencies:
- ember-cli-babel "^5.1.7"
ember-cli-version-checker "^1.2.0"
-ember-fetch@^1.4.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-1.6.0.tgz#cf93d3f7049c593f14d11b6f0924b746303b7812"
+"ember-fetch@^2.1.0 || ^3.0.0":
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-3.4.3.tgz#fb8ba73148bb2399a82b037e4fdf9a953cd496ba"
dependencies:
broccoli-funnel "^1.2.0"
broccoli-stew "^1.4.2"
broccoli-templater "^1.0.0"
- ember-cli-babel "^6.0.0"
- node-fetch "^2.0.0-alpha.3"
+ ember-cli-babel "^6.8.1"
+ node-fetch "^2.0.0-alpha.9"
whatwg-fetch "^2.0.3"
ember-font-awesome@3.0.5:
@@ -2637,13 +3008,20 @@ ember-get-config@0.2.1:
ember-cli-babel "^5.1.6"
ember-getowner-polyfill@^1.1.0, ember-getowner-polyfill@^1.1.1, ember-getowner-polyfill@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/ember-getowner-polyfill/-/ember-getowner-polyfill-1.2.3.tgz#ea70f4a48b1c05b91056371d1878bbafe018222e"
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/ember-getowner-polyfill/-/ember-getowner-polyfill-1.2.5.tgz#ceff8a09897d0d7e05c821bb71666a95eb26dc92"
dependencies:
ember-cli-babel "^5.1.6"
ember-cli-version-checker "^1.2.0"
ember-factory-for-polyfill "^1.1.0"
+ember-getowner-polyfill@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ember-getowner-polyfill/-/ember-getowner-polyfill-2.0.1.tgz#9bfe2b4d527ed174e76fef2c8f30937d77cb66fb"
+ dependencies:
+ ember-cli-version-checker "^1.2.0"
+ ember-factory-for-polyfill "^1.1.0"
+
ember-hash-helper-polyfill@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ember-hash-helper-polyfill/-/ember-hash-helper-polyfill-0.1.2.tgz#bc8ee6fa59e9541fce07d2cf4f263cf785e9e1db"
@@ -2652,10 +3030,10 @@ ember-hash-helper-polyfill@^0.1.2:
ember-cli-version-checker "^1.2.0"
ember-ignore-children-helper@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/ember-ignore-children-helper/-/ember-ignore-children-helper-1.0.0.tgz#7645d769377779ff292235725b5b1f5c2e4c16ab"
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ember-ignore-children-helper/-/ember-ignore-children-helper-1.0.1.tgz#f7c4aa17afb9c5685e1d4dcdb61c7b138ca7cdc3"
dependencies:
- ember-cli-babel "^5.1.6"
+ ember-cli-babel "^6.8.2"
ember-infinity@^0.2.8:
version "0.2.8"
@@ -2699,21 +3077,23 @@ ember-load@0.0.11:
ember-cli-version-checker "^1.1.4"
ember-lodash@^4.17.3:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/ember-lodash/-/ember-lodash-4.17.4.tgz#62a76e322e140281c31406b6dd5a11cf318c452d"
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/ember-lodash/-/ember-lodash-4.17.5.tgz#bda557402facae144567d1ef530b3de7c38bcde1"
dependencies:
broccoli-debug "^0.6.1"
broccoli-funnel "^1.1.0"
broccoli-merge-trees "^2.0.0"
broccoli-string-replace "^0.1.1"
- ember-cli-babel "6.1.0"
+ ember-cli-babel "^6.4.1"
lodash-es "^4.17.4"
ember-math-helpers@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ember-math-helpers/-/ember-math-helpers-2.1.0.tgz#cc342d6f91fdde5d45486ec3f27b9784f19b1884"
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/ember-math-helpers/-/ember-math-helpers-2.2.3.tgz#86d0ba90ce5577d5b574762ad3d132dd4b6209db"
dependencies:
- ember-cli-babel "^6.0.0"
+ broccoli-funnel "^1.2.0"
+ ember-cli-babel "^6.8.1"
+ ember-cli-htmlbars "^2.0.3"
ember-maybe-import-regenerator@^0.1.5:
version "0.1.6"
@@ -2725,17 +3105,17 @@ ember-maybe-import-regenerator@^0.1.5:
regenerator-runtime "^0.9.5"
ember-modal-dialog@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/ember-modal-dialog/-/ember-modal-dialog-2.2.0.tgz#f55995ba75206ec3efeead12bfe88ac0c55bf581"
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/ember-modal-dialog/-/ember-modal-dialog-2.3.0.tgz#7adf8e19f225ad637e8d4de5a7f69262149e2066"
dependencies:
ember-cli-babel "^6.1.0"
ember-cli-htmlbars "^2.0.1"
ember-ignore-children-helper "^1.0.0"
ember-wormhole "^0.5.1"
-ember-qunit@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-2.1.3.tgz#b3d9d4ddbcdb157cbd89ce6ad9caf51e3775f282"
+ember-qunit@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-2.2.0.tgz#3cdf400031c93a38de781a7304819738753b7f99"
dependencies:
ember-test-helpers "^0.6.3"
@@ -2757,7 +3137,11 @@ ember-retry@^0.0.4:
dependencies:
ember-cli-babel "^5.1.5"
-ember-router-generator@^1.0.0:
+ember-rfc176-data@^0.2.7:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.2.7.tgz#bd355bc9b473e08096b518784170a23388bc973b"
+
+ember-router-generator@^1.0.0, ember-router-generator@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee"
dependencies:
@@ -2778,48 +3162,50 @@ ember-runtime-enumerable-includes-polyfill@^2.0.0:
ember-cli-version-checker "^1.1.6"
ember-simple-auth@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ember-simple-auth/-/ember-simple-auth-1.3.0.tgz#3e72338eb5953843d113a3b39191bf538bfb1dce"
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ember-simple-auth/-/ember-simple-auth-1.4.0.tgz#b989fb94a334ca1634e62f9ca99b0b94f16167ec"
dependencies:
+ base-64 "^0.1.0"
broccoli-file-creator "^1.1.1"
+ broccoli-funnel "^1.2.0"
+ broccoli-merge-trees "^2.0.0"
ember-cli-babel "^6.0.0"
ember-cli-is-package-missing "^1.0.0"
ember-cookies "^0.0.13"
- ember-fetch "^1.4.2"
+ ember-fetch "^2.1.0 || ^3.0.0"
ember-getowner-polyfill "^1.1.0"
silent-error "^1.0.0"
-ember-source@~2.13.0:
- version "2.13.3"
- resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-2.13.3.tgz#7fbf413cceddb71d267502d59162ad2df6e9ff11"
- dependencies:
- "@glimmer/compiler" "^0.22.3"
- "@glimmer/di" "^0.1.8"
- "@glimmer/node" "^0.22.3"
- "@glimmer/reference" "^0.22.3"
- "@glimmer/runtime" "^0.22.3"
- "@glimmer/util" "^0.22.3"
- broccoli-funnel "^1.0.6"
- broccoli-merge-trees "^1.1.4"
+ember-source@~2.16.0:
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-2.16.0.tgz#2becd7966278fe453046b91178ede665c2cf241a"
+ dependencies:
+ "@glimmer/compiler" "^0.25.3"
+ "@glimmer/node" "^0.25.3"
+ "@glimmer/reference" "^0.25.3"
+ "@glimmer/runtime" "^0.25.3"
+ broccoli-funnel "^1.2.0"
+ broccoli-merge-trees "^2.0.0"
ember-cli-get-component-path-option "^1.0.0"
+ ember-cli-is-package-missing "^1.0.0"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-path-utils "^1.0.0"
- ember-cli-string-utils "^1.0.0"
+ ember-cli-string-utils "^1.1.0"
ember-cli-test-info "^1.0.0"
ember-cli-valid-component-name "^1.0.0"
- ember-cli-version-checker "^1.1.7"
- handlebars "^4.0.6"
- jquery "^3.1.1"
- resolve "^1.1.7"
- rsvp "^3.4.0"
+ ember-cli-version-checker "^1.3.1"
+ ember-router-generator "^1.2.3"
+ inflection "^1.12.0"
+ jquery "^3.2.1"
+ resolve "^1.3.3"
+ rsvp "^3.6.1"
simple-dom "^0.3.0"
- simple-html-tokenizer "^0.3.0"
+ simple-html-tokenizer "^0.4.1"
-ember-string-ishtmlsafe-polyfill@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ember-string-ishtmlsafe-polyfill/-/ember-string-ishtmlsafe-polyfill-1.1.0.tgz#ecde33419ff912b91dd8acf0640eb74b9758408e"
+ember-string-ishtmlsafe-polyfill@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ember-string-ishtmlsafe-polyfill/-/ember-string-ishtmlsafe-polyfill-2.0.0.tgz#38f17038c3451999e9f1db748e424d8831e85863"
dependencies:
- ember-cli-babel "^5.1.7"
ember-cli-version-checker "^1.2.0"
ember-test-helpers@^0.6.3:
@@ -2841,9 +3227,9 @@ ember-try-config@^2.0.1:
rsvp "^3.2.1"
semver "^5.1.0"
-ember-try@^0.2.14:
- version "0.2.15"
- resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-0.2.15.tgz#559c756058717595babe70068e541625bd5e210a"
+ember-try@^0.2.15:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-0.2.17.tgz#0ffff687630291b4cf94f5b196e728c1a92d8aec"
dependencies:
chalk "^1.0.0"
cli-table2 "^0.2.0"
@@ -2874,11 +3260,11 @@ ember-welcome-page@^3.0.0:
ember-cli-htmlbars "^1.0.3"
ember-wormhole@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/ember-wormhole/-/ember-wormhole-0.5.1.tgz#f2a6fff13b1c037ffa83b2c9291d8b5978878e5b"
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/ember-wormhole/-/ember-wormhole-0.5.2.tgz#cc0ceb7db4f8b8da0fd852edc81d75cb1dcd92f1"
dependencies:
- ember-cli-babel "^5.1.6"
- ember-cli-htmlbars "^1.0.3"
+ ember-cli-babel "^6.0.0"
+ ember-cli-htmlbars "^1.1.1"
encodeurl@~1.0.1:
version "1.0.1"
@@ -2957,7 +3343,7 @@ es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
es6-iterator "2"
es6-symbol "~3.1"
-es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
+es6-iterator@2, es6-iterator@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
dependencies:
@@ -2965,7 +3351,7 @@ es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
es5-ext "^0.10.14"
es6-symbol "^3.1"
-es6-map@^0.1.3:
+es6-map@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
dependencies:
@@ -2986,90 +3372,77 @@ es6-set@~0.1.5:
es6-symbol "3.1.1"
event-emitter "~0.3.5"
-es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
+es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@~3.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"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
-
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.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.0, 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"
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+eslint-scope@^3.7.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint@^3.0.0:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
+eslint@^4.0.0:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.6.1.tgz#ddc7fc7fd70bf93205b0b3449bb16a1e9e7d4950"
dependencies:
- babel-code-frame "^6.16.0"
- chalk "^1.1.3"
- concat-stream "^1.5.2"
- debug "^2.1.1"
+ ajv "^5.2.0"
+ babel-code-frame "^6.22.0"
+ chalk "^2.1.0"
+ concat-stream "^1.6.0"
+ cross-spawn "^5.1.0"
+ debug "^2.6.8"
doctrine "^2.0.0"
- escope "^3.6.0"
- espree "^3.4.0"
+ eslint-scope "^3.7.1"
+ espree "^3.5.0"
esquery "^1.0.0"
estraverse "^4.2.0"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
- glob "^7.0.3"
- globals "^9.14.0"
- ignore "^3.2.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^9.17.0"
+ ignore "^3.3.3"
imurmurhash "^0.1.4"
- inquirer "^0.12.0"
- is-my-json-valid "^2.10.0"
+ inquirer "^3.0.6"
is-resolvable "^1.0.0"
- js-yaml "^3.5.1"
- json-stable-stringify "^1.0.0"
+ js-yaml "^3.9.1"
+ json-stable-stringify "^1.0.1"
levn "^0.3.0"
- lodash "^4.0.0"
- mkdirp "^0.5.0"
+ lodash "^4.17.4"
+ minimatch "^3.0.2"
+ mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
- path-is-inside "^1.0.1"
- pluralize "^1.2.1"
- progress "^1.1.8"
- require-uncached "^1.0.2"
- shelljs "^0.7.5"
- strip-bom "^3.0.0"
+ path-is-inside "^1.0.2"
+ pluralize "^4.0.0"
+ progress "^2.0.0"
+ require-uncached "^1.0.3"
+ semver "^5.3.0"
+ strip-ansi "^4.0.0"
strip-json-comments "~2.0.1"
- table "^3.7.8"
+ table "^4.0.1"
text-table "~0.2.0"
- user-home "^2.0.0"
-espree@^3.4.0:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374"
+espree@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d"
dependencies:
- acorn "^5.0.1"
+ acorn "^5.1.1"
acorn-jsx "^3.0.0"
-esprima-fb@~12001.1.0-dev-harmony-fb:
- version "12001.1.0-dev-harmony-fb"
- resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-12001.1.0-dev-harmony-fb.tgz#d84400384ba95ce2678c617ad24a7f40808da915"
-
esprima-fb@~15001.1001.0-dev-harmony-fb:
version "15001.1001.0-dev-harmony-fb"
resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659"
@@ -3082,6 +3455,14 @@ esprima@^3.1.1, 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.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esprima@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9"
+
esquery@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
@@ -3132,21 +3513,21 @@ exec-sh@^0.2.0:
dependencies:
merge "^1.1.3"
-execa@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36"
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
dependencies:
- cross-spawn "^4.0.0"
- get-stream "^2.2.0"
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
is-stream "^1.1.0"
npm-run-path "^2.0.0"
p-finally "^1.0.0"
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^0.6.0:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe"
+execa@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
dependencies:
cross-spawn "^5.0.1"
get-stream "^3.0.0"
@@ -3168,10 +3549,6 @@ exists-sync@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879"
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -3227,17 +3604,17 @@ express@^4.10.7, express@^4.12.3:
utils-merge "1.0.0"
vary "~1.1.1"
-extend@^3.0.0, extend@~3.0.0:
+extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-external-editor@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b"
+external-editor@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
dependencies:
- extend "^3.0.0"
- spawn-sync "^1.0.15"
- tmp "^0.0.29"
+ iconv-lite "^0.4.17"
+ jschardet "^1.4.2"
+ tmp "^0.0.31"
extglob@^0.3.1:
version "0.3.2"
@@ -3249,14 +3626,18 @@ extsprintf@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
-fake-xml-http-request@^1.4.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-1.5.0.tgz#d79602a97043d4d8fea671d5d904af38847b451d"
+fake-xml-http-request@^1.4.0, fake-xml-http-request@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-1.6.0.tgz#bd0ac79ae3e2660098282048a12c730a6f64d550"
faker@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/faker/-/faker-3.1.0.tgz#0f908faf4e6ec02524e54a57e432c5c013e08c9f"
+fast-deep-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+
fast-levenshtein@~2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
@@ -3292,12 +3673,11 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
file-entry-cache@^2.0.0:
version "2.0.0"
@@ -3353,7 +3733,7 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
-findup-sync@^0.4.2, findup-sync@^0.4.3:
+findup-sync@0.4.3, findup-sync@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
dependencies:
@@ -3407,6 +3787,14 @@ form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"
+form-data@~2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
forwarded@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363"
@@ -3419,13 +3807,6 @@ fs-exists-sync@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
-fs-extra@2.0.0, fs-extra@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
-
fs-extra@^0.24.0:
version "0.24.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952"
@@ -3463,6 +3844,21 @@ fs-extra@^1.0.0:
jsonfile "^2.1.0"
klaw "^1.0.0"
+fs-extra@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^2.1.0"
+
+fs-extra@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-readdir-recursive@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059"
@@ -3504,6 +3900,10 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
mkdirp ">=0.5 0"
rimraf "2"
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@@ -3523,16 +3923,6 @@ gaze@^1.0.0:
dependencies:
globule "^1.0.0"
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
get-caller-file@^1.0.0, get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
@@ -3541,13 +3931,6 @@ 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@^2.2.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
- dependencies:
- object-assign "^4.0.1"
- pinkie-promise "^2.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"
@@ -3585,7 +3968,7 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
-glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@~7.1.1:
+glob@7.1.1, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5:
version "7.1.1"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
dependencies:
@@ -3606,6 +3989,17 @@ glob@^5.0.10, glob@^5.0.15:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.0.0, glob@^7.1.2, glob@~7.1.1:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-modules@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
@@ -3626,10 +4020,14 @@ globals@^6.4.0:
version "6.4.1"
resolved "https://registry.yarnpkg.com/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f"
-globals@^9.0.0, globals@^9.14.0:
+globals@^9.0.0:
version "9.17.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
+globals@^9.17.0, globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
@@ -3642,11 +4040,11 @@ globby@^5.0.0:
pinkie-promise "^2.0.0"
globule@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
dependencies:
glob "~7.1.1"
- lodash "~4.16.4"
+ lodash "~4.17.4"
minimatch "~3.0.2"
good-listener@^1.2.2:
@@ -3681,6 +4079,10 @@ har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
@@ -3688,6 +4090,13 @@ har-validator@~4.2.1:
ajv "^4.9.1"
har-schema "^1.0.5"
+har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
has-ansi@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
@@ -3720,6 +4129,10 @@ 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-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@@ -3742,6 +4155,15 @@ hawk@~3.1.3:
hoek "2.x.x"
sntp "1.x.x"
+hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
heimdalljs-fs-monitor@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-0.1.0.tgz#d404a65688c6714c485469ed3495da4853440272"
@@ -3776,6 +4198,10 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+hoek@4.x.x:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
home-or-tmp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-1.0.0.tgz#4b9f1e40800c3e50c6c27f781676afcce71f3985"
@@ -3796,7 +4222,11 @@ homedir-polyfill@^1.0.0:
dependencies:
parse-passwd "^1.0.0"
-hosted-git-info@^2.1.4, hosted-git-info@^2.1.5:
+hosted-git-info@^2.1.4:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+
+hosted-git-info@^2.1.5:
version "2.4.2"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
@@ -3820,17 +4250,29 @@ 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 "^0.2.0"
+ assert-plus "^0.2.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
-iconv-lite@^0.4.5, iconv-lite@~0.4.13:
+iconv-lite@^0.4.17, iconv-lite@^0.4.5:
+ version "0.4.19"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+
+iconv-lite@~0.4.13:
version "0.4.17"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
-ignore@^3.2.0:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
+ignore@^3.3.3:
+ version "3.3.5"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
imurmurhash@^0.1.4:
version "0.1.4"
@@ -3854,7 +4296,7 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
-inflection@^1.7.0, inflection@^1.7.1, inflection@^1.8.0:
+inflection@^1.12.0, inflection@^1.7.0, inflection@^1.7.1, inflection@^1.8.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
@@ -3865,7 +4307,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.0, inherits@~2.0.1:
+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"
@@ -3883,47 +4325,44 @@ inline-source-map-comment@^1.0.5:
sum-up "^1.0.1"
xtend "^4.0.0"
-inquirer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+inquirer@^3.0.6:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.3.tgz#1c7b1731cf77b934ec47d22c9ac5aa8fe7fbe095"
dependencies:
- ansi-escapes "^1.1.0"
- ansi-regex "^2.0.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
+ ansi-escapes "^2.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
cli-width "^2.0.0"
- figures "^1.3.5"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
lodash "^4.3.0"
- readline2 "^1.0.1"
- run-async "^0.1.0"
- rx-lite "^3.1.2"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
through "^2.3.6"
-inquirer@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918"
+inquirer@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
dependencies:
- ansi-escapes "^1.1.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
cli-width "^2.0.0"
- external-editor "^1.1.0"
- figures "^1.3.5"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
lodash "^4.3.0"
- mute-stream "0.0.6"
- pinkie-promise "^2.0.0"
+ mute-stream "0.0.7"
run-async "^2.2.0"
- rx "^4.1.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
through "^2.3.6"
-interpret@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
-
invariant@^2.2.0, invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
@@ -3992,10 +4431,6 @@ is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-is-git-url@^0.2.0:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-0.2.3.tgz#445200d6fbd6da028fb5e01440d9afc93f3ccb64"
-
is-git-url@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-1.0.0.tgz#53f684cd143285b52c3244b4e6f28253527af66b"
@@ -4012,15 +4447,6 @@ is-integer@^1.0.4:
dependencies:
is-finite "^1.0.0"
-is-my-json-valid@^2.10.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
is-number@^2.0.2, is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -4059,10 +4485,6 @@ is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
is-resolvable@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
@@ -4131,13 +4553,13 @@ jodid25519@^1.0.0:
dependencies:
jsbn "~0.1.0"
-jquery@^3.1.1:
+jquery@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
js-base64@^2.1.8, js-base64@^2.1.9:
- version "2.1.9"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
js-reporters@1.2.0:
version "1.2.0"
@@ -4151,17 +4573,32 @@ js-tokens@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
-js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.5.1, js-yaml@^3.6.1:
+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.2.5, js-yaml@^3.2.7, js-yaml@^3.6.1:
version "3.8.4"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
dependencies:
argparse "^1.0.7"
esprima "^3.1.1"
+js-yaml@^3.9.1:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+jschardet@^1.4.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
+
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -4174,6 +4611,10 @@ jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+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@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -4206,14 +4647,16 @@ jsonfile@^2.1.0:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ 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"
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-
jsprim@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
@@ -4270,12 +4713,6 @@ linkify-it@^2.0.0:
dependencies:
uc.micro "^1.0.1"
-linkify-it@~1.2.0:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a"
- dependencies:
- uc.micro "^1.0.1"
-
liquid-fire@0.27.3:
version "0.27.3"
resolved "https://registry.yarnpkg.com/liquid-fire/-/liquid-fire-0.27.3.tgz#483e2d4b9492c5ee6dd2c9fda5fe33a85cf0305b"
@@ -4329,14 +4766,6 @@ lodash-es@^4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
-lodash._arraycopy@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
-
-lodash._arrayeach@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
-
lodash._baseassign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
@@ -4355,10 +4784,6 @@ lodash._baseflatten@^3.0.0:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
-lodash._basefor@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
-
lodash._basetostring@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
@@ -4450,18 +4875,6 @@ lodash.isarray@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-lodash.isplainobject@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5"
- dependencies:
- lodash._basefor "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.keysin "^3.0.0"
-
-lodash.istypedarray@^3.0.0:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
-
lodash.keys@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
@@ -4470,30 +4883,7 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
-lodash.keysin@^3.0.0:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f"
- dependencies:
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
-
-lodash.merge@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994"
- dependencies:
- lodash._arraycopy "^3.0.0"
- lodash._arrayeach "^3.0.0"
- lodash._createassigner "^3.0.0"
- lodash._getnative "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
- lodash.isplainobject "^3.0.0"
- lodash.istypedarray "^3.0.0"
- lodash.keys "^3.0.0"
- lodash.keysin "^3.0.0"
- lodash.toplainobject "^3.0.0"
-
-lodash.merge@^4.3.0, lodash.merge@^4.4.0, lodash.merge@^4.5.1:
+lodash.merge@^4.3.0, lodash.merge@^4.4.0, lodash.merge@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
@@ -4543,13 +4933,6 @@ lodash.templatesettings@^4.0.0:
dependencies:
lodash._reinterpolate "~3.0.0"
-lodash.toplainobject@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d"
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash.keysin "^3.0.0"
-
lodash.uniq@^4.2.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@@ -4562,13 +4945,15 @@ lodash@^3.10.0, lodash@^3.10.1, lodash@^3.9.3:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1:
+lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-lodash@~4.16.4:
- version "4.16.6"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777"
+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"
longest@^1.0.1:
version "1.0.1"
@@ -4610,27 +4995,17 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
-markdown-it-terminal@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.0.4.tgz#3f2ce624ba2ca964a78b8b388d605ee330de9ced"
+markdown-it-terminal@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.1.0.tgz#545abd8dd01c3d62353bfcea71db580b51d22bd9"
dependencies:
- ansi-styles "^2.1.0"
- cardinal "^0.5.0"
+ ansi-styles "^3.0.0"
+ cardinal "^1.0.0"
cli-table "^0.3.1"
- lodash.merge "^3.3.2"
- markdown-it "^4.4.0"
-
-markdown-it@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414"
- dependencies:
- argparse "~1.0.2"
- entities "~1.1.1"
- linkify-it "~1.2.0"
- mdurl "~1.0.0"
- uc.micro "^1.0.0"
+ lodash.merge "^4.6.0"
+ markdown-it "^8.3.1"
-markdown-it@^8.3.0:
+markdown-it@^8.3.0, markdown-it@^8.3.1:
version "8.3.1"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.3.1.tgz#2f4b622948ccdc193d66f3ca2d43125ac4ac7323"
dependencies:
@@ -4650,7 +5025,13 @@ matcher-collection@^1.0.0, matcher-collection@^1.0.1:
dependencies:
minimatch "^3.0.2"
-md5-hex@^1.0.2:
+matcher-collection@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.0.5.tgz#2ee095438372cb8884f058234138c05c644ec339"
+ dependencies:
+ minimatch "^3.0.2"
+
+md5-hex@^1.0.2, md5-hex@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
dependencies:
@@ -4674,7 +5055,7 @@ md5@^2.1.0:
crypt "~0.0.1"
is-buffer "~1.1.1"
-mdurl@^1.0.1, mdurl@~1.0.0:
+mdurl@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@@ -4750,33 +5131,35 @@ micromatch@^2.1.5, micromatch@^2.3.7:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
-"mime-db@>= 1.27.0 < 2":
- version "1.28.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.28.0.tgz#fedd349be06d2865b7fc57d837c6de4f17d7ac3c"
-
-mime-db@~1.27.0:
+"mime-db@>= 1.27.0 < 2", mime-db@~1.27.0:
version "1.27.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
+mime-db@~1.30.0:
+ version "1.30.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+
mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7:
version "2.1.15"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
dependencies:
mime-db "~1.27.0"
-mime@1.3.4:
+mime-types@~2.1.17:
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ dependencies:
+ mime-db "~1.30.0"
+
+mime@1.3.4, mime@^1.2.11:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
-mime@^1.2.11:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
-
mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
-"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2:
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -4840,18 +5223,18 @@ mustache@^2.2.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0"
-mute-stream@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-
-mute-stream@0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
-nan@^2.3.0, nan@^2.3.2:
+nan@^2.3.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
+nan@^2.3.2:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -4867,15 +5250,13 @@ node-fetch@^1.3.3:
encoding "^0.1.11"
is-stream "^1.0.1"
-node-fetch@^2.0.0-alpha.3:
- version "2.0.0-alpha.4"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0-alpha.4.tgz#ae3fe092fef710a7e565e68d5fcccefabad674b6"
- dependencies:
- encoding "^0.1.11"
+node-fetch@^2.0.0-alpha.9:
+ version "2.0.0-alpha.9"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.0.0-alpha.9.tgz#990c0634f510f76449a0d6f6eaec96b22f273628"
node-gyp@^3.3.1:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.1.tgz#19561067ff185464aded478212681f47fd578cbc"
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
@@ -4895,7 +5276,7 @@ node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
-node-modules-path@^1.0.0:
+node-modules-path@^1.0.0, node-modules-path@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8"
@@ -4959,8 +5340,8 @@ nopt@^4.0.1:
osenv "^0.1.4"
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb"
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
@@ -4990,7 +5371,16 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
+"npmlog@0 || 1 || 2 || 3 || 4":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+npmlog@^4.0.0, npmlog@^4.0.2:
version "4.1.0"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
dependencies:
@@ -5003,7 +5393,7 @@ 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"
-oauth-sign@~0.8.1:
+oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@@ -5011,14 +5401,14 @@ object-assign@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
+object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
object-assign@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
-object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
object-component@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
@@ -5046,9 +5436,11 @@ once@^1.3.0, once@^1.3.3:
dependencies:
wrappy "1"
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
optimist@^0.6.1:
version "0.6.1"
@@ -5072,14 +5464,14 @@ options@>=0.0.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
-ora@^0.2.0:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
+ora@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a"
dependencies:
chalk "^1.1.1"
- cli-cursor "^1.0.2"
- cli-spinners "^0.1.2"
- object-assign "^4.0.1"
+ cli-cursor "^2.1.0"
+ cli-spinners "^1.0.0"
+ log-symbols "^1.0.2"
os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
@@ -5092,17 +5484,13 @@ os-locale@^1.4.0:
lcid "^1.0.0"
os-locale@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.0.0.tgz#15918ded510522b81ee7ae5a309d54f639fc39a4"
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
dependencies:
- execa "^0.5.0"
+ execa "^0.7.0"
lcid "^1.0.0"
mem "^1.1.0"
-os-shim@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -5195,7 +5583,7 @@ path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-path-is-inside@^1.0.1:
+path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
@@ -5233,6 +5621,10 @@ 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"
@@ -5247,9 +5639,9 @@ pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-pluralize@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+pluralize@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762"
portfinder@^1.0.7:
version "1.0.13"
@@ -5278,8 +5670,8 @@ postcss-selector-namespace@^1.3.0:
postcss "^5.2.15"
postcss@^5.0.21, postcss@^5.2.10, postcss@^5.2.13, postcss@^5.2.15:
- version "5.2.17"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b"
+ version "5.2.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
dependencies:
chalk "^1.1.3"
js-base64 "^2.1.9"
@@ -5295,11 +5687,11 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
pretender@^1.4.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/pretender/-/pretender-1.4.2.tgz#dde9995dfdf75b28a3dd7a73cde2f9f612e5e8f4"
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/pretender/-/pretender-1.6.0.tgz#0bb6dc9622b576772938814bc36f7cf2f86660dd"
dependencies:
- fake-xml-http-request "^1.4.0"
- route-recognizer "^0.2.3"
+ fake-xml-http-request "^1.6.0"
+ route-recognizer "^0.3.3"
printf@^0.2.3:
version "0.2.5"
@@ -5319,9 +5711,9 @@ process-relative-require@^1.0.0:
dependencies:
node-modules-path "^1.0.0"
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+progress@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
promise-map-series@^0.2.1:
version "0.2.3"
@@ -5345,13 +5737,17 @@ punycode@^1.4.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
q@^1.1.2:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
qs@6.4.0, qs@^6.4.0, qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
+qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
quick-temp@^0.1.0, quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quick-temp@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.8.tgz#bab02a242ab8fb0dd758a3c9776b32f9a5d94408"
@@ -5364,15 +5760,16 @@ qunit-notifications@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/qunit-notifications/-/qunit-notifications-0.1.1.tgz#3001afc6a6a77dfbd962ccbcddde12dec5286c09"
-qunitjs@^2.0.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/qunitjs/-/qunitjs-2.3.2.tgz#938ce24250aa3717b90b47598f1429b10343d85a"
+qunitjs@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/qunitjs/-/qunitjs-2.4.0.tgz#58f3a81e846687f2e7f637c5bedc9c267f887261"
dependencies:
chokidar "1.6.1"
commander "2.9.0"
exists-stat "1.0.0"
- findup-sync "^0.4.3"
+ findup-sync "0.4.3"
js-reporters "1.2.0"
+ resolve "1.3.2"
walk-sync "0.3.1"
randomatic@^1.1.3:
@@ -5432,7 +5829,7 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-readable-stream@^2, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
+readable-stream@^2, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
version "2.2.9"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
dependencies:
@@ -5444,6 +5841,18 @@ readable-stream@^2, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-str
string_decoder "~1.0.0"
util-deprecate "~1.0.1"
+readable-stream@^2.0.1:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.0.3"
+ util-deprecate "~1.0.1"
+
readable-stream@~1.0.2:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@@ -5462,15 +5871,7 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
-readline2@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- mute-stream "0.0.5"
-
-recast@0.10.33, recast@^0.10.10:
+recast@0.10.33:
version "0.10.33"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697"
dependencies:
@@ -5479,6 +5880,15 @@ recast@0.10.33, recast@^0.10.10:
private "~0.1.5"
source-map "~0.5.0"
+recast@^0.10.10:
+ version "0.10.43"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f"
+ dependencies:
+ ast-types "0.8.15"
+ esprima-fb "~15001.1001.0-dev-harmony-fb"
+ private "~0.1.5"
+ source-map "~0.5.0"
+
recast@^0.11.17, recast@^0.11.3:
version "0.11.23"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
@@ -5488,12 +5898,6 @@ recast@^0.11.17, recast@^0.11.3:
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"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -5501,11 +5905,11 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
-redeyed@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-0.5.0.tgz#7ab000e60ee3875ac115d29edb32c1403c6c25d1"
+redeyed@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a"
dependencies:
- esprima-fb "~12001.1.0-dev-harmony-fb"
+ esprima "~3.0.0"
regenerate@^1.2.1:
version "1.3.2"
@@ -5515,6 +5919,10 @@ regenerator-runtime@^0.10.0:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+regenerator-runtime@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
+
regenerator-runtime@^0.9.5:
version "0.9.6"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029"
@@ -5597,7 +6005,34 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@2, request@^2.79.0, request@^2.81.0:
+request@2, request@^2.79.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
+request@^2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
@@ -5632,7 +6067,7 @@ 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"
-require-uncached@^1.0.2:
+require-uncached@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
dependencies:
@@ -5654,18 +6089,30 @@ resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
-resolve@^1.1.2, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.0, resolve@^1.3.2, resolve@^1.3.3:
+resolve@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235"
+ dependencies:
+ path-parse "^1.0.5"
+
+resolve@^1.1.2, resolve@^1.1.7, resolve@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
+ dependencies:
+ path-parse "^1.0.5"
+
+resolve@^1.1.6, resolve@^1.3.0, resolve@^1.3.2, resolve@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
dependencies:
path-parse "^1.0.5"
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
right-align@^0.1.1:
version "0.1.3"
@@ -5683,14 +6130,28 @@ rimraf@~2.2.6:
version "2.2.8"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
+rollup@^0.41.4:
+ version "0.41.6"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.41.6.tgz#e0d05497877a398c104d816d2733a718a7a94e2a"
+ dependencies:
+ source-map-support "^0.4.0"
+
route-recognizer@^0.2.3:
version "0.2.10"
resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.2.10.tgz#024b2283c2e68d13a7c7f5173a5924645e8902df"
-rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.3, rsvp@^3.4.0, rsvp@^3.5.0:
+route-recognizer@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.3.tgz#1d365e27fa6995e091675f7dc940a8c00353bd29"
+
+rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.3, rsvp@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34"
+rsvp@^3.6.0, rsvp@^3.6.1:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
+
rsvp@~3.0.6:
version "3.0.21"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.0.21.tgz#49c588fe18ef293bcd0ab9f4e6756e6ac433359f"
@@ -5699,30 +6160,30 @@ rsvp@~3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a"
-run-async@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
- dependencies:
- once "^1.3.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"
-rx-lite@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+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"
+ dependencies:
+ rx-lite "*"
-rx@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
+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"
safe-buffer@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+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-json-parse@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57"
@@ -5759,7 +6220,11 @@ select@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.1.1, semver@^5.3.0, semver@~5.3.0:
+"semver@2 || 3 || 4 || 5":
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
+
+semver@^5.1.0, semver@^5.1.1, semver@^5.3.0, semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -5812,25 +6277,17 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-shelljs@^0.7.5:
- version "0.7.7"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
shellwords@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14"
showdown@^1.6.4:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.7.0.tgz#e050dc430bd4bccf356d28a7239d946bf30b3ac9"
+ version "1.7.6"
+ resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.7.6.tgz#ac3d3de9bec712372d0406487476ad97a27b4c34"
dependencies:
- yargs "^8.0.1"
+ yargs "^9.0.1"
-signal-exit@^3.0.0:
+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"
@@ -5852,6 +6309,10 @@ simple-html-tokenizer@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.3.0.tgz#9b8b5559d80e331a544dd13dd59382e5d0d94411"
+simple-html-tokenizer@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.4.1.tgz#028988bb7fe8b2e6645676d82052587d440b02d3"
+
simple-is@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0"
@@ -5874,6 +6335,12 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
+sntp@2.x.x:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"
+ dependencies:
+ hoek "4.x.x"
+
socket.io-adapter@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
@@ -5934,6 +6401,12 @@ source-map-support@^0.2.10:
dependencies:
source-map "0.1.32"
+source-map-support@^0.4.0:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ dependencies:
+ source-map "^0.5.6"
+
source-map-support@^0.4.2:
version "0.4.15"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
@@ -5944,6 +6417,10 @@ 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-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.1.32:
version "0.1.32"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266"
@@ -5960,17 +6437,14 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
spawn-args@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb"
-spawn-sync@^1.0.15:
- version "1.0.15"
- resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
- dependencies:
- concat-stream "^1.4.7"
- os-shim "^0.1.2"
-
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -6041,6 +6515,13 @@ string-width@^2.0.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^3.0.0"
+string-width@^2.1.0:
+ 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_decoder@0.10, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -6051,6 +6532,12 @@ string_decoder@~1.0.0:
dependencies:
safe-buffer "^5.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"
+
stringmap@~0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/stringmap/-/stringmap-0.2.2.tgz#556c137b258f942b8776f5b2ef582aa069d7d1b1"
@@ -6059,7 +6546,7 @@ stringset@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/stringset/-/stringset-0.2.1.tgz#ef259c4e349344377fcd1c913dd2e848c9c042b5"
-stringstream@~0.0.4:
+stringstream@~0.0.4, stringstream@~0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -6075,6 +6562,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
@@ -6123,13 +6616,19 @@ supports-color@^3.2.3:
dependencies:
has-flag "^1.0.0"
+supports-color@^4.0.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
+ dependencies:
+ has-flag "^2.0.0"
+
symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8:
version "1.1.8"
resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3"
-table@^3.7.8:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+table@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435"
dependencies:
ajv "^4.7.0"
ajv-keywords "^1.0.0"
@@ -6175,9 +6674,9 @@ temp@0.8.3:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
-testem@^1.15.0:
- version "1.16.2"
- resolved "https://registry.yarnpkg.com/testem/-/testem-1.16.2.tgz#95446d310a10e852d3ebdbc0ce2b3fd75378ba29"
+testem@^1.18.0:
+ version "1.18.4"
+ resolved "https://registry.yarnpkg.com/testem/-/testem-1.18.4.tgz#e45fed922bec2f54a616c43f11922598ac97eb41"
dependencies:
backbone "^1.1.2"
bluebird "^3.4.6"
@@ -6219,8 +6718,8 @@ through@^2.3.6, through@^2.3.8, through@~2.3.8:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
tiny-emitter@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.0.tgz#bad327adb1804b42a231afa741532bd884cd09ad"
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"
tiny-lr@^1.0.3:
version "1.0.4"
@@ -6239,9 +6738,9 @@ tmp@0.0.28:
dependencies:
os-tmpdir "~1.0.1"
-tmp@^0.0.29:
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0"
+tmp@^0.0.31:
+ version "0.0.31"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
dependencies:
os-tmpdir "~1.0.1"
@@ -6253,7 +6752,7 @@ to-array@0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
-to-fast-properties@^1.0.0, to-fast-properties@^1.0.1:
+to-fast-properties@^1.0.0, to-fast-properties@^1.0.1, 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"
@@ -6276,6 +6775,12 @@ tough-cookie@~2.3.0:
dependencies:
punycode "^1.4.1"
+tough-cookie@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+ dependencies:
+ punycode "^1.4.1"
+
tree-sync@^1.2.1, tree-sync@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.2.2.tgz#2cf76b8589f59ffedb58db5a3ac7cb013d0158b7"
@@ -6333,11 +6838,18 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.3:
+uc.micro@^1.0.1, uc.micro@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192"
-uglify-js@^2.6, uglify-js@^2.7.0:
+uglify-es@^3.1.3:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.1.5.tgz#63bae0fd4f9feeda417fee7c0ff685a673819683"
+ dependencies:
+ commander "~2.11.0"
+ source-map "~0.6.1"
+
+uglify-js@^2.6:
version "2.8.27"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.27.tgz#47787f912b0f242e5b984343be8e35e95f694c9c"
dependencies:
@@ -6383,6 +6895,10 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
+universalify@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
+
unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -6397,12 +6913,6 @@ user-home@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
-user-home@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
- dependencies:
- os-homedir "^1.0.0"
-
username-sync@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/username-sync/-/username-sync-1.0.1.tgz#1cde87eefcf94b8822984d938ba2b797426dae1f"
@@ -6419,6 +6929,10 @@ uuid@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
+uuid@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+
validate-npm-package-license@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
@@ -6464,7 +6978,7 @@ walk-sync@^0.2.5, walk-sync@^0.2.7:
ensure-posix-path "^1.0.0"
matcher-collection "^1.0.0"
-walk-sync@^0.3.0, walk-sync@^0.3.1:
+walk-sync@^0.3.0, walk-sync@^0.3.1, walk-sync@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.2.tgz#4827280afc42d0e035367c4a4e31eeac0d136f75"
dependencies:
@@ -6503,7 +7017,13 @@ 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, which@^1.2.12, which@^1.2.9:
+which@1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
+which@^1.2.12, which@^1.2.9:
version "1.2.14"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
dependencies:
@@ -6535,6 +7055,12 @@ wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+workerpool@^2.2.1:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.2.4.tgz#c9dbe01e103e92df0e8f55356fc860135fbd43b0"
+ dependencies:
+ object-assign "4.1.1"
+
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -6632,9 +7158,9 @@ yargs@^7.0.0:
y18n "^3.2.1"
yargs-parser "^5.0.0"
-yargs@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.1.tgz#420ef75e840c1457a80adcca9bc6fa3849de51aa"
+yargs@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
dependencies:
camelcase "^4.1.0"
cliui "^3.2.0"