From e532bd8253661baaffef11221215e000fe596934 Mon Sep 17 00:00:00 2001 From: vvo Date: Wed, 29 Mar 2017 16:34:29 +0200 Subject: [PATCH] fix(iOS): remove double tap bug on hrefs in suggestions --- package.json | 20 +-- src/autocomplete/dropdown.js | 16 ++- src/autocomplete/typeahead.js | 3 +- test/unit/dropdown_spec.js | 25 +++- yarn.lock | 246 ++++++++++++++++++++-------------- 5 files changed, 192 insertions(+), 118 deletions(-) diff --git a/package.json b/package.json index 3987e6298..c3372efa1 100644 --- a/package.json +++ b/package.json @@ -13,12 +13,12 @@ "url": "https://github.com/algolia/autocomplete.js.git" }, "devDependencies": { - "angular": "^1.6.2", - "angular-mocks": "^1.6.2", - "babel-eslint": "^7.0.0", + "angular": "^1.6.3", + "angular-mocks": "^1.6.3", + "babel-eslint": "^7.2.1", "chai": "^3.5.0", "colors": "^1.1.2", - "conventional-changelog-cli": "^1.2.0", + "conventional-changelog-cli": "^1.3.1", "doctoc": "^1.3.0", "eslint": "1.5.1", "eslint-config-airbnb": "0.1.0", @@ -30,7 +30,7 @@ "grunt-contrib-clean": "^1.0.0", "grunt-contrib-concat": "^1.0.1", "grunt-contrib-connect": "^1.0.2", - "grunt-contrib-uglify": "^2.1.0", + "grunt-contrib-uglify": "^2.2.0", "grunt-contrib-watch": "^1.0.0", "grunt-eslint": "^17.2.0", "grunt-exec": "^1.0.1", @@ -41,20 +41,20 @@ "istanbul-instrumenter-loader": "^1.0.0", "jasmine-core": "^2.5.2", "jasmine-jquery": "^2.1.1", - "jquery": "^3.1.0", - "json": "^9.0.4", + "jquery": "^3.2.1", + "json": "^9.0.6", "karma": "^1.5.0", "karma-chrome-launcher": "^2.0.0", "karma-coverage": "^1.1.1", "karma-coveralls": "^1.1.2", - "karma-firefox-launcher": "^1.0.0", + "karma-firefox-launcher": "^1.0.1", "karma-jasmine": "^1.0.2", "karma-opera-launcher": "^1.0.0", - "karma-phantomjs-launcher": "^1.0.2", + "karma-phantomjs-launcher": "^1.0.4", "karma-safari-launcher": "^1.0.0", "karma-sinon": "^1.0.5", "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^2.0.2", + "karma-webpack": "^2.0.3", "mocha": "^3.0.2", "mversion": "^1.10.1", "node-static": "^0.7.8", diff --git a/src/autocomplete/dropdown.js b/src/autocomplete/dropdown.js index 7c86e0c03..85c9b9a11 100644 --- a/src/autocomplete/dropdown.js +++ b/src/autocomplete/dropdown.js @@ -45,9 +45,9 @@ function Dropdown(o) { var cssClass = _.className(this.cssClasses.prefix, this.cssClasses.suggestion); this.$menu = DOM.element(o.menu) - .on('click.aa', cssClass, onSuggestionClick) .on('mouseenter.aa', cssClass, onSuggestionMouseEnter) - .on('mouseleave.aa', cssClass, onSuggestionMouseLeave); + .on('mouseleave.aa', cssClass, onSuggestionMouseLeave) + .on('click.aa', cssClass, onSuggestionClick); this.$container = o.appendTo ? o.wrapper : this.$menu; @@ -105,7 +105,17 @@ _.mixin(Dropdown.prototype, EventEmitter, { return; } this._removeCursor(); - this._setCursor(elt, false); + + // Fixes iOS double tap behaviour, by modifying the DOM right before the + // native href clicks happens, iOS will requires another tap to follow + // a suggestion that has an element inside + // https://www.google.com/search?q=ios+double+tap+bug+href + var suggestion = this; + setTimeout(function() { + // this exact line, when inside the main loop, will trigger a double tap bug + // on iOS devices + suggestion._setCursor(elt, false); + }, 0); }, _onSuggestionMouseLeave: function onSuggestionMouseLeave($e) { diff --git a/src/autocomplete/typeahead.js b/src/autocomplete/typeahead.js index 8a4dd5803..551187c9d 100644 --- a/src/autocomplete/typeahead.js +++ b/src/autocomplete/typeahead.js @@ -558,7 +558,8 @@ function buildDom(options) { role: 'combobox', // Let the screen reader know the field has an autocomplete // feature to it. - 'aria-autocomplete': (options.datasets && options.datasets[0] && options.datasets[0].displayKey ? 'both' : 'list'), + 'aria-autocomplete': (options.datasets && + options.datasets[0] && options.datasets[0].displayKey ? 'both' : 'list'), // Indicates whether the dropdown it controls is currently expanded or collapsed 'aria-expanded': 'false', // If a placeholder is set, label this field with itself, which in this case, diff --git a/test/unit/dropdown_spec.js b/test/unit/dropdown_spec.js index 6c6e38ace..d5685a3de 100644 --- a/test/unit/dropdown_spec.js +++ b/test/unit/dropdown_spec.js @@ -130,7 +130,7 @@ describe('Dropdown', function() { }); describe('when mouseenter is triggered on a suggestion', function() { - it('should remove pre-existing cursor', function() { + it('should remove pre-existing cursor', function(done) { var $first; var $last; @@ -140,20 +140,28 @@ describe('Dropdown', function() { $first.addClass('aa-cursor'); $last.mouseenter(); - expect($first).not.toHaveClass('aa-cursor'); - expect($last).toHaveClass('aa-cursor'); + // see implementation on why we need this setTimeout + setTimeout(function() { + expect($first).not.toHaveClass('aa-cursor'); + expect($last).toHaveClass('aa-cursor'); + done(); + }, 0); }); - it('should set the cursor', function() { + it('should set the cursor', function(done) { var $suggestion; $suggestion = this.$menu.find('.aa-suggestion').first(); $suggestion.mouseenter(); - expect($suggestion).toHaveClass('aa-cursor'); + // see implementation on why we need this setTimeout + setTimeout(function() { + expect($suggestion).toHaveClass('aa-cursor'); + done(); + }, 0); }); - it('should trigger cursorMoved', function() { + it('should trigger cursorMoved', function(done) { var spy; var $suggestion; @@ -162,7 +170,10 @@ describe('Dropdown', function() { $suggestion = this.$menu.find('.aa-suggestion').first(); $suggestion.mouseenter(); - expect(spy).toHaveBeenCalled(); + setTimeout(function() { + expect(spy).toHaveBeenCalled(); + done(); + }, 0); }); }); diff --git a/yarn.lock b/yarn.lock index ef7e1261f..9630a7c9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,13 +52,13 @@ anchor-markdown-header@^0.5.5: version "0.5.6" resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.5.6.tgz#587c9d3c0c182e01a49d1f6d5a2877cf3e887872" -angular-mocks@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/angular-mocks/-/angular-mocks-1.6.2.tgz#fbb28208e74d3512769afdb8771f5cc5a99f9128" +angular-mocks@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/angular-mocks/-/angular-mocks-1.6.3.tgz#12fafc0f1e0903f16864004ba375bf3fb9101ef1" -angular@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/angular/-/angular-1.6.2.tgz#d0b677242ac4bf9ae81424297c6320973af4bb5a" +angular@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/angular/-/angular-1.6.3.tgz#5d34b799234e8fa17c6a3a14e0258733935f43e7" annois@0.3.0: version "0.3.0" @@ -255,7 +255,7 @@ aws4@^1.2.1: version "1.5.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" -babel-code-frame@^6.16.0, babel-code-frame@^6.20.0: +babel-code-frame@^6.20.0: version "6.20.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" dependencies: @@ -263,15 +263,22 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.20.0: esutils "^2.0.2" js-tokens "^2.0.0" -babel-eslint@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.1.1.tgz#8a6a884f085aa7060af69cfc77341c2f99370fb2" +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: - babel-code-frame "^6.16.0" - babel-traverse "^6.15.0" - babel-types "^6.15.0" - babylon "^6.13.0" - lodash.pickby "^4.6.0" + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-eslint@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.1.tgz#079422eb73ba811e3ca0865ce87af29327f8c52f" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.16.1" babel-generator@^6.18.0: version "6.21.0" @@ -285,6 +292,12 @@ babel-generator@^6.18.0: lodash "^4.2.0" source-map "^0.5.0" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + babel-messages@^6.8.0: version "6.8.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.8.0.tgz#bf504736ca967e6d65ef0adb5a2a5f947c8e0eb9" @@ -298,6 +311,13 @@ babel-runtime@^6.0.0, babel-runtime@^6.20.0, babel-runtime@^6.9.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" +babel-runtime@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + babel-template@^6.16.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" @@ -308,7 +328,7 @@ babel-template@^6.16.0: babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0: +babel-traverse@^6.16.0, babel-traverse@^6.18.0: version "6.21.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad" dependencies: @@ -322,7 +342,21 @@ babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0: invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.21.0: +babel-traverse@^6.23.1: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.23.0" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.21.0: version "6.21.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2" dependencies: @@ -331,10 +365,23 @@ babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.21 lodash "^4.2.0" to-fast-properties "^1.0.1" +babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + babylon@^6.11.0, babylon@^6.13.0: version "6.14.1" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" +babylon@^6.15.0, babylon@^6.16.1: + version "6.16.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" + backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" @@ -845,9 +892,9 @@ contra@^1.6.8: atoa "1.0.0" ticky "1.0.1" -conventional-changelog-angular@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.3.0.tgz#3f64185978aa13ab0954c9e46a78969fd59c6801" +conventional-changelog-angular@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.3.4.tgz#7d7cdfbd358948312904d02229a61fd6075cf455" dependencies: compare-func "^1.3.1" github-url-from-git "^1.4.0" @@ -859,12 +906,12 @@ conventional-changelog-atom@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-cli@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.2.0.tgz#c4929dcdb5d5ba9aa1840418e6b4674691193f5d" +conventional-changelog-cli@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.1.tgz#1cd5a9dbae25ffb5ffe67afef1e136eaceefd2d5" dependencies: add-stream "^1.0.0" - conventional-changelog "^1.1.0" + conventional-changelog "^1.1.3" lodash "^4.1.0" meow "^3.7.0" tempfile "^1.1.1" @@ -875,17 +922,17 @@ conventional-changelog-codemirror@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-core@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.5.0.tgz#72b17509535a23d7c6cb70ad4384f74247748013" +conventional-changelog-core@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.0.tgz#de5dfbc091847656508d4a389e35c9a1bc49e7f4" dependencies: conventional-changelog-writer "^1.1.0" conventional-commits-parser "^1.0.0" dateformat "^1.0.12" get-pkg-repo "^1.0.0" - git-raw-commits "^1.1.0" + git-raw-commits "^1.2.0" git-remote-origin-url "^2.0.0" - git-semver-tags "^1.1.0" + git-semver-tags "^1.2.0" lodash "^4.0.0" normalize-package-data "^2.3.5" q "^1.4.1" @@ -893,9 +940,9 @@ conventional-changelog-core@^1.3.0: read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.2.tgz#bad70a891386bc3046484a8f4f1e5aa2dc0ad208" +conventional-changelog-ember@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.6.tgz#8b7355419f5127493c4c562473ab2fc792f1c2b6" dependencies: q "^1.4.1" @@ -945,15 +992,15 @@ conventional-changelog-writer@^1.1.0: split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.0.tgz#8ae3fb59feb74bbee0a25833ee1f83dad4a07874" +conventional-changelog@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.4.tgz#108bc750c2a317e200e2f9b413caaa1f8c7efa3b" dependencies: - conventional-changelog-angular "^1.0.0" + conventional-changelog-angular "^1.3.4" conventional-changelog-atom "^0.1.0" conventional-changelog-codemirror "^0.1.0" - conventional-changelog-core "^1.3.0" - conventional-changelog-ember "^0.2.0" + conventional-changelog-core "^1.9.0" + conventional-changelog-ember "^0.2.6" conventional-changelog-eslint "^0.1.0" conventional-changelog-express "^0.1.0" conventional-changelog-jquery "^0.1.0" @@ -1090,13 +1137,13 @@ debug@2.2.0, debug@~2.2.0: dependencies: ms "0.7.1" -debug@2.3.3, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: +debug@2.3.3, debug@^2.1.1, debug@^2.1.3: version "2.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" dependencies: ms "0.7.2" -debug@2.6.1: +debug@2.6.1, debug@^2.2.0: version "2.6.1" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" dependencies: @@ -1949,9 +1996,9 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-raw-commits@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.1.2.tgz#a12d8492aeba2881802d700825ed81c9f39e6f2f" +git-raw-commits@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.2.0.tgz#0f3a8bfd99ae0f2d8b9224d58892975e9a52d03c" dependencies: dargs "^4.0.1" lodash.template "^4.0.2" @@ -1966,9 +2013,9 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.1.2.tgz#aecf9b1b2447a6b548d48647f53edba0acad879f" +git-semver-tags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.0.tgz#b31fd02c8ab578bd6c9b5cacca5e1c64c1177ac1" dependencies: meow "^3.3.0" semver "^5.0.1" @@ -2049,7 +2096,7 @@ glob@^5.0.14, glob@^5.0.15, glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.1.1, glob@~7.1.1: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -2060,17 +2107,6 @@ glob@^7.0.3, glob@^7.1.1, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.5, glob@~7.0.0: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@~3.1.21: version "3.1.21" resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" @@ -2088,6 +2124,17 @@ glob@~4.3.0: minimatch "^2.0.1" once "^1.3.0" +glob@~7.0.0: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^8.6.0: version "8.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4" @@ -2212,14 +2259,14 @@ grunt-contrib-connect@^1.0.2: serve-index "^1.7.1" serve-static "^1.10.0" -grunt-contrib-uglify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.1.0.tgz#b3ff028da47483787f19f0b232b7a1b51212fd85" +grunt-contrib-uglify@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-2.2.0.tgz#9e67c2469b4774daa3345840511d51fc4fb34f19" dependencies: chalk "^1.0.0" maxmin "^1.1.0" object.assign "^4.0.4" - uglify-js "~2.7.0" + uglify-js "~2.8.3" uri-path "^1.0.0" grunt-contrib-watch@^1.0.0: @@ -2834,14 +2881,18 @@ jodid25519@^1.0.0: dependencies: jsbn "~0.1.0" -jquery@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.1.1.tgz#347c1c21c7e004115e0a4da32cece041fad3c8a3" +jquery@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" +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.6.1, js-yaml@3.x, js-yaml@^3.1.0, js-yaml@^3.2.5: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" @@ -2880,9 +2931,9 @@ json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -json@^9.0.4: - version "9.0.4" - resolved "https://registry.yarnpkg.com/json/-/json-9.0.4.tgz#d0dbf2404c128572a935ecafadfc782ec81112ce" +json@^9.0.6: + version "9.0.6" + resolved "https://registry.yarnpkg.com/json/-/json-9.0.6.tgz#7972c2a5a48a42678db2730c7c2c4ee6e4e24585" jsonfile@^2.1.0: version "2.4.0" @@ -2930,9 +2981,9 @@ karma-coveralls@^1.1.2: coveralls "~2.11.2" glob "~5.0.0" -karma-firefox-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.0.tgz#e08af3ce42e39860c2952ea7b7eaa64d63508bdc" +karma-firefox-launcher@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.0.1.tgz#ce58f47c2013a88156d55a5d61337c099cf5bb51" karma-jasmine@^1.0.2: version "1.1.0" @@ -2942,9 +2993,9 @@ karma-opera-launcher@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/karma-opera-launcher/-/karma-opera-launcher-1.0.0.tgz#fa51628531a1d0be84b2d8dc0d7ee209fc8ff91a" -karma-phantomjs-launcher@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" +karma-phantomjs-launcher@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2" dependencies: lodash "^4.0.1" phantomjs-prebuilt "^2.1.7" @@ -2963,9 +3014,9 @@ karma-sourcemap-loader@^0.3.7: dependencies: graceful-fs "^4.1.2" -karma-webpack@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.2.tgz#bd38350af5645c9644090770939ebe7ce726f864" +karma-webpack@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.3.tgz#39cebf5ca2580139b27f9ae69b78816b9c82fae6" dependencies: async "~0.9.0" loader-utils "^0.2.5" @@ -3277,10 +3328,6 @@ lodash.omit@^3.1.0: lodash.keysin "^3.0.0" lodash.restparam "^3.0.0" -lodash.pickby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" - lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -3524,7 +3571,7 @@ minimist@0.0.8, minimist@~0.0.1, minimist@~0.0.7: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0: +minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -3532,10 +3579,6 @@ minimist@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" -minimist@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - mkdirp@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" @@ -4113,11 +4156,11 @@ qs@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be" -qs@6.2.0, qs@~6.2.0: +qs@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" -qs@6.2.1: +qs@6.2.1, qs@~6.2.0: version "6.2.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" @@ -4230,7 +4273,7 @@ read-pkg@^1.0.0, read-pkg@^1.1.0: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.1.0, readable-stream@^2.1.5: +readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.1.5: version "2.2.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" dependencies: @@ -4242,7 +4285,7 @@ readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2. string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@~2.0.0, readable-stream@~2.0.5: +readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: @@ -4461,15 +4504,15 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" +rimraf@2, rimraf@^2.2.2, rimraf@^2.2.8, rimraf@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" -rimraf@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" +rimraf@^2.5.1, rimraf@~2.5.1, rimraf@~2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: glob "^7.0.5" @@ -5082,7 +5125,7 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@^2.6, uglify-js@~2.7.0, uglify-js@~2.7.3: +uglify-js@^2.6, uglify-js@~2.7.3: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -5091,6 +5134,15 @@ uglify-js@^2.6, uglify-js@~2.7.0, uglify-js@~2.7.3: uglify-to-browserify "~1.0.0" yargs "~3.10.0" +uglify-js@~2.8.3: + version "2.8.18" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.18.tgz#925d14bae48ab62d1883b41afe6e2261662adb8e" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"