diff --git a/examples/.stylelintrc b/examples/.stylelintrc index 2105ae0f..fa0b0d06 100644 --- a/examples/.stylelintrc +++ b/examples/.stylelintrc @@ -9,11 +9,12 @@ "declaration-property-value-blacklist": null, "font-weight-notation": null, "function-url-scheme-whitelist": null, + "max-nesting-depth": 4, "no-duplicate-selectors": null, "no-unknown-animations": null, "selector-class-pattern": null, "selector-id-pattern": null, - "selector-max-class": 4, + "selector-max-class": 5, "selector-max-id": 1, "selector-max-type": 2, "selector-max-combinators": 3, diff --git a/examples/package.json b/examples/package.json index 43a5dc43..7eeae9ac 100644 --- a/examples/package.json +++ b/examples/package.json @@ -44,9 +44,9 @@ "browser-sync": "^2.23.5", "cssnano": "^3.10.0", "cssnano-preset-advanced": "^4.0.0-rc.2", - "eslint": "^4.15.0", + "eslint": "^4.16.0", "eslint-plugin-prettier": "^2.5.0", - "eslint-plugin-shopify": "^18.3.0", + "eslint-plugin-shopify": "^19.0.0", "gulp": "gulpjs/gulp.git#4.0", "gulp-cli": "^2.0.0", "gulp-data": "^1.3.1", diff --git a/examples/src/components/Hamburger/Hamburger.scss b/examples/src/components/Hamburger/Hamburger.scss index 62473c7b..eed8f27c 100644 --- a/examples/src/components/Hamburger/Hamburger.scss +++ b/examples/src/components/Hamburger/Hamburger.scss @@ -52,8 +52,8 @@ &::before, &::after { content: ''; - display: block; top: 0; + display: block; transition: background-color get-duration() get-easing(); } diff --git a/examples/src/components/Plate/index.js b/examples/src/components/Plate/index.js index 798ff389..ad43d13b 100644 --- a/examples/src/components/Plate/index.js +++ b/examples/src/components/Plate/index.js @@ -90,14 +90,12 @@ export default class Plate { _translateEachPlate(x, y) { for (const plateLevel in this.plates) { if (!this.plates.hasOwnProperty(plateLevel)) { - return; - } - - const translateX = flipSign(x * 2) * translateFactors[plateLevel]; - const translateY = flipSign(y * 2) * translateFactors[plateLevel]; + const translateX = flipSign(x * 2) * translateFactors[plateLevel]; + const translateY = flipSign(y * 2) * translateFactors[plateLevel]; - this.wrapper.style.setProperty(`--${plateLevel}-translate-x`, `${translateX}px`); - this.wrapper.style.setProperty(`--${plateLevel}-translate-y`, `${translateY}px`); + this.wrapper.style.setProperty(`--${plateLevel}-translate-x`, `${translateX}px`); + this.wrapper.style.setProperty(`--${plateLevel}-translate-y`, `${translateY}px`); + } } } diff --git a/examples/src/content/Draggable/DragEvents/index.js b/examples/src/content/Draggable/DragEvents/index.js index 160b9c47..ad4a8760 100644 --- a/examples/src/content/Draggable/DragEvents/index.js +++ b/examples/src/content/Draggable/DragEvents/index.js @@ -38,14 +38,14 @@ export default function DragEvents() { let headingText; // --- Draggable events --- // - draggable.on('drag:start', evt => { + draggable.on('drag:start', (evt) => { initialMousePosition = { x: evt.sensorEvent.clientX, y: evt.sensorEvent.clientY, }; }); - draggable.on('mirror:created', evt => { + draggable.on('mirror:created', (evt) => { containerRect = evt.sourceContainer.getBoundingClientRect(); dragRect = evt.originalSource.getBoundingClientRect(); @@ -61,7 +61,7 @@ export default function DragEvents() { }; }); - draggable.on('drag:move', evt => { + draggable.on('drag:move', (evt) => { // Required to help restrict the draggable element to the container evt.cancel(); diff --git a/examples/src/content/Droppable/OneAndOnly/index.js b/examples/src/content/Droppable/OneAndOnly/index.js index 724bc61b..e6061476 100644 --- a/examples/src/content/Droppable/OneAndOnly/index.js +++ b/examples/src/content/Droppable/OneAndOnly/index.js @@ -20,11 +20,11 @@ export default function OneAndOnly() { let droppableOrigin; // --- Draggable events --- // - droppable.on('drag:start', evt => { + droppable.on('drag:start', (evt) => { droppableOrigin = evt.originalSource.parentNode.dataset.droppable; }); - droppable.on('droppable:over', evt => { + droppable.on('droppable:over', (evt) => { if (droppableOrigin !== evt.droppable.dataset.droppable) { evt.cancel(); } diff --git a/examples/src/content/Home/index.js b/examples/src/content/Home/index.js index 0c654955..e127fa7f 100644 --- a/examples/src/content/Home/index.js +++ b/examples/src/content/Home/index.js @@ -17,12 +17,12 @@ export default function Home() { const plates = new Plate(container); // --- Draggable events --- // - draggable.on('drag:start', evt => { + draggable.on('drag:start', (evt) => { plates.setThreshold(); plates.setInitialMousePosition(evt.sensorEvent); }); - draggable.on('drag:move', evt => { + draggable.on('drag:move', (evt) => { plates.dragWarp(evt.source, evt.sensorEvent); }); diff --git a/examples/src/content/Plugins/Collidable/index.js b/examples/src/content/Plugins/Collidable/index.js index c109dfd6..2ce31b1e 100644 --- a/examples/src/content/Plugins/Collidable/index.js +++ b/examples/src/content/Plugins/Collidable/index.js @@ -27,7 +27,7 @@ export default function PluginsCollidable() { // --- Draggable events --- // droppable.on('collidable:in', ({collidingElement}) => { if (collidingElement.classList.contains(wallClass)) { - walls.forEach(wall => wall.classList.add('isColliding')); + walls.forEach((wall) => wall.classList.add('isColliding')); } else { collidingElement.classList.add('isColliding'); } @@ -35,7 +35,7 @@ export default function PluginsCollidable() { droppable.on('collidable:out', ({collidingElement}) => { if (collidingElement.classList.contains(wallClass)) { - walls.forEach(wall => wall.classList.remove('isColliding')); + walls.forEach((wall) => wall.classList.remove('isColliding')); } else { collidingElement.classList.remove('isColliding'); } diff --git a/examples/src/content/Plugins/Snappable/index.js b/examples/src/content/Plugins/Snappable/index.js index 5df56136..83e7b6bb 100644 --- a/examples/src/content/Plugins/Snappable/index.js +++ b/examples/src/content/Plugins/Snappable/index.js @@ -20,7 +20,7 @@ export default function PluginsSnappable() { }); // --- Draggable events --- // - swappable.on('drag:start', evt => { + swappable.on('drag:start', (evt) => { if (evt.originalSource.classList.contains('Block--typeStripes')) { evt.cancel(); } diff --git a/examples/src/content/Sortable/MultipleContainers/index.js b/examples/src/content/Sortable/MultipleContainers/index.js index 260422b0..c075dc29 100644 --- a/examples/src/content/Sortable/MultipleContainers/index.js +++ b/examples/src/content/Sortable/MultipleContainers/index.js @@ -29,14 +29,14 @@ export default function MultipleContainers() { let lastOverContainer; // --- Draggable events --- // - sortable.on('drag:start', evt => { + sortable.on('drag:start', (evt) => { currentMediumChildren = sortable.getDraggableElementsForContainer(sortable.containers[1]).length; capacityReached = currentMediumChildren === containerTwoCapacity; lastOverContainer = evt.sourceContainer; containerTwoParent.classList.toggle(Classes.capacity, capacityReached); }); - sortable.on('sortable:sort', evt => { + sortable.on('sortable:sort', (evt) => { if (!capacityReached) { return; } @@ -48,7 +48,7 @@ export default function MultipleContainers() { } }); - sortable.on('sortable:sorted', evt => { + sortable.on('sortable:sorted', (evt) => { if (lastOverContainer === evt.dragEvent.overContainer) { return; } diff --git a/examples/src/scripts/helpers/array-contains.js b/examples/src/scripts/helpers/array-contains.js deleted file mode 100644 index 3b4bf48e..00000000 --- a/examples/src/scripts/helpers/array-contains.js +++ /dev/null @@ -1,10 +0,0 @@ -// arrayContainsArray -// Returns `true` if the first specified array contains all elements -// from the second array, otherwise returns `false` -// https://github.com/lodash/lodash/issues/1743 -// ----------------------------------------------------------------------------- -export function arrayContainsArray(superset, subset) { - return subset.every((value) => { - return (superset.indexOf(value) >= 0); - }); -} diff --git a/examples/src/scripts/helpers/caps-first-letter.js b/examples/src/scripts/helpers/caps-first-letter.js deleted file mode 100644 index 2156120f..00000000 --- a/examples/src/scripts/helpers/caps-first-letter.js +++ /dev/null @@ -1,6 +0,0 @@ -// capsFirstLetter -// https://github.com/freeCodeCamp/freeCodeCamp/wiki/Capitalize-First-Letter-Of-String -// ---------------------------------------------------------------------------- -export function capsFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} diff --git a/examples/src/scripts/helpers/deep-object-key.js b/examples/src/scripts/helpers/deep-object-key.js deleted file mode 100644 index 957bfebd..00000000 --- a/examples/src/scripts/helpers/deep-object-key.js +++ /dev/null @@ -1,17 +0,0 @@ -export default function deepObjectKey(obj, key) { - let result = null; - - for (const prop in obj) { - if (obj.hasOwnProperty(prop)) { - if (prop === key) { - return obj[prop]; - } - - if (obj[prop] instanceof Object) { - result = deepObjectKey(obj[prop], key); - } - } - } - - return result; -} diff --git a/examples/src/scripts/helpers/document-ready.js b/examples/src/scripts/helpers/document-ready.js deleted file mode 100644 index 9504d0d8..00000000 --- a/examples/src/scripts/helpers/document-ready.js +++ /dev/null @@ -1,22 +0,0 @@ -// ES6 Document ready -// wait for the document to be ready : https://github.com/nickeljew/es6-docready -// ----------------------------------------------------------------------------- -export function docReady(callback) { - function completed() { - document.removeEventListener('DOMContentLoaded', completed, false); - window.removeEventListener('load', completed, false); - callback(); - } - - // Events.on(document, 'DOMContentLoaded', completed); - - if (document.readyState === 'complete') { - // handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout(callback); - } else { - // use the handy event callback - document.addEventListener('DOMContentLoaded', completed, false); - // a fallback to window.onload, that will always work - window.addEventListener('load', completed, false); - } -} diff --git a/examples/src/scripts/helpers/random-int.js b/examples/src/scripts/helpers/random-int.js deleted file mode 100644 index 71413e49..00000000 --- a/examples/src/scripts/helpers/random-int.js +++ /dev/null @@ -1,9 +0,0 @@ -// randomInt -// get a random number between a min and max range -// ---------------------------------------------------------------------------- -export function randomInt(min, max) { - const minCeil = Math.ceil(min); - const maxFloor = Math.floor(max); - - return Math.floor(Math.random() * (maxFloor - minCeil + 1)) + minCeil; -} diff --git a/examples/src/scripts/helpers/shuffle-array.js b/examples/src/scripts/helpers/shuffle-array.js deleted file mode 100644 index 898e1e77..00000000 --- a/examples/src/scripts/helpers/shuffle-array.js +++ /dev/null @@ -1,35 +0,0 @@ -// shuffleArray -// shuffle the order of values in an array -// ----------------------------------------------------------------------------- -export function shuffleArray(array) { - let currentIndex = array.length; - let randomIndex; - let tempValue; - - while (currentIndex !== 0) { - // pick a random element from the array - randomIndex = Math.floor(Math.random() * currentIndex); - currentIndex -= 1; - tempValue = array[currentIndex]; - - // and swap it with the current element - array[currentIndex] = array[randomIndex]; - array[randomIndex] = tempValue; - } - - return array; -} - -// shuffleArrayOnce -// take an array and swap only 2 values -// ----------------------------------------------------------------------------- -export function shuffleArrayOnce(array) { - const randomIndex = Math.floor(Math.random() * array.length); - const shiftedIndex = array.length - 1; - const tempValue = array[shiftedIndex]; - - array[shiftedIndex] = array[randomIndex]; - array[randomIndex] = tempValue; - - return array; -} diff --git a/examples/src/scripts/helpers/unique-id.js b/examples/src/scripts/helpers/unique-id.js deleted file mode 100644 index dd5a3f11..00000000 --- a/examples/src/scripts/helpers/unique-id.js +++ /dev/null @@ -1,6 +0,0 @@ -// uniqueID -// generate a unique ID : https://gist.github.com/gordonbrander/2230317 -// ----------------------------------------------------------------------------- -export function uniqueID(prefix = '_') { - return `${prefix}${Math.random().toString(36).substr(2, 9)}`; -} diff --git a/examples/src/styles/reset.scss b/examples/src/styles/reset.scss index d0441f3f..f2d731cc 100644 --- a/examples/src/styles/reset.scss +++ b/examples/src/styles/reset.scss @@ -127,7 +127,7 @@ label, select, summary, textarea, -[role="button"] { +[role='button'] { touch-action: manipulation; } @@ -190,11 +190,11 @@ select { } button, -[role="button"], -input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; +[role='button'], +input[type='button'], +input[type='reset'], +input[type='submit'] { + -webkit-appearance: button; // stylelint-disable-line property-no-vendor-prefix cursor: pointer; } @@ -213,27 +213,27 @@ input { line-height: normal; } -input[type="radio"], -input[type="checkbox"] { +input[type='radio'], +input[type='checkbox'] { box-sizing: border-box; padding: 0; } -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - -webkit-appearance: none; +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { + -webkit-appearance: none; // stylelint-disable-line property-no-vendor-prefix margin: 0; height: auto; } -input[type="search"] { - -webkit-appearance: textfield; +input[type='search'] { + -webkit-appearance: textfield; // stylelint-disable-line property-no-vendor-prefix // box-sizing: content-box; } -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; +input[type='search']::-webkit-search-decoration, +input[type='search']::-webkit-search-cancel-button { + -webkit-appearance: none; // stylelint-disable-line property-no-vendor-prefix } fieldset { @@ -256,8 +256,8 @@ optgroup { } select { - -webkit-appearance: none; - -moz-appearance: none; + -webkit-appearance: none; // stylelint-disable-line property-no-vendor-prefix + -moz-appearance: none; // stylelint-disable-line property-no-vendor-prefix cursor: pointer; } @@ -271,10 +271,10 @@ textarea { border-radius: 0; } -[tabindex="-1"]:focus { +[tabindex='-1']:focus { // prevent focus outline on elements that cant be accessed via keyboard // remove red border for invalid entries - outline: none !important; + outline: none !important; // stylelint-disable-line declaration-no-important } select:focus { @@ -288,6 +288,7 @@ button:focus { box-shadow: none; } +/* stylelint-disable selector-no-vendor-prefix */ ::-webkit-input-placeholder { box-shadow: none; } @@ -300,6 +301,7 @@ button:focus { :-ms-input-placeholder { box-shadow: none; } +/* stylelint-enable selector-no-vendor-prefix */ /// /// Tables diff --git a/examples/src/styles/utilities/shared/_functions.scss b/examples/src/styles/utilities/shared/_functions.scss index bc2edf14..d367336a 100644 --- a/examples/src/styles/utilities/shared/_functions.scss +++ b/examples/src/styles/utilities/shared/_functions.scss @@ -30,7 +30,7 @@ // @return {Color} The modified color. @function color-multiply($foreground, $background: null) { @if type-of($background) != color { - $background: #fff; + $background: #ffffff; } @return $foreground * $background / 255; diff --git a/examples/src/styles/utilities/shared/_layout.scss b/examples/src/styles/utilities/shared/_layout.scss index 456480aa..50f8dce8 100644 --- a/examples/src/styles/utilities/shared/_layout.scss +++ b/examples/src/styles/utilities/shared/_layout.scss @@ -131,7 +131,6 @@ @if ($image != none or $image != '') { background-image: url($image); } - background-color: $color; background-repeat: no-repeat; background-position: center center; diff --git a/examples/src/styles/utilities/shared/_typography.scss b/examples/src/styles/utilities/shared/_typography.scss index 805fc689..51d55529 100644 --- a/examples/src/styles/utilities/shared/_typography.scss +++ b/examples/src/styles/utilities/shared/_typography.scss @@ -8,7 +8,6 @@ // @param {Boolean} $descender-fix (optional) - Sometimes descenders are cutoff by overflow. @mixin text-truncate($display: block, $descender-fix: false) { $padding-bottom: if($descender-fix, 0.25em, null); - display: $display; padding-bottom: $padding-bottom; max-width: 100%; @@ -34,16 +33,15 @@ @if type-of($weight) != number { @error '#{$weight} is not a number.'; } - position: relative; // perhaps there should be a param to prevent overriding `position`? &::before { content: ''; - display: block; position: absolute; bottom: $bottom; left: 0; right: 0; + display: block; margin-left: auto; margin-right: auto; height: $weight; diff --git a/examples/tools/tasks/scripts.js b/examples/tools/tasks/scripts.js index ab941cdd..8efbb831 100644 --- a/examples/tools/tasks/scripts.js +++ b/examples/tools/tasks/scripts.js @@ -2,7 +2,7 @@ import webpack from 'webpack'; import {webpackConfig} from '../webpack.config'; export function scripts() { - return new Promise(resolve => + return new Promise((resolve) => webpack(webpackConfig, (error, stats) => { if (error) { console.log('Webpack', error); diff --git a/examples/tools/webpack.plugins.js b/examples/tools/webpack.plugins.js index 48531c9b..ba9b95a5 100644 --- a/examples/tools/webpack.plugins.js +++ b/examples/tools/webpack.plugins.js @@ -2,15 +2,15 @@ import webpack from 'webpack'; import * as bundleAnalyzer from 'webpack-bundle-analyzer'; export default function initPlugins() { - const PLUGINS = []; + const plugins = []; - PLUGINS.push( + plugins.push( new webpack.optimize.UglifyJsPlugin({ sourceMap: true, }), new webpack.optimize.CommonsChunkPlugin({ name: 'examples-vendor', - minChunks: module => /node_modules/.test(module.resource), + minChunks: (module) => /node_modules/.test(module.resource), }), new webpack.optimize.CommonsChunkPlugin({ name: 'examples-runtime', @@ -22,5 +22,5 @@ export default function initPlugins() { }), ); - return PLUGINS; + return plugins; } diff --git a/examples/yarn.lock b/examples/yarn.lock index 5aa0804f..637101ed 100644 --- a/examples/yarn.lock +++ b/examples/yarn.lock @@ -543,7 +543,7 @@ babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.6" -babel-eslint@^8.0.0: +babel-eslint@^8.2.1: version "8.2.1" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.1.tgz#136888f3c109edc65376c23ebf494f36a3e03951" dependencies: @@ -2419,7 +2419,7 @@ doctrine@1.5.0: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.0.0, doctrine@^2.0.2: +doctrine@^2.0.0, doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: @@ -2736,7 +2736,7 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-config-prettier@^2.6.0: +eslint-config-prettier@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" dependencies: @@ -2756,7 +2756,7 @@ eslint-module-utils@^2.1.1: debug "^2.6.8" pkg-dir "^1.0.0" -eslint-plugin-ava@^4.2.1: +eslint-plugin-ava@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-4.4.0.tgz#c1866e1f62e70daf2b7b5f60cfbc53bfe267a717" dependencies: @@ -2777,13 +2777,13 @@ eslint-plugin-chai-expect@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-chai-expect/-/eslint-plugin-chai-expect-1.1.1.tgz#cd640b8b38cf6c3abcc378673b7b173b99ddc70a" -eslint-plugin-flowtype@^2.32.1: +eslint-plugin-flowtype@^2.41.0: version "2.41.0" resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.41.0.tgz#fd5221c60ba917c059d7ef69686a99cca09fd871" dependencies: lodash "^4.15.0" -eslint-plugin-import@^2.7.0: +eslint-plugin-import@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" dependencies: @@ -2798,7 +2798,11 @@ eslint-plugin-import@^2.7.0: minimatch "^3.0.3" read-pkg-up "^2.0.0" -eslint-plugin-jsx-a11y@^6.0.2: +eslint-plugin-jest@^21.5.0: + version "21.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.7.0.tgz#651f1c6ce999af3ac59ab8bf8a376d742fd0fc23" + +eslint-plugin-jsx-a11y@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.3.tgz#54583d1ae442483162e040e13cc31865465100e5" dependencies: @@ -2810,7 +2814,7 @@ eslint-plugin-jsx-a11y@^6.0.2: emoji-regex "^6.1.0" jsx-ast-utils "^2.0.0" -eslint-plugin-lodash@^2.4.4: +eslint-plugin-lodash@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-2.5.0.tgz#be23eb0c0b7b15c1fc3a46bf702b4be757446b45" dependencies: @@ -2822,7 +2826,7 @@ eslint-plugin-mocha@^4.11.0: dependencies: ramda "^0.24.1" -eslint-plugin-node@^5.1.1: +eslint-plugin-node@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz#80df3253c4d7901045ec87fa660a284e32bdca29" dependencies: @@ -2831,18 +2835,18 @@ eslint-plugin-node@^5.1.1: resolve "^1.3.3" semver "5.3.0" -eslint-plugin-prettier@^2.3.1, eslint-plugin-prettier@^2.5.0: +eslint-plugin-prettier@^2.4.0, eslint-plugin-prettier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.5.0.tgz#39a91dd7528eaf19cd42c0ee3f2c1f684606a05f" dependencies: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-plugin-promise@^3.5.0: +eslint-plugin-promise@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" -eslint-plugin-react@^7.3.0: +eslint-plugin-react@^7.5.1: version "7.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz#52e56e8d80c810de158859ef07b880d2f56ee30b" dependencies: @@ -2851,38 +2855,41 @@ eslint-plugin-react@^7.3.0: jsx-ast-utils "^2.0.0" prop-types "^15.6.0" -eslint-plugin-shopify@^18.3.0: - version "18.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-shopify/-/eslint-plugin-shopify-18.3.0.tgz#70133be0f2620be441621b2522293b0238dcaf84" +eslint-plugin-shopify@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-shopify/-/eslint-plugin-shopify-19.0.0.tgz#4ca1f4210a391bfbf1b910a9de784392e3bfccaf" dependencies: - babel-eslint "^8.0.0" - eslint-config-prettier "^2.6.0" - eslint-plugin-ava "^4.2.1" + babel-eslint "^8.2.1" + eslint-config-prettier "^2.9.0" + eslint-module-utils "^2.1.1" + eslint-plugin-ava "^4.4.0" eslint-plugin-babel "^4.1.2" eslint-plugin-chai-expect "^1.1.1" - eslint-plugin-flowtype "^2.32.1" - eslint-plugin-import "^2.7.0" - eslint-plugin-jsx-a11y "^6.0.2" - eslint-plugin-lodash "^2.4.4" + eslint-plugin-flowtype "^2.41.0" + eslint-plugin-import "^2.8.0" + eslint-plugin-jest "^21.5.0" + eslint-plugin-jsx-a11y "^6.0.3" + eslint-plugin-lodash "^2.5.0" eslint-plugin-mocha "^4.11.0" - eslint-plugin-node "^5.1.1" - eslint-plugin-prettier "^2.3.1" - eslint-plugin-promise "^3.5.0" - eslint-plugin-react "^7.3.0" - eslint-plugin-sort-class-members "^1.2.0" - eslint-plugin-typescript "^0.7.0" + eslint-plugin-node "^5.2.1" + eslint-plugin-prettier "^2.4.0" + eslint-plugin-promise "^3.6.0" + eslint-plugin-react "^7.5.1" + eslint-plugin-sort-class-members "^1.3.0" + eslint-plugin-typescript "^0.8.1" merge "^1.2.0" - typescript-eslint-parser "^9.0.0" + pkg-dir "^2.0.0" + typescript-eslint-parser "^11.0.0" optionalDependencies: - prettier "<2.0 >= 1.7.2" + prettier "<2.0 >= 1.9.2" -eslint-plugin-sort-class-members@^1.2.0: +eslint-plugin-sort-class-members@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-plugin-sort-class-members/-/eslint-plugin-sort-class-members-1.3.0.tgz#8a3db9afb84351f06fe3d1622abcafa1e5781694" -eslint-plugin-typescript@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-typescript/-/eslint-plugin-typescript-0.7.0.tgz#d0bea86737fa18e892a27d7d70dea4ad3109ac8a" +eslint-plugin-typescript@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-typescript/-/eslint-plugin-typescript-0.8.1.tgz#e5b2d18e744a04528eac58b099fe1032c4d744ff" dependencies: requireindex "~1.1.0" @@ -2897,9 +2904,9 @@ 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.15.0: - version "4.15.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.15.0.tgz#89ab38c12713eec3d13afac14e4a89e75ef08145" +eslint@^4.16.0: + 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" @@ -2907,7 +2914,7 @@ eslint@^4.15.0: concat-stream "^1.6.0" cross-spawn "^5.1.0" debug "^3.1.0" - doctrine "^2.0.2" + doctrine "^2.1.0" eslint-scope "^3.7.1" eslint-visitor-keys "^1.0.0" espree "^3.5.2" @@ -6545,7 +6552,7 @@ prettier-stylelint@^0.4.2: tempy "^0.2.1" update-notifier "^2.2.0" -"prettier@<2.0 >= 1.7.2", prettier@^1.10.2, prettier@^1.7.0, prettier@^1.8.2: +"prettier@<2.0 >= 1.9.2", prettier@^1.10.2, prettier@^1.7.0, prettier@^1.8.2: version "1.10.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" @@ -8180,9 +8187,9 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript-eslint-parser@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-9.0.1.tgz#1497a565d192ca2a321bc5bbf89dcab0a2da75e8" +typescript-eslint-parser@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-11.0.0.tgz#37dba6a0130dd307504aa4b4b21b0d3dc7d4e9f2" dependencies: lodash.unescape "4.0.1" semver "5.4.1"