From 81759d2b2fb6c8e788f275a1b678d0652cba2e92 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 21 Jan 2018 12:59:04 +0100 Subject: [PATCH] Revert "Merge pull request #229 from Turbo87/shimmer" This reverts commit 9be046e1e9a05d155b1fe252aff021058c905efb, reversing changes made to 76114beed91fdeedf836e07a520936e90666912e. --- .bowerrc | 4 + .travis.yml | 6 +- bower.json | 6 + index.js | 177 +++++++++- package.json | 9 +- templates/test-body.html | 6 + tests/unit/test-loader-test.js | 42 +++ .../ember-cli-mocha/test-container-styles.css | 14 + vendor/ember-cli-mocha/test-loader.js | 31 ++ yarn.lock | 326 +++++++++--------- 10 files changed, 442 insertions(+), 179 deletions(-) create mode 100644 .bowerrc create mode 100644 bower.json create mode 100644 templates/test-body.html create mode 100644 tests/unit/test-loader-test.js create mode 100644 vendor/ember-cli-mocha/test-container-styles.css create mode 100644 vendor/ember-cli-mocha/test-loader.js diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..959e169 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,4 @@ +{ + "directory": "bower_components", + "analytics": false +} diff --git a/.travis.yml b/.travis.yml index bb189c8..2e07a6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,8 @@ sudo: false cache: yarn: true + directories: + - $HOME/.cache # includes bowers cache env: - EMBER_TRY_SCENARIO=ember-lts-2.4 @@ -24,11 +26,13 @@ matrix: before_install: - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH=$HOME/.yarn/bin:$PATH - - yarn global add phantomjs-prebuilt + - yarn global add bower phantomjs-prebuilt + - bower --version - phantomjs --version install: - yarn install --no-lockfile + - bower install script: - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..d614f4f --- /dev/null +++ b/bower.json @@ -0,0 +1,6 @@ +{ + "name": "ember-cli-mocha", + "dependencies": { + "ember-cli-test-loader": "0.2.2" + } +} diff --git a/index.js b/index.js index 1305079..4a94a9e 100644 --- a/index.js +++ b/index.js @@ -3,16 +3,185 @@ /* eslint-env node */ var path = require('path'); +var fs = require('fs'); +var MergeTrees = require('broccoli-merge-trees'); +var Funnel = require('broccoli-funnel'); +var resolve = require('resolve'); module.exports = { name: 'ember-cli-mocha', - contentFor(type) { - let output = this.eachAddonInvoke('contentFor', [type]); - return output.join('\n'); + overrideTestCommandFilter: function() { + var TestCommand = this.project.require('ember-cli/lib/commands/test'); + + TestCommand.prototype.buildTestPageQueryString = function(options) { + var params = []; + + if (options.filter) { + params.push('grep=' + options.filter); + + if (options.invert) { + params.push('invert=1'); + } + } + + if (options.query) { + params.push(options.query); + } + + return params.join('&'); + }; + + TestCommand.prototype.availableOptions.push({ + name: 'invert', + type: Boolean, + default: false, + description: 'Invert the filter specified by the --filter argument', + aliases: ['i'] + }); }, - blueprintsPath() { + _getDependencyTrees: function() { + if (this._dependencyTrees) { + return this._dependencyTrees; + } + + var emberTestHelpersPath = path.dirname(resolve.sync('ember-test-helpers', { basedir: this._emberMochaLibPath })); + this._dependencyTrees = [ + this.treeGenerator(this._emberMochaLibPath), + this.treeGenerator(emberTestHelpersPath), + ]; + + return this._dependencyTrees; + }, + + init: function() { + this._super.init && this._super.init.apply(this, arguments); + + this.overrideTestCommandFilter(); + + this._emberMochaLibPath = path.dirname(resolve.sync('ember-mocha')); + this._shouldPreprocessAddonTestSupport = !!this.options && !!this.options.babel; + + this.setTestGenerator(); + }, + + postBuild: function () { + this.checkPackages(); + }, + + checkPackages: function () { + var packages = Object.keys(this.project.addonPackages); + if (packages.indexOf('ember-cli-qunit') !== -1) { + console.warn('\nIt looks like you are using "ember-cli-qunit" which can cause issues with "ember-cli-mocha", please remove this package.\n'); + process.exit(1); + } + if (packages.indexOf('ember-cli-htmlbars-inline-precompile') < 0) { + console.warn('\nIt looks like you\'re not on ember-cli 1.13, which includes ember-cli-htmlbars-inline-precompile by default. Please run: ember install ember-cli-htmlbars-inline-precompile.\n'); + process.exit(1); + } + }, + + blueprintsPath: function() { return path.join(__dirname, 'blueprints'); }, + + treeForVendor: function(tree) { + var mochaPath = path.dirname(resolve.sync('mocha')); + // var mochaTree = this.treeGenerator(mochaPath); + var mochaTree = new Funnel(mochaPath, { + files: ['mocha.js', 'mocha.css'], + destDir: '/mocha', + }); + + var emberMochaBuildSupportPath = path.join(this._emberMochaLibPath, '..', 'build-support'); + + var mochaSetupTree = new Funnel(emberMochaBuildSupportPath, { + files: ['mocha-setup.js', 'ember-mocha-adapter.js'], + destDir: '/ember-mocha' + }); + + var trees = [ + tree, + mochaTree, + mochaSetupTree + ]; + + return new MergeTrees(trees, { + annotation: 'ember-cli-mocha: treeForVendor' + }); + }, + + treeForAddonTestSupport: function() { + var tree = new MergeTrees(this._getDependencyTrees()); + + if (this._shouldPreprocessAddonTestSupport) { + return this.preprocessJs(tree, { + registry: this.registry + }); + } else { + return tree; + } + }, + + included: function included(app, parentAddon) { + var target = (parentAddon || app); + this._super.included.call(this, target); + + if (app.tests) { + var fileAssets = [ + 'vendor/mocha/mocha.js', + 'vendor/mocha/mocha.css', + 'vendor/ember-mocha/mocha-setup.js', + 'vendor/ember-mocha/ember-mocha-adapter.js', + 'vendor/ember-cli-mocha/test-loader.js' + ]; + + var addonOptions = app.options['ember-cli-mocha'] || {}; + if (addonOptions && !addonOptions.disableContainerStyles) { + fileAssets.push('vendor/ember-cli-mocha/test-container-styles.css'); + } + + fileAssets.forEach(function(file){ + app.import(file, { + type: 'test' + }); + }); + } + }, + + contentFor: function(type) { + if (type === 'test-body') { + return this._readTemplate('test-body'); + } + }, + + _readTemplate: function(name) { + return fs.readFileSync(path.join(__dirname, 'templates', name + '.html')); + }, + + setTestGenerator: function() { + this.project.generateTestFile = function(moduleName, tests) { + var output = "describe('" + moduleName + "', function() {\n"; + + tests.forEach(function(test) { + output += " it('" + test.name + "', function() {\n"; + if (test.passed) { + output += + " // precompiled test passed\n"; + } else { + output += + " // precompiled test failed\n" + + " var error = new chai.AssertionError('" + test.errorMessage + "');\n" + + " error.stack = undefined;\n" + + " throw error;\n"; + } + output += " });\n"; + }); + + output += "});\n"; + + return output; + }; + } }; diff --git a/package.json b/package.json index 06164d2..8363e22 100644 --- a/package.json +++ b/package.json @@ -36,11 +36,16 @@ "test": "ember try:each" }, "dependencies": { - "ember-mocha": "^0.13.0-beta.1" + "broccoli-funnel": "^2.0.0", + "broccoli-merge-trees": "^2.0.0", + "ember-cli-babel": "^6.0.0", + "ember-cli-test-loader": "^2.0.0", + "ember-mocha": "^0.12.0", + "mocha": "^2.5.3", + "resolve": "^1.1.7" }, "devDependencies": { "ember-cli": "~2.16.0", - "ember-cli-babel": "^6.0.0", "ember-cli-chai": "^0.4.0", "ember-cli-dependency-checker": "^2.0.0", "ember-cli-eslint": "^4.0.0", diff --git a/templates/test-body.html b/templates/test-body.html new file mode 100644 index 0000000..b0ab640 --- /dev/null +++ b/templates/test-body.html @@ -0,0 +1,6 @@ +
+
+ +
+
+
diff --git a/tests/unit/test-loader-test.js b/tests/unit/test-loader-test.js new file mode 100644 index 0000000..195639a --- /dev/null +++ b/tests/unit/test-loader-test.js @@ -0,0 +1,42 @@ +import { describe, it, beforeEach, afterEach } from 'mocha'; +import { expect } from 'chai'; + +describe('Unit | test-loader', function() { + var TestLoader = window.require('ember-cli/test-loader')['default']; + var originalRequire = window.require; + var requiredModules; + + beforeEach(function() { + requiredModules = []; + + window.require = (name) => { + requiredModules.push(name); + }; + window.require.unsee = () => {}; + + window.requirejs.entries = { + 'valid-test': true, + 'valid_test': true, + 'valid.jshint.lint-test': true, + 'not-valid-jshint': true, + 'not-a-test-module': true, + 'nohyphentest': true + }; + }); + + afterEach(function() { + window.require = originalRequire; + }); + + it('loads properly suffixed modules', function() { + TestLoader.load(); + + var expectedModules = [ + 'valid-test', + 'valid_test', + 'valid.jshint.lint-test' + ]; + + expect(requiredModules).to.deep.equal(expectedModules); + }); +}); diff --git a/vendor/ember-cli-mocha/test-container-styles.css b/vendor/ember-cli-mocha/test-container-styles.css new file mode 100644 index 0000000..3e93c41 --- /dev/null +++ b/vendor/ember-cli-mocha/test-container-styles.css @@ -0,0 +1,14 @@ +#ember-testing-container { + position: fixed; + background: white; + bottom: 0; + right: 0; + width: 640px; + height: 384px; + overflow: auto; + z-index: 9999; + border: 1px solid #ccc; +} +#ember-testing { + zoom: 50%; +} diff --git a/vendor/ember-cli-mocha/test-loader.js b/vendor/ember-cli-mocha/test-loader.js new file mode 100644 index 0000000..dd094aa --- /dev/null +++ b/vendor/ember-cli-mocha/test-loader.js @@ -0,0 +1,31 @@ +/* globals jQuery, chai, mocha, require, requirejs */ + +jQuery(document).ready(function() { + var testLoaderModulePath = 'ember-cli-test-loader/test-support/index'; + + if (!requirejs.entries[testLoaderModulePath]) { + testLoaderModulePath = 'ember-cli/test-loader'; + } + + var TestLoader = require(testLoaderModulePath)['default']; + TestLoader.prototype.shouldLoadModule = function(moduleName) { + return moduleName.match(/[-_]test$/) || moduleName.match(/\.jshint$/); + }; + + TestLoader.prototype.moduleLoadFailure = function(moduleName, error) { + describe('TestLoader Failures', function () { + it(moduleName + ': could not be loaded', function() { + throw error; + }); + }); + }; + + // Attempt to mitigate sourcemap issues in Chrome + // See: https://github.com/ember-cli/ember-cli/issues/3098 + // https://github.com/ember-cli/ember-cli-qunit/pull/39 + setTimeout(function() { + TestLoader.load(); + + window.mochaRunner = mocha.run(); + }, 250); +}); diff --git a/yarn.lock b/yarn.lock index 9fe28d7..d3123ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,6 @@ # yarn lockfile v1 -"@ember/test-helpers@^0.7.2": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-0.7.3.tgz#49bdaeda12e1016d064f5c8857e0b31cd109e031" - dependencies: - broccoli-funnel "^2.0.1" - ember-cli-babel "^6.8.1" - "@glimmer/di@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.2.0.tgz#73bfd4a6ee4148a80bf092e8a5d29bcac9d4ce7e" @@ -45,8 +38,8 @@ acorn@^4.0.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" + version "5.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" after@0.8.1: version "0.8.1" @@ -69,8 +62,8 @@ ajv-keywords@^2.1.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" ajv@^5.2.3, ajv@^5.3.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.1.tgz#b38bb8876d9e86bee994956a04e721e88b248eb2" + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -91,12 +84,6 @@ amd-name-resolver@0.0.6: 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" @@ -193,6 +180,10 @@ array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -434,18 +425,6 @@ babel-plugin-debug-macros@^0.1.1, babel-plugin-debug-macros@^0.1.6: 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.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-ember-modules-api-polyfill/-/babel-plugin-ember-modules-api-polyfill-2.2.1.tgz#e63f90cc3c71cc6b3b69fb51b4f60312d6cf734c" - dependencies: - ember-rfc176-data "^0.3.0" - babel-plugin-htmlbars-inline-precompile@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-0.2.3.tgz#cd365e278af409bfa6be7704c4354beee742446b" @@ -702,41 +681,6 @@ babel-preset-env@^1.2.0: invariant "^2.2.2" semver "^5.3.0" -babel-preset-env@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - 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" @@ -756,13 +700,6 @@ 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" @@ -902,21 +839,6 @@ 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" @@ -924,8 +846,8 @@ broccoli-brocfile-loader@^0.18.0: findup-sync "^0.4.2" broccoli-builder@^0.18.8: - version "0.18.10" - resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.10.tgz#9767e0061ff5b5e6eb1619d1a972ef2c7fd07631" + version "0.18.11" + resolved "https://registry.yarnpkg.com/broccoli-builder/-/broccoli-builder-0.18.11.tgz#a42393c7b10bb0380df255a616307945f5e26efb" dependencies: heimdalljs "^0.2.0" promise-map-series "^0.2.1" @@ -998,7 +920,7 @@ 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: +broccoli-debug@^0.6.3: version "0.6.4" resolved "https://registry.yarnpkg.com/broccoli-debug/-/broccoli-debug-0.6.4.tgz#986eb3d2005e00e3bb91f9d0a10ab137210cd150" dependencies: @@ -1032,7 +954,7 @@ broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.9, broccoli symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-funnel@^2.0.0, broccoli-funnel@^2.0.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: @@ -1121,7 +1043,7 @@ 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.4.0, broccoli-persistent-filter@^1.4.3: +broccoli-persistent-filter@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.3.tgz#3511bc52fc53740cda51621f58a28152d9911bc1" dependencies: @@ -1279,10 +1201,21 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" @@ -1491,12 +1424,6 @@ commander@^2.6.0: dependencies: graceful-readlink ">= 1.0.0" -common-tags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.5.1.tgz#e2e39931a013cd02253defeed89a1ad615a27f07" - dependencies: - babel-runtime "^6.26.0" - component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1558,13 +1485,15 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" console-ui@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-2.0.1.tgz#56d0721ebcc44e6c9c3de02f355f898aba41ea79" + version "2.1.0" + resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-2.1.0.tgz#e1d5279d27621a75123d7d594f9fa59f866ea3e3" dependencies: chalk "^2.1.0" inquirer "^2" + json-stable-stringify "^1.0.1" ora "^1.3.0" through "^2.3.8" + user-info "^1.0.0" consolidate@^0.14.0: version "0.14.5" @@ -1637,6 +1566,12 @@ 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" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -1681,13 +1616,13 @@ debug@2.6.8, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.4.0: dependencies: ms "2.0.0" -debug@^3.0.1, debug@^3.1.0: +debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1: +decamelize@^1.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" @@ -1752,9 +1687,9 @@ diff@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" -doctrine@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.2.tgz#68f96ce8efc56cc42651f1faadb4f175273b0075" +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" @@ -1800,24 +1735,6 @@ ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.1.0: clone "^2.0.0" ember-cli-version-checker "^1.2.0" -ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1: - version "6.10.0" - resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.10.0.tgz#81424acd1d97fb13658168121eeb2007d6edee84" - 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.1.0" - semver "^5.4.1" - ember-cli-broccoli-sane-watcher@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/ember-cli-broccoli-sane-watcher/-/ember-cli-broccoli-sane-watcher-2.0.4.tgz#f43f42f75b7509c212fb926cd9aea86ae19264c6" @@ -1851,8 +1768,8 @@ ember-cli-dependency-checker@^2.0.0: semver "^5.3.0" ember-cli-eslint@^4.0.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-4.2.2.tgz#4445b3365954e7a90d93d366761e088b0486ae79" + version "4.2.3" + resolved "https://registry.yarnpkg.com/ember-cli-eslint/-/ember-cli-eslint-4.2.3.tgz#2844d3f5e8184f19b2d7132ba99eb0b370b55598" dependencies: broccoli-lint-eslint "^4.2.1" ember-cli-version-checker "^2.1.0" @@ -1965,11 +1882,11 @@ ember-cli-test-info@^1.0.0: dependencies: ember-cli-string-utils "^1.0.0" -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" +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" dependencies: - ember-cli-babel "^6.8.1" + ember-cli-babel "^6.0.0-beta.7" ember-cli-valid-component-name@^1.0.0: version "1.0.0" @@ -2092,17 +2009,11 @@ ember-load-initializers@^1.0.0: dependencies: ember-cli-babel "^6.0.0-beta.7" -ember-mocha@^0.13.0-beta.1: - version "0.13.0-beta.1" - resolved "https://registry.yarnpkg.com/ember-mocha/-/ember-mocha-0.13.0-beta.1.tgz#f8a2ffb6ac9e6e8ed81d816d6d236cac51a59c61" +ember-mocha@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/ember-mocha/-/ember-mocha-0.12.0.tgz#ea27ae9838c8c6e28ea72c48084586ef5fa00a7a" dependencies: - "@ember/test-helpers" "^0.7.2" - broccoli-funnel "^2.0.1" - broccoli-merge-trees "^2.0.0" - common-tags "^1.5.1" - ember-cli-babel "^6.6.0" - ember-cli-test-loader "^2.2.0" - mocha "^2.5.3" + ember-test-helpers "^0.6.3" ember-resolver@^4.0.0: version "4.1.0" @@ -2116,10 +2027,6 @@ ember-resolver@^4.0.0: ember-cli-version-checker "^1.1.6" resolve "^1.3.2" -ember-rfc176-data@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.1.tgz#6a5a4b8b82ec3af34f3010965fa96b936ca94519" - 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" @@ -2146,6 +2053,10 @@ ember-source@~2.17.0: jquery "^3.2.1" resolve "^1.3.3" +ember-test-helpers@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/ember-test-helpers/-/ember-test-helpers-0.6.3.tgz#f864cdf6f4e75f3f8768d6537785b5ab6e82d907" + ember-try-config@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ember-try-config/-/ember-try-config-2.2.0.tgz#6be0af6c71949813e02ac793564fddbf8336b807" @@ -2156,8 +2067,8 @@ ember-try-config@^2.2.0: semver "^5.1.0" ember-try@^0.2.15: - version "0.2.22" - resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-0.2.22.tgz#3989e9c013c1d5c209ec97f5dfcf4234e594d5e2" + version "0.2.23" + resolved "https://registry.yarnpkg.com/ember-try/-/ember-try-0.2.23.tgz#39b57141b4907541d0ac8b503d211e6946b08718" dependencies: chalk "^1.0.0" cli-table2 "^0.2.0" @@ -2342,21 +2253,25 @@ eslint-scope@^3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + eslint@^4.0.0: - version "4.12.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.12.1.tgz#5ec1973822b4a066b353770c3c6d69a2a188e880" + version "4.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.16.0.tgz#934ada9e98715e1d7bbfd6f6f0519ed2fab35cc1" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.2" + debug "^3.1.0" + doctrine "^2.1.0" eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" espree "^3.5.2" esquery "^1.0.0" - estraverse "^4.2.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" @@ -2416,7 +2331,7 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" -estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.0.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2451,6 +2366,14 @@ events-to-array@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" +exec-file-sync@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/exec-file-sync/-/exec-file-sync-2.0.2.tgz#58d441db46e40de6d1f30de5be022785bd89e328" + dependencies: + is-obj "^1.0.0" + object-assign "^4.0.1" + spawn-sync "^1.0.11" + exec-sh@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" @@ -2925,8 +2848,8 @@ global-prefix@^0.1.4: which "^1.2.12" globals@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.0.1.tgz#12a87bb010e5154396acc535e1e43fc753b0e5e8" + version "11.1.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" globals@^9.0.0: version "9.17.0" @@ -3125,6 +3048,12 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -3390,8 +3319,8 @@ jade@0.26.3: mkdirp "0.3.0" jquery@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" + version "3.3.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" js-tokens@^3.0.0: version "3.0.1" @@ -3699,6 +3628,13 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" @@ -3751,6 +3687,10 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +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.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.1.0.tgz#545abd8dd01c3d62353bfcea71db580b51d22bd9" @@ -3817,6 +3757,21 @@ memory-streams@^0.1.0: dependencies: readable-stream "~1.0.2" +meow@^3.4.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -3901,7 +3856,7 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.1: +minimist@^1.1.1, minimist@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4052,7 +4007,7 @@ normalize-git-url@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/normalize-git-url/-/normalize-git-url-3.0.2.tgz#8e5f14be0bdaedb73e07200310aa416c27350fc4" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -4097,7 +4052,7 @@ 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: +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" @@ -4265,6 +4220,12 @@ parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" +passwd-user@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/passwd-user/-/passwd-user-1.2.1.tgz#a01a5dc639ef007dc56364b8178569080ad3a7b8" + dependencies: + exec-file-sync "^2.0.0" + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -4497,6 +4458,13 @@ recast@^0.11.3: private "~0.1.5" source-map "~0.5.0" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + redeyed@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" @@ -4511,10 +4479,6 @@ 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-transform@0.9.11: version "0.9.11" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" @@ -4675,13 +4639,13 @@ rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.2. version "3.5.0" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34" -rsvp@^3.5.0, rsvp@^3.6.0: +rsvp@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" rsvp@^4.6.1: - version "4.7.0" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.7.0.tgz#dc1b0b1a536f7dec9d2be45e0a12ad4197c9fd96" + version "4.8.0" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.0.tgz#dc1dc400e2d48bcf3b1991f2a3b714f038fc432e" rsvp@~3.2.1: version "3.2.1" @@ -4737,7 +4701,7 @@ sane@^1.1.1, sane@^1.6.0: walker "~1.0.5" watch "~0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.4.1: +"semver@2 || 3 || 4 || 5": version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" @@ -4918,7 +4882,7 @@ 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: +spawn-sync@^1.0.11, spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" dependencies: @@ -5046,6 +5010,12 @@ strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -5214,6 +5184,10 @@ tree-sync@^1.2.1, tree-sync@^1.2.2: quick-temp "^0.1.5" walk-sync "^0.2.7" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -5311,10 +5285,24 @@ untildify@^2.1.0: dependencies: os-homedir "^1.0.0" +user-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/user-info/-/user-info-1.0.0.tgz#81c82b7ed63e674c2475667653413b3c76fde239" + dependencies: + os-homedir "^1.0.1" + passwd-user "^1.2.1" + username "^1.0.1" + username-sync@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/username-sync/-/username-sync-1.0.1.tgz#1cde87eefcf94b8822984d938ba2b797426dae1f" +username@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/username/-/username-1.0.1.tgz#e1f72295e3e58e06f002c6327ce06897a99cd67f" + dependencies: + meow "^3.4.0" + util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5414,12 +5402,6 @@ 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.3.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.3.0.tgz#86c5cbe946b55e7dc9d12b1936c8801a6e2d744d" - 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"