From 26364f45317cf4e0bfca04df0d05ec66d9d18c7e Mon Sep 17 00:00:00 2001 From: Yoran Brondsema Date: Wed, 26 Jul 2017 16:26:55 +0200 Subject: [PATCH] chore(eslint): Move to ESLint (#563) * Install eslint * Remove broccoli-test-builder * Use our version of broccoli-test-builder * Install updated version of broccoli-test-builder * Move to broccoli-test-builder@0.4.0 * Disable violating ESLint rules * Remove .jshintrc * Remove jshint ignore lines * Remove eslint * Remove rule no-case-declarations * Remove rule no-console * Remove rule no-extra-boolean-cast * Remove rule no-unused-vars * Remove rule space-in-parens for tests * Remove rule no-useless-concat in tests * Remove rule no-redeclare in tests * Remove rule no-multiple-empty-lines for tests * Remove rule no-debugger for tests * Remove rule newline-per-chained-call in tests * Remove rule complexity in tests * Update broccoli-test-builder --- .eslintrc.js | 280 ++++++++ .jshintrc | 101 --- broccoli/demo.js | 1 - broccoli/jquery.js | 1 - package.json | 2 +- src/js/cards/image.js | 2 +- src/js/editor/editor.js | 3 +- src/js/editor/event-manager.js | 8 +- src/js/editor/post.js | 6 +- src/js/editor/post/post-inserter.js | 4 +- src/js/models/_section.js | 4 +- src/js/models/post.js | 2 +- src/js/parsers/mobiledoc/0-2.js | 10 +- src/js/parsers/mobiledoc/0-3-1.js | 13 +- src/js/parsers/mobiledoc/0-3.js | 13 +- src/js/parsers/text.js | 3 +- src/js/renderers/editor-dom.js | 2 - src/js/utils/cursor/range.js | 3 +- src/js/utils/deprecate.js | 3 +- src/js/utils/linked-list.js | 6 +- tests/.eslintrc.js | 8 + tests/acceptance/editor-key-commands-test.js | 3 - tests/helpers/assertions.js | 3 +- tests/helpers/dom.js | 11 +- tests/helpers/editor.js | 2 +- tests/helpers/post-abstract.js | 5 +- tests/test-helpers.js | 3 +- tests/unit/editor/editor-events-test.js | 17 +- tests/unit/editor/editor-test.js | 4 +- tests/unit/models/post-test.js | 4 +- tests/unit/parsers/dom-test.js | 4 +- tests/unit/utils/cursor-range-test.js | 8 +- yarn.lock | 676 +++++++++++++++---- 33 files changed, 901 insertions(+), 314 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 .jshintrc create mode 100644 tests/.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..a394258a9 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,280 @@ +module.exports = { + "env": { + "browser": true, + "jquery": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 2017, + "sourceType": "module" + }, + "root": true, + "rules": { + "accessor-pairs": "error", + "array-bracket-spacing": "off", + "array-callback-return": "error", + "arrow-body-style": "off", + "arrow-parens": "off", + "arrow-spacing": "off", + "block-scoped-var": "error", + "block-spacing": [ + "error", + "always" + ], + "brace-style": [ + "error", + "1tbs", + { + "allowSingleLine": true + } + ], + "callback-return": "off", + "camelcase": "off", + "capitalized-comments": "off", + "class-methods-use-this": "off", + "comma-dangle": "off", + "comma-spacing": "off", + "comma-style": [ + "error", + "last" + ], + "complexity": "error", + "computed-property-spacing": [ + "error", + "never" + ], + "consistent-return": "off", + "consistent-this": "off", + "curly": "error", + "default-case": "off", + "dot-location": [ + "error", + "property" + ], + "dot-notation": [ + "error", + { + "allowKeywords": true + } + ], + "eol-last": "off", + "eqeqeq": "error", + "func-call-spacing": "error", + "func-name-matching": "error", + "func-names": [ + "error", + "never" + ], + "func-style": "off", + "generator-star-spacing": "error", + "global-require": "error", + "guard-for-in": "error", + "handle-callback-err": "error", + "id-blacklist": "error", + "id-length": "off", + "id-match": "error", + "indent": "off", + "init-declarations": "off", + "jsx-quotes": "error", + "key-spacing": "off", + "keyword-spacing": "off", + "line-comment-position": "off", + "linebreak-style": [ + "error", + "unix" + ], + "lines-around-comment": "off", + "lines-around-directive": "error", + "max-depth": "off", + "max-len": "off", + "max-lines": "off", + "max-nested-callbacks": "error", + "max-params": "off", + "max-statements": "off", + "max-statements-per-line": "off", + "multiline-ternary": "off", + "new-cap": "error", + "new-parens": "error", + "newline-after-var": "off", + "newline-before-return": "off", + "newline-per-chained-call": "error", + "no-alert": "off", + "no-array-constructor": "error", + "no-await-in-loop": "error", + "no-bitwise": "off", + "no-caller": "error", + "no-catch-shadow": "error", + "no-compare-neg-zero": "error", + "no-confusing-arrow": "error", + "no-continue": "off", + "no-div-regex": "error", + "no-duplicate-imports": "off", + "no-else-return": "off", + "no-empty-function": "off", + "no-eq-null": "error", + "no-eval": "error", + "no-extend-native": "error", + "no-extra-bind": "error", + "no-extra-label": "error", + "no-extra-parens": "off", + "no-floating-decimal": "error", + "no-implicit-coercion": [ + "error", + { + "boolean": false, + "number": false, + "string": false + } + ], + "no-implicit-globals": "error", + "no-implied-eval": "error", + "no-inline-comments": "off", + "no-inner-declarations": [ + "error", + "functions" + ], + "no-invalid-this": "error", + "no-iterator": "error", + "no-label-var": "error", + "no-labels": "error", + "no-lone-blocks": "error", + "no-lonely-if": "off", + "no-loop-func": "error", + "no-magic-numbers": "off", + "no-mixed-operators": "off", + "no-mixed-requires": "error", + "no-multi-assign": "off", + "no-multi-spaces": "off", + "no-multi-str": "error", + "no-multiple-empty-lines": "error", + "no-native-reassign": "error", + "no-negated-condition": "off", + "no-negated-in-lhs": "error", + "no-nested-ternary": "off", + "no-new": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-require": "error", + "no-new-wrappers": "error", + "no-octal-escape": "error", + "no-param-reassign": "off", + "no-path-concat": "error", + "no-plusplus": "off", + "no-process-env": "error", + "no-process-exit": "error", + "no-proto": "error", + "no-prototype-builtins": "off", + "no-restricted-globals": "error", + "no-restricted-imports": "error", + "no-restricted-modules": "error", + "no-restricted-properties": "error", + "no-restricted-syntax": "error", + "no-return-assign": "off", + "no-return-await": "error", + "no-script-url": "error", + "no-self-compare": "error", + "no-sequences": "error", + "no-shadow": "off", + "no-shadow-restricted-names": "error", + "no-spaced-func": "error", + "no-sync": "error", + "no-tabs": "error", + "no-template-curly-in-string": "off", + "no-ternary": "off", + "no-throw-literal": "error", + "no-trailing-spaces": "off", + "no-undef-init": "error", + "no-undefined": "off", + "no-underscore-dangle": "off", + "no-unmodified-loop-condition": "off", + "no-unneeded-ternary": "off", + "no-unused-expressions": "error", + "no-use-before-define": "error", + "no-useless-call": "off", + "no-useless-computed-key": "error", + "no-useless-concat": "error", + "no-useless-constructor": "error", + "no-useless-escape": "off", + "no-useless-rename": "error", + "no-useless-return": "off", + "no-var": "off", + "no-void": "error", + "no-warning-comments": "off", + "no-whitespace-before-property": "error", + "no-with": "error", + "nonblock-statement-body-position": "error", + "object-curly-newline": "off", + "object-curly-spacing": "off", + "object-property-newline": "off", + "object-shorthand": "off", + "one-var": "off", + "one-var-declaration-per-line": "off", + "operator-assignment": "off", + "operator-linebreak": "off", + "padded-blocks": "off", + "prefer-arrow-callback": "off", + "prefer-const": "off", + "prefer-destructuring": [ + "error", + { + "array": false, + "object": false + } + ], + "prefer-numeric-literals": "error", + "prefer-promise-reject-errors": "error", + "prefer-reflect": "off", + "prefer-rest-params": "off", + "prefer-spread": "off", + "prefer-template": "off", + "quote-props": "off", + "quotes": "off", + "radix": "error", + "require-await": "error", + "require-jsdoc": "off", + "rest-spread-spacing": [ + "error", + "never" + ], + "semi": "error", + "semi-spacing": [ + "error", + { + "after": true, + "before": false + } + ], + "sort-imports": "off", + "sort-keys": "off", + "sort-vars": "off", + "space-before-blocks": "off", + "space-before-function-paren": "off", + "space-in-parens": [ + "error", + "never" + ], + "space-infix-ops": "off", + "space-unary-ops": "error", + "spaced-comment": "off", + "strict": "error", + "symbol-description": "error", + "template-curly-spacing": [ + "error", + "never" + ], + "template-tag-spacing": "error", + "unicode-bom": [ + "error", + "never" + ], + "valid-jsdoc": "off", + "vars-on-top": "off", + "wrap-iife": "error", + "wrap-regex": "off", + "yield-star-spacing": "error", + "yoda": [ + "error", + "never" + ] + } +}; diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 1cb43e62a..000000000 --- a/.jshintrc +++ /dev/null @@ -1,101 +0,0 @@ -{ - // -------------------------------------------------------------------- - // JSHint Configuration - // -------------------------------------------------------------------- - // - // http://www.jshint.com/ - // Modifed from: https://gist.github.com/haschek/2595796 - // - // * set all enforcing options to true - // * set all relaxing options to false - // * set all JSLint legacy options to false - // - - // == Enforcing Options =============================================== - // - // These options tell JSHint to be more strict towards your code. Use - // them if you want to allow only a safe subset of JavaScript, very - // useful when your codebase is shared with a big number of developers - // with different skill levels. - - "curly" : true, // Require {} for every new block or scope. - "eqeqeq" : true, // Require triple equals i.e. `===`. - "forin" : true, // Require `for in` loops with `hasOwnPrototype`. - "immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` - "latedef" : true, // Prohibit variable use before definition. - "newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`. - "noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`. - "noempty" : true, // Prohibit use of empty blocks. - "nonew" : true, // Prohibit use of constructors for side-effects. - "regexp" : true, // Prohibit `.` and `[^...]` in regular expressions. - "undef" : true, // Require all non-global variables be declared before they are used. - "unused" : true, // Warn when variables are created but not used. - "trailing" : true, // Prohibit trailing whitespaces. - "esnext" : true, // Allow ES.next specific features such as `const` and `let`. - - // == Relaxing Options ================================================ - // - // These options allow you to suppress certain types of warnings. Use - // them only if you are absolutely positive that you know what you are - // doing. - - "bitwise" : false, // Prohibit bitwise operators (&, |, ^, etc.). - "plusplus" : false, // Prohibit use of `++` & `--`. - "strict" : false, // Require `use strict` pragma in every file. - "asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons). - "boss" : false, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments. - "debug" : false, // Allow debugger statements e.g. browser breakpoints. - "eqnull" : false, // Tolerate use of `== null`. - "es5" : false, // Allow EcmaScript 5 syntax. - "evil" : false, // Tolerate use of `eval`. - "expr" : false, // Tolerate `ExpressionStatement` as Programs. - "funcscope" : false, // Tolerate declarations of variables inside of control structures while accessing them later from the outside. - "globalstrict" : false, // Allow global "use strict" (also enables 'strict'). - "iterator" : false, // Allow usage of __iterator__ property. - "lastsemic" : false, // Tolerat missing semicolons when the it is omitted for the last statement in a one-line block. - "laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons. - "laxcomma" : false, // Suppress warnings about comma-first coding style. - "loopfunc" : false, // Allow functions to be defined within loops. - "multistr" : false, // Tolerate multi-line strings. - "onecase" : false, // Tolerate switches with just one case. - "proto" : false, // Tolerate __proto__ property. This property is deprecated. - "regexdash" : false, // Tolerate unescaped last dash i.e. `[-...]`. - "scripturl" : false, // Tolerate script-targeted URLs. - "smarttabs" : false, // Tolerate mixed tabs and spaces when the latter are used for alignmnent only. - "shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`. - "sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`. - "supernew" : false, // Tolerate `new function () { ... };` and `new Object;`. - "validthis" : false, // Tolerate strict violations when the code is running in strict mode and you use this in a non-constructor function. - - // == Environments ==================================================== - // - // These options pre-define global variables that are exposed by - // popular JavaScript libraries and runtime environments—such as - // browser or node.js. - - "browser" : true, // Standard browser globals e.g. `window`, `document`. - "devel" : false, // Allow development statements e.g. `console.log();`. - "jquery" : false, // Enable globals exposed by jQuery JavaScript library. - "node" : false, // Enable globals available when code is running inside of the NodeJS runtime environment. - - // == JSLint Legacy =================================================== - // - // These options are legacy from JSLint. Aside from bug fixes they will - // not be improved in any way and might be removed at any point. - - "nomen" : false, // Prohibit use of initial or trailing underbars in names. - "onevar" : false, // Allow only one `var` statement per function. - "passfail" : false, // Stop on first error. - "white" : false, // Check against strict whitespace and indentation rules. - - // == Global Variables ==================================================== - // - // These options pre-define global variables specific - // to your app that hang off `window`. - - "predef": [ - "define", // amd loader - "$", - "QUnit" - ] -} diff --git a/broccoli/demo.js b/broccoli/demo.js index 1da533ca4..f1f16a03f 100644 --- a/broccoli/demo.js +++ b/broccoli/demo.js @@ -1,4 +1,3 @@ -/* jshint node:true */ var funnel = require('broccoli-funnel'); var babel = require('broccoli-babel-transpiler'); diff --git a/broccoli/jquery.js b/broccoli/jquery.js index 306325f97..2253316fc 100644 --- a/broccoli/jquery.js +++ b/broccoli/jquery.js @@ -1,4 +1,3 @@ -/* jshint node:true */ var funnel = require('broccoli-funnel'); var mergeTrees = require('broccoli-merge-trees'); diff --git a/package.json b/package.json index 234448b25..6ff1cf4c7 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "broccoli-multi-builder": "^0.3.0", "broccoli-sane-watcher": "^1.1.4", "broccoli-string-replace": "^0.1.1", - "broccoli-test-builder": "^0.3.0", + "broccoli-test-builder": "^0.4.0", "conventional-changelog": "^1.1.3", "conventional-changelog-cli": "^1.3.1", "jquery": "^3.2.1", diff --git a/src/js/cards/image.js b/src/js/cards/image.js index 7244d26d1..5b30ea2fc 100644 --- a/src/js/cards/image.js +++ b/src/js/cards/image.js @@ -4,7 +4,7 @@ export default { name: 'image', type: 'dom', - render({env, options, payload}) { + render({payload}) { let img = document.createElement('img'); img.src = payload.src || placeholderImageSrc; return img; diff --git a/src/js/editor/editor.js b/src/js/editor/editor.js index 55033211c..7bfd31451 100644 --- a/src/js/editor/editor.js +++ b/src/js/editor/editor.js @@ -561,7 +561,7 @@ class Editor { let rendererOptions = { unknownCardHandler, unknownAtomHandler }; switch (format) { - case 'html': + case 'html': { let result; if (Environment.hasDOM()) { rendered = new DOMRenderer(rendererOptions).render(mobiledoc); @@ -571,6 +571,7 @@ class Editor { result = this.serializePost(post, 'text', options); } return result; + } case 'text': rendered = new TextRenderer(rendererOptions).render(mobiledoc); return rendered.result; diff --git a/src/js/editor/event-manager.js b/src/js/editor/event-manager.js index 7fc423c7c..d0b874499 100644 --- a/src/js/editor/event-manager.js +++ b/src/js/editor/event-manager.js @@ -76,7 +76,7 @@ export default class EventManager { filter(this._listeners, ([_context, _type]) => { return _context === context && _type === type; }), - ([context, type, listener]) => { + ([context,, listener]) => { listener.call(context, event); } ); @@ -155,7 +155,7 @@ export default class EventManager { switch(true) { // FIXME This should be restricted to only card/atom boundaries - case key.isHorizontalArrowWithoutModifiersOtherThanShift(): + case key.isHorizontalArrowWithoutModifiersOtherThanShift(): { let newRange; if (key.isShift()) { newRange = range.extend(key.direction * 1); @@ -166,7 +166,8 @@ export default class EventManager { editor.selectRange(newRange); event.preventDefault(); break; - case key.isDelete(): + } + case key.isDelete(): { let { direction } = key; let unit = 'char'; if (this.modifierKeys.alt && Browser.isMac()) { @@ -177,6 +178,7 @@ export default class EventManager { editor.performDelete({direction, unit}); event.preventDefault(); break; + } case key.isEnter(): editor.handleNewline(event); break; diff --git a/src/js/editor/post.js b/src/js/editor/post.js index ce87f0a7d..3051078dd 100644 --- a/src/js/editor/post.js +++ b/src/js/editor/post.js @@ -884,7 +884,7 @@ class PostEditor { let positionIsMiddle = !position.isHead() && !position.isTail(); if (positionIsMiddle) { let item = position.section; - let [pre, post] = // jshint ignore:line + let [pre,] = this._splitListItem(item, position); position = pre.tailPosition(); } @@ -970,7 +970,7 @@ class PostEditor { let markupSection = this.builder.createMarkupSection(newTagName); markupSection.join(section); - let [prev, mid, next] = this._splitListAtItem(listSection, section); // jshint ignore:line + let [, mid,] = this._splitListAtItem(listSection, section); this.replaceSection(mid, markupSection); return markupSection; } @@ -988,7 +988,7 @@ class PostEditor { let sectionToReplace; if (section.isListItem) { - let [prev, mid, next] = this._splitListAtItem(section.parent, section); // jshint ignore:line + let [, mid,] = this._splitListAtItem(section.parent, section); sectionToReplace = mid; } else { sectionToReplace = section; diff --git a/src/js/editor/post/post-inserter.js b/src/js/editor/post/post-inserter.js index ead63f893..0c7385320 100644 --- a/src/js/editor/post/post-inserter.js +++ b/src/js/editor/post/post-inserter.js @@ -149,7 +149,7 @@ class Visitor { let blank = this.builder.createMarkupSection(); this._insertSectionAfter(blank, parent); } else { - let [pre, blank, post] = this._breakListAtCursor(); // jshint ignore:line + let [, blank,] = this._breakListAtCursor(); this.cursorPosition = blank.tailPosition(); } } @@ -211,7 +211,7 @@ class Visitor { } _breakMarkerableAtCursor() { - let [pre, post] = // jshint ignore:line + let [pre,] = this.postEditor.splitSection(this.cursorPosition); this.cursorPosition = pre.tailPosition(); diff --git a/src/js/models/_section.js b/src/js/models/_section.js index e3d1933f6..90e3a551c 100644 --- a/src/js/models/_section.js +++ b/src/js/models/_section.js @@ -106,7 +106,7 @@ export default class Section extends LinkedItem { nextLeafSection() { const next = this.next; if (next) { - if (!!next.items) { + if (next.items) { return next.items.head; } else { return next; @@ -130,7 +130,7 @@ export default class Section extends LinkedItem { const prev = this.prev; if (prev) { - if (!!prev.items) { + if (prev.items) { return prev.items.tail; } else { return prev; diff --git a/src/js/models/post.js b/src/js/models/post.js index decdb5745..a395f6b41 100644 --- a/src/js/models/post.js +++ b/src/js/models/post.js @@ -173,7 +173,7 @@ class Post { if (next) { if (next.isLeafSection) { return next; - } else if (!!next.items) { + } else if (next.items) { return next.items.head; } else { assert('Cannot determine next section from non-leaf-section', false); diff --git a/src/js/parsers/mobiledoc/0-2.js b/src/js/parsers/mobiledoc/0-2.js index 5314fb284..9e77348e4 100644 --- a/src/js/parsers/mobiledoc/0-2.js +++ b/src/js/parsers/mobiledoc/0-2.js @@ -19,7 +19,7 @@ export default class MobiledocParser { * @param {Mobiledoc} * @return {Post} */ - parse({version, sections: sectionData}) { + parse({sections: sectionData}) { try { const markerTypes = sectionData[0]; const sections = sectionData[1]; @@ -69,17 +69,17 @@ export default class MobiledocParser { } } - parseCardSection([type, name, payload], post) { + parseCardSection([, name, payload], post) { const section = this.builder.createCardSection(name, payload); post.sections.append(section); } - parseImageSection([type, src], post) { + parseImageSection([, src], post) { const section = this.builder.createImageSection(src); post.sections.append(section); } - parseMarkupSection([type, tagName, markers], post) { + parseMarkupSection([, tagName, markers], post) { const section = this.builder.createMarkupSection(tagName.toLowerCase() === 'pull-quote' ? 'aside' : tagName); post.sections.append(section); this.parseMarkers(markers, section); @@ -90,7 +90,7 @@ export default class MobiledocParser { }); } - parseListSection([type, tagName, items], post) { + parseListSection([, tagName, items], post) { const section = this.builder.createListSection(tagName); post.sections.append(section); this.parseListItems(items, section); diff --git a/src/js/parsers/mobiledoc/0-3-1.js b/src/js/parsers/mobiledoc/0-3-1.js index 324056da2..398cfa0fb 100644 --- a/src/js/parsers/mobiledoc/0-3-1.js +++ b/src/js/parsers/mobiledoc/0-3-1.js @@ -21,7 +21,7 @@ export default class MobiledocParser { * @param {Mobiledoc} * @return {Post} */ - parse({ version, sections, markups: markerTypes, cards: cardTypes, atoms: atomTypes }) { + parse({ sections, markups: markerTypes, cards: cardTypes, atoms: atomTypes }) { try { const post = this.builder.createPost(); @@ -98,18 +98,18 @@ export default class MobiledocParser { return cardType; } - parseCardSection([type, cardIndex], post) { + parseCardSection([, cardIndex], post) { const [name, payload] = this.getCardTypeFromIndex(cardIndex); const section = this.builder.createCardSection(name, payload); post.sections.append(section); } - parseImageSection([type, src], post) { + parseImageSection([, src], post) { const section = this.builder.createImageSection(src); post.sections.append(section); } - parseMarkupSection([type, tagName, markers], post) { + parseMarkupSection([, tagName, markers], post) { const section = this.builder.createMarkupSection(tagName); post.sections.append(section); this.parseMarkers(markers, section); @@ -120,7 +120,7 @@ export default class MobiledocParser { }); } - parseListSection([type, tagName, items], post) { + parseListSection([, tagName, items], post) { const section = this.builder.createListSection(tagName); post.sections.append(section); this.parseListItems(items, section); @@ -155,9 +155,10 @@ export default class MobiledocParser { switch (type) { case MOBILEDOC_MARKUP_MARKER_TYPE: return this.builder.createMarker(value, this.markups.slice()); - case MOBILEDOC_ATOM_MARKER_TYPE: + case MOBILEDOC_ATOM_MARKER_TYPE: { const [atomName, atomValue, atomPayload] = this.getAtomTypeFromIndex(value); return this.builder.createAtom(atomName, atomValue, atomPayload, this.markups.slice()); + } default: assert(`Unexpected marker type ${type}`, false); } diff --git a/src/js/parsers/mobiledoc/0-3.js b/src/js/parsers/mobiledoc/0-3.js index 00b22ebf9..00addadfd 100644 --- a/src/js/parsers/mobiledoc/0-3.js +++ b/src/js/parsers/mobiledoc/0-3.js @@ -21,7 +21,7 @@ export default class MobiledocParser { * @param {Mobiledoc} * @return {Post} */ - parse({ version, sections, markups: markerTypes, cards: cardTypes, atoms: atomTypes }) { + parse({ sections, markups: markerTypes, cards: cardTypes, atoms: atomTypes }) { try { const post = this.builder.createPost(); @@ -98,18 +98,18 @@ export default class MobiledocParser { return cardType; } - parseCardSection([type, cardIndex], post) { + parseCardSection([, cardIndex], post) { const [name, payload] = this.getCardTypeFromIndex(cardIndex); const section = this.builder.createCardSection(name, payload); post.sections.append(section); } - parseImageSection([type, src], post) { + parseImageSection([, src], post) { const section = this.builder.createImageSection(src); post.sections.append(section); } - parseMarkupSection([type, tagName, markers], post) { + parseMarkupSection([, tagName, markers], post) { const section = this.builder.createMarkupSection(tagName.toLowerCase() === 'pull-quote' ? 'aside' : tagName); post.sections.append(section); this.parseMarkers(markers, section); @@ -120,7 +120,7 @@ export default class MobiledocParser { }); } - parseListSection([type, tagName, items], post) { + parseListSection([, tagName, items], post) { const section = this.builder.createListSection(tagName); post.sections.append(section); this.parseListItems(items, section); @@ -155,9 +155,10 @@ export default class MobiledocParser { switch (type) { case MOBILEDOC_MARKUP_MARKER_TYPE: return this.builder.createMarker(value, this.markups.slice()); - case MOBILEDOC_ATOM_MARKER_TYPE: + case MOBILEDOC_ATOM_MARKER_TYPE: { const [atomName, atomValue, atomPayload] = this.getAtomTypeFromIndex(value); return this.builder.createAtom(atomName, atomValue, atomPayload, this.markups.slice()); + } default: assert(`Unexpected marker type ${type}`, false); } diff --git a/src/js/parsers/text.js b/src/js/parsers/text.js index 593e2b81a..6c4a9546d 100644 --- a/src/js/parsers/text.js +++ b/src/js/parsers/text.js @@ -62,11 +62,12 @@ export default class TextParser { let markers = [this.builder.createMarker(text)]; switch (type) { - case LIST_SECTION_TYPE: + case LIST_SECTION_TYPE: { let item = this.builder.createListItem(markers); let list = this.builder.createListSection(tagName, [item]); section = list; break; + } case MARKUP_SECTION_TYPE: section = this.builder.createMarkupSection(tagName, markers); break; diff --git a/src/js/renderers/editor-dom.js b/src/js/renderers/editor-dom.js index 0a8584e75..f6aa500ab 100644 --- a/src/js/renderers/editor-dom.js +++ b/src/js/renderers/editor-dom.js @@ -601,10 +601,8 @@ export default class Renderer { method = postNode.type; assert(`EditorDom visitor cannot handle type ${method}`, !!this.visitor[method]); - // jshint -W083 this.visitor[method](renderNode, postNode, (...args) => this.visit(renderTree, ...args)); - // jshint +W083 renderNode.markClean(); renderNode = this.nodes.shift(); } diff --git a/src/js/utils/cursor/range.js b/src/js/utils/cursor/range.js index 34311b0be..fb6d00766 100644 --- a/src/js/utils/cursor/range.js +++ b/src/js/utils/cursor/range.js @@ -89,9 +89,10 @@ class Range { return new Range(head, tail.move(units), currentDirection); case DIRECTION.BACKWARD: return new Range(head.move(units), tail, currentDirection); - default: + default: { let newDirection = units > 0 ? DIRECTION.FORWARD : DIRECTION.BACKWARD; return new Range(head, tail, newDirection).extend(units); + } } } diff --git a/src/js/utils/deprecate.js b/src/js/utils/deprecate.js index 9821b0e65..e8c2fe35b 100644 --- a/src/js/utils/deprecate.js +++ b/src/js/utils/deprecate.js @@ -9,6 +9,7 @@ */ export default function deprecate(message, conditional=false) { if (!conditional) { - console.log(`[mobiledoc-kit] [DEPRECATED]: ${message}`); // jshint ignore:line + // eslint-disable-next-line no-console + console.log(`[mobiledoc-kit] [DEPRECATED]: ${message}`); } } diff --git a/src/js/utils/linked-list.js b/src/js/utils/linked-list.js index 7364f50cd..f95240996 100644 --- a/src/js/utils/linked-list.js +++ b/src/js/utils/linked-list.js @@ -65,7 +65,7 @@ export default class LinkedList { this.head = item; break; - case 'middle': + case 'middle': { let prevItem = nextItem.prev; item.next = nextItem; item.prev = prevItem; @@ -73,7 +73,8 @@ export default class LinkedList { prevItem.next = item; break; - case 'end': + } + case 'end': { let tail = this.tail; item.prev = tail; @@ -85,6 +86,7 @@ export default class LinkedList { this.tail = item; break; + } } } remove(item) { diff --git a/tests/.eslintrc.js b/tests/.eslintrc.js new file mode 100644 index 000000000..dde6a3e56 --- /dev/null +++ b/tests/.eslintrc.js @@ -0,0 +1,8 @@ +module.exports = { + "rules": { + "dot-location": "off", + "no-new": "off", + "no-use-before-define": "off", + "no-unused-vars": "off" + } +}; diff --git a/tests/acceptance/editor-key-commands-test.js b/tests/acceptance/editor-key-commands-test.js index da8db1867..7084e050a 100644 --- a/tests/acceptance/editor-key-commands-test.js +++ b/tests/acceptance/editor-key-commands-test.js @@ -478,9 +478,6 @@ test('new key commands can be registered and then unregistered', (assert) => { run(editor) { passedEditor = editor; passedEditorCount++; } }); - - - Helpers.dom.triggerKeyCommand(editor, 'x', MODIFIERS.CTRL); Helpers.dom.triggerKeyCommand(editor, 'd', MODIFIERS.CTRL); diff --git a/tests/helpers/assertions.js b/tests/helpers/assertions.js index 957a1c4e7..fdce5619e 100644 --- a/tests/helpers/assertions.js +++ b/tests/helpers/assertions.js @@ -14,7 +14,6 @@ import { ATOM_TYPE } from 'mobiledoc-kit/models/types'; -/*jshint latedef: false */ function compareMarkers(actual, expected, assert, path, deepCompare) { if (actual.value !== expected.value) { assert.equal(actual.value, expected.value, `wrong value at ${path}`); @@ -31,6 +30,7 @@ function compareMarkers(actual, expected, assert, path, deepCompare) { } } +/* eslint-disable complexity */ function comparePostNode(actual, expected, assert, path='root', deepCompare=false) { if (!actual || !expected) { assert.ok(!!actual, `missing actual post node at ${path}`); @@ -124,6 +124,7 @@ function comparePostNode(actual, expected, assert, path='root', deepCompare=fals throw new Error('wrong type :' + actual.type); } } +/* eslint-enable complexity */ export default function registerAssertions(QUnit) { QUnit.assert.hasElement = function(selector, diff --git a/tests/helpers/dom.js b/tests/helpers/dom.js index 72337b512..6105bdd32 100644 --- a/tests/helpers/dom.js +++ b/tests/helpers/dom.js @@ -30,9 +30,7 @@ function walkDOMUntil(topNode, conditionFn=() => {}) { return currentElement; } - // jshint -W083 forEach(currentElement.childNodes, el => stack.push(el)); - // jshint +W083 } } @@ -226,8 +224,8 @@ function insertText(editor, string) { }); } -function triggerKeyEvent(editor, eventName, options={}) { - let event = createMockEvent(eventName, editor.element, options); +function triggerKeyEvent(editor, type, options) { + let event = createMockEvent(type, editor.element, options); _triggerEditorEvent(editor, event); } @@ -249,11 +247,6 @@ function triggerKeyCommand(editor, string, modifiers=[]) { _triggerEditorEvent(editor, keyEvent); } -function triggerKeyEvent(editor, type, options) { - let event = createMockEvent(type, editor.element, options); - _triggerEditorEvent(editor, event); -} - function triggerRightArrowKey(editor, modifier) { if (!(editor instanceof Editor)) { throw new Error('Must pass editor to triggerRightArrowKey'); diff --git a/tests/helpers/editor.js b/tests/helpers/editor.js index af7c0ff7a..e4628d554 100644 --- a/tests/helpers/editor.js +++ b/tests/helpers/editor.js @@ -36,7 +36,7 @@ function buildFromText(texts, editorOptions={}) { let renderElement = editorOptions.element; delete editorOptions.element; - let beforeRender = editorOptions.beforeRender || () => {}; + let beforeRender = editorOptions.beforeRender || function() {}; delete editorOptions.beforeRender; let {post, range} = PostAbstractHelpers.buildFromText(texts); diff --git a/tests/helpers/post-abstract.js b/tests/helpers/post-abstract.js index d6dafebc6..7e0eca7d9 100644 --- a/tests/helpers/post-abstract.js +++ b/tests/helpers/post-abstract.js @@ -1,4 +1,3 @@ -/* jshint latedef:nofunc */ import PostNodeBuilder from 'mobiledoc-kit/models/post-node-builder'; /* @@ -113,7 +112,7 @@ function parseTextIntoAtom(text, builder) { if (index === 1) { // atom markers.push(piece); } else if (piece.length) { - markers = markers.concat( parseTextIntoMarkers(piece, builder) ); + markers = markers.concat(parseTextIntoMarkers(piece, builder)); } }); @@ -209,7 +208,7 @@ function parseSingleText(text, builder) { /** * Shorthand to create a mobiledoc simply. * Pass a string or an array of strings. - * + * * Returns { post, range }, a post built from the mobiledoc and a range. * * Use "|" to indicate the cursor position or "<" and ">" to indicate a range. diff --git a/tests/test-helpers.js b/tests/test-helpers.js index 618614db7..ac8321913 100644 --- a/tests/test-helpers.js +++ b/tests/test-helpers.js @@ -26,7 +26,8 @@ const test = (msg, callback) => { let originalCallback = callback; callback = (...args) => { if (QUnit.config.debugTest) { - debugger; // jshint ignore:line + // eslint-disable-next-line no-debugger + debugger; } originalCallback(...args); }; diff --git a/tests/unit/editor/editor-events-test.js b/tests/unit/editor/editor-events-test.js index bc5c333bf..2216ed0ef 100644 --- a/tests/unit/editor/editor-events-test.js +++ b/tests/unit/editor/editor-events-test.js @@ -261,13 +261,16 @@ test('after #toggleMarkup, editor refocuses if it had selection', (assert) => { let done = assert.async(); assert.expect(3); - let button = $('').appendTo('#qunit-fixture').click(() => { - Helpers.dom.selectText(editor, 'this', editorElement); // necessary for Safari to detect a selection in the editor - button.focus(); - - assert.ok(document.activeElement !== editor.element, 'precond - editor element is not focused'); - editor.toggleMarkup('b'); - }); + let button = + $('') + .appendTo('#qunit-fixture') + .click(() => { + Helpers.dom.selectText(editor, 'this', editorElement); // necessary for Safari to detect a selection in the editor + button.focus(); + + assert.ok(document.activeElement !== editor.element, 'precond - editor element is not focused'); + editor.toggleMarkup('b'); + }); editor.selectRange(new Range(editor.post.headPosition())); diff --git a/tests/unit/editor/editor-test.js b/tests/unit/editor/editor-test.js index a0fdb30d5..fd223f1c6 100644 --- a/tests/unit/editor/editor-test.js +++ b/tests/unit/editor/editor-test.js @@ -277,14 +277,14 @@ test('useful error message when given invalid mobiledoc', (assert) => { ] }; assert.throws(() => { - new Editor({mobiledoc: badMobiledoc}); // jshint ignore:line + new Editor({mobiledoc: badMobiledoc}); }, /unable to parse.*mobiledoc/i); }); test('useful error message when given bad version of mobiledoc', (assert) => { let verybadMobiledoc = "not mobiledoc"; assert.throws(() => { - new Editor({mobiledoc: verybadMobiledoc}); // jshint ignore:line + new Editor({mobiledoc: verybadMobiledoc}); }, /Unknown version of mobiledoc parser requested/i); }); diff --git a/tests/unit/models/post-test.js b/tests/unit/models/post-test.js index abd121771..0255542e6 100644 --- a/tests/unit/models/post-test.js +++ b/tests/unit/models/post-test.js @@ -167,8 +167,8 @@ test('#markupsInRange obeys left- and right-inclusive rules for "A" markups', (a marker('123', [a]), marker(' abc '), marker('def', [a]), - marker( ' ghi '), - marker( 'jkl', [a]) + marker(' ghi '), + marker('jkl', [a]) ])]); }); diff --git a/tests/unit/parsers/dom-test.js b/tests/unit/parsers/dom-test.js index adc612f01..b2d00047e 100644 --- a/tests/unit/parsers/dom-test.js +++ b/tests/unit/parsers/dom-test.js @@ -43,7 +43,7 @@ let expectations = [ ['

some text

', ['some text']], ['

some text

some other text

', ['some text','some other text']], ['

some  text   for    you

', ['some text for you']], - ['

a\u2003b

', [`a${TAB}b`]], + ['

a\u2003b

', [`a${TAB}b`]], // multiple ps, with and without adjacent text nodes ['

first line

\n

second line

', ['first line','second line']], @@ -71,7 +71,7 @@ let expectations = [ expectations.forEach(([html, dslText]) => { test(`#parse ${html} -> ${dslText}`, (assert) => { - let post = parser.parse( buildDOM(html) ); + let post = parser.parse(buildDOM(html)); let { post: expected } = buildFromText(dslText); assert.postIsSimilar(post, expected); diff --git a/tests/unit/utils/cursor-range-test.js b/tests/unit/utils/cursor-range-test.js index c073af9a9..71dceebd1 100644 --- a/tests/unit/utils/cursor-range-test.js +++ b/tests/unit/utils/cursor-range-test.js @@ -140,7 +140,7 @@ test('#extend expands range in multiple units in direction', (assert) => { Range.create(headSection, 0, headSection, 2, FORWARD), 'extend forward 2'); - assert.rangeIsEqual(collapsedRange.extend(FORWARD*(('abcd' + '12').length+1)), + assert.rangeIsEqual(collapsedRange.extend(FORWARD*('abcd12'.length+1)), Range.create(headSection, 0, tailSection, 2, FORWARD), 'extend forward across sections'); @@ -148,7 +148,7 @@ test('#extend expands range in multiple units in direction', (assert) => { Range.create(headSection, 0, headSection, 3, FORWARD), 'extend non-collapsed forward 2'); - assert.rangeIsEqual(nonCollapsedRange.extend(FORWARD*(('bcd' + '12').length+1)), + assert.rangeIsEqual(nonCollapsedRange.extend(FORWARD*('bcd12'.length+1)), Range.create(headSection, 0, tailSection, 2, FORWARD), 'extend non-collapsed across sections'); @@ -159,7 +159,7 @@ test('#extend expands range in multiple units in direction', (assert) => { Range.create(tailSection, '12'.length, tailSection, '1234'.length, BACKWARD), 'extend backward 2'); - assert.rangeIsEqual(collapsedRange.extend(BACKWARD*(('1234' + 'cd').length+1)), + assert.rangeIsEqual(collapsedRange.extend(BACKWARD*('1234cd'.length+1)), Range.create(headSection, 'ab'.length, tailSection, '1234'.length, BACKWARD), 'extend backward across sections'); @@ -167,7 +167,7 @@ test('#extend expands range in multiple units in direction', (assert) => { Range.create(tailSection, 0, tailSection, '1234'.length, BACKWARD), 'extend non-collapsed backward 2'); - assert.rangeIsEqual(nonCollapsedRange.extend(BACKWARD*(('bcd' + '12').length+1)), + assert.rangeIsEqual(nonCollapsedRange.extend(BACKWARD*('bcd12'.length+1)), Range.create(headSection, 'a'.length, tailSection, '1234'.length, BACKWARD), 'extend non-collapsed backward across sections'); }); diff --git a/yarn.lock b/yarn.lock index 4a8a16540..1abacafcb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,6 +34,10 @@ 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.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -53,13 +57,26 @@ agent-base@2: extend "~3.0.0" semver "~5.0.1" -ajv@^4.9.1: +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" +ajv@^5.2.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" @@ -78,6 +95,10 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-escapes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b" + ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -86,6 +107,10 @@ 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" @@ -94,9 +119,11 @@ 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@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" +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" anymatch@^1.3.0: version "1.3.0" @@ -105,6 +132,12 @@ anymatch@^1.3.0: arrify "^1.0.0" micromatch "^2.1.5" +aot-test-generators@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/aot-test-generators/-/aot-test-generators-0.1.0.tgz#43f0f615f97cb298d7919c1b0b4e6b7310b03cd0" + dependencies: + jsesc "^2.5.0" + applause@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/applause/-/applause-1.2.2.tgz#a8468579e81f67397bb5634c29953bedcd0f56c0" @@ -181,6 +214,16 @@ array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" @@ -275,6 +318,14 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" +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: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + babel-core@^5.0.0: version "5.8.38" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-5.8.38.tgz#1fcaee79d7e61b750b00b8e54f6dfc9d0af86558" @@ -522,7 +573,7 @@ broccoli-cli@^1.0.0: dependencies: resolve "~0.6.1" -broccoli-concat@^3.2.0: +broccoli-concat@^3.2.0, broccoli-concat@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.2.2.tgz#86ffdc52606eb590ba9f6b894c5ec7a016f5b7b9" dependencies: @@ -584,17 +635,6 @@ broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.1.0, broccoli symlink-or-copy "^1.0.0" walk-sync "^0.3.1" -broccoli-jshint@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/broccoli-jshint/-/broccoli-jshint-2.1.0.tgz#d9aeb6428e7657d0bebf4e7920e55f82840601e6" - dependencies: - broccoli-persistent-filter "^1.2.0" - chalk "~0.4.0" - findup-sync "^0.3.0" - jshint "^2.7.0" - json-stable-stringify "^1.0.0" - mkdirp "~0.4.0" - broccoli-kitchen-sink-helpers@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.3.1.tgz#77c7c18194b9664163ec4fcee2793444926e0c06" @@ -602,6 +642,18 @@ broccoli-kitchen-sink-helpers@^0.3.1: glob "^5.0.10" mkdirp "^0.5.1" +broccoli-lint-eslint@^4.0.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 "^4.0.0" + json-stable-stringify "^1.0.1" + lodash.defaultsdeep "^4.6.0" + md5-hex "^2.0.0" + broccoli-livereload@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/broccoli-livereload/-/broccoli-livereload-1.2.1.tgz#f4ea862edd7d2311b59bd955ce3c78a73091cd3e" @@ -729,15 +781,15 @@ broccoli-string-replace@^0.1.1: broccoli-persistent-filter "^1.1.5" minimatch "^3.0.3" -broccoli-test-builder@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/broccoli-test-builder/-/broccoli-test-builder-0.3.0.tgz#0a20ebdf2f5231522373ecdaa2a5e533d70c9a78" +broccoli-test-builder@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/broccoli-test-builder/-/broccoli-test-builder-0.4.0.tgz#7f35f1cd7a75acfe640db642bc87319c52aa2090" dependencies: broccoli-amd-loader "^0.2.0" broccoli-babel-transpiler "^5.6.2" broccoli-concat "^3.2.0" broccoli-funnel "^1.1.0" - broccoli-jshint "^2.1.0" + broccoli-lint-eslint "^4.0.0" broccoli-merge-trees "^2.0.0" broccoli-replace "^0.12.0" qunitjs "^2.1.1" @@ -776,10 +828,20 @@ builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" +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" @@ -832,7 +894,7 @@ chalk@^0.5.1: strip-ansi "^0.3.0" supports-color "^0.2.0" -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -842,13 +904,13 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" +chalk@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.0.1.tgz#dbec49436d2ae15f536114e76d14656cdbc0f44d" dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" charm@^1.0.0: version "1.0.2" @@ -886,12 +948,19 @@ chokidar@^1.6.0: optionalDependencies: fsevents "^1.0.0" -cli@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: - exit "0.1.2" - glob "^7.1.1" + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" cliui@^2.1.0: version "2.1.0" @@ -917,6 +986,16 @@ coffee-script@^1.10.0: version "1.12.6" resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.6.tgz#285a3f7115689065064d6bf9ef4572db66695cbf" +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" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -983,6 +1062,14 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + connect@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.2.tgz#694e8d20681bfe490282c8ab886be98f09f42fe7" @@ -992,12 +1079,6 @@ connect@^3.3.3: parseurl "~1.3.1" utils-merge "1.0.0" -console-browserify@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - 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" @@ -1227,10 +1308,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - dateformat@^1.0.11, dateformat@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" @@ -1238,7 +1315,7 @@ dateformat@^1.0.11, dateformat@^1.0.12: get-stdin "^4.0.1" meow "^3.3.0" -debug@2, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.4.0: +debug@2, 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: @@ -1270,6 +1347,10 @@ deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -1289,6 +1370,18 @@ defs@~1.1.0: tryor "~0.1.2" yargs "~3.27.0" +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1326,6 +1419,13 @@ detective@^4.3.1: acorn "^4.0.3" defined "^1.0.0" +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -1341,25 +1441,12 @@ domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" -domhandler@2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - domhandler@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" dependencies: domelementtype "1" -domutils@1.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - domutils@^1.5.1: version "1.6.2" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" @@ -1440,10 +1527,6 @@ ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -1458,10 +1541,65 @@ 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.5: +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, 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" +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.3.0.tgz#fcd7c96376bbf34c85ee67ed0012a299642b108f" + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^1.1.3" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^2.6.8" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.4.3" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.8.4" + json-stable-stringify "^1.0.1" + levn "^0.3.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.2" + pluralize "^4.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" + dependencies: + acorn "^5.0.1" + acorn-jsx "^3.0.0" + espree@~3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.7.tgz#fd5deec76a97a5120a9cd3a7cb1177a0923b11d2" @@ -1481,7 +1619,28 @@ esprima@^3.1.1, esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" -esutils@^2.0.0: +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -1511,10 +1670,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@0.1.2, exit@0.1.x: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -1570,6 +1725,14 @@ extend@3, extend@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" +external-editor@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" + dependencies: + iconv-lite "^0.4.17" + jschardet "^1.4.2" + tmp "^0.0.31" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -1580,6 +1743,14 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +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" + fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" @@ -1605,6 +1776,19 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +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" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -1651,12 +1835,6 @@ findup-sync@0.4.3: micromatch "^2.3.7" resolve-dir "^0.1.0" -findup-sync@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" - dependencies: - glob "~5.0.0" - findup-sync@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-1.0.0.tgz#6f7e4b57b6ee3a4037b4414eaedea3f58f71e0ec" @@ -1676,6 +1854,15 @@ fireworm@^0.7.0: lodash.flatten "^3.0.2" minimatch "^3.0.2" +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + for-in@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -1776,6 +1963,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" @@ -1866,7 +2057,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^5.0.10, glob@^5.0.15, glob@~5.0.0: +glob@^5.0.10, glob@^5.0.15: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: @@ -1876,7 +2067,7 @@ glob@^5.0.10, glob@^5.0.15, glob@~5.0.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.4, glob@^7.0.5, glob@^7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.4, glob@^7.0.5, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -1907,6 +2098,21 @@ globals@^6.4.0: version "6.4.1" resolved "https://registry.yarnpkg.com/globals/-/globals-6.4.1.tgz#8498032b3b6d1cc81eebc5f79690d8fe29fabf4f" +globals@^9.17.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" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -1973,14 +2179,14 @@ has-binary@0.1.7: dependencies: isarray "0.0.1" -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" +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" @@ -2037,16 +2243,6 @@ 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" -htmlparser2@3.8.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" - htmlparser2@^3.9.1: version "3.9.2" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" @@ -2090,10 +2286,18 @@ https-proxy-agent@~1.0.0: debug "2" extend "3" -iconv-lite@^0.4.5: +iconv-lite@^0.4.17, iconv-lite@^0.4.5: version "0.4.18" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" +ignore@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + +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" @@ -2111,7 +2315,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2119,6 +2323,25 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +inquirer@^3.0.6: + version "3.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.2.1.tgz#06ceb0f540f45ca548c17d6840959878265fa175" + dependencies: + ansi-escapes "^2.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.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" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -2177,6 +2400,10 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +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-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -2214,6 +2441,22 @@ is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -2222,10 +2465,20 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +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" + dependencies: + tryit "^1.0.1" + is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" @@ -2258,7 +2511,7 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2296,6 +2549,10 @@ js-tokens@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-1.0.1.tgz#cc435a5c8b94ad15acb7983140fc80182c89aeae" +js-tokens@^3.0.0: + 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.3.0: version "3.8.4" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" @@ -2303,6 +2560,13 @@ js-yaml@^3.2.5, js-yaml@^3.2.7, js-yaml@^3.3.0: argparse "^1.0.7" esprima "^3.1.1" +js-yaml@^3.8.4: + version "3.9.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.0.tgz#4ffbbf25c2ac963b8299dc74da7e3740de1c18ce" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js2xmlparser@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-1.0.0.tgz#5a170f2e8d6476ce45405e04823242513782fe30" @@ -2311,6 +2575,10 @@ 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.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.0.tgz#a61f310306a5a71188e1b1acd08add3cfbb08b1e" + jsdoc@^3.4.2: version "3.4.3" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.4.3.tgz#e5740d6145c681f6679e6c17783a88dbdd97ccd3" @@ -2328,22 +2596,17 @@ jsdoc@^3.4.2: taffydb "2.6.2" underscore "~1.8.3" +jsesc@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -jshint@^2.7.0: - version "2.9.5" - resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.5.tgz#1e7252915ce681b40827ee14248c46d34e9aa62c" - dependencies: - cli "~1.0.0" - console-browserify "1.1.x" - exit "0.1.x" - htmlparser2 "3.8.x" - lodash "3.7.x" - minimatch "~3.0.2" - shelljs "0.3.x" - strip-json-comments "1.0.x" +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" @@ -2432,6 +2695,13 @@ leven@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/leven/-/leven-1.0.2.tgz#9144b6eebca5f1d0680169f1a6770dcea60b75c3" +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + livereload@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.6.2.tgz#bcd7c3f179cb0b21e2aafde22ecc7276fb44483e" @@ -2487,6 +2757,10 @@ lodash.debounce@^3.1.1: dependencies: lodash._getnative "^3.0.0" +lodash.defaultsdeep@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz#bec1024f85b1bd96cbea405b23c14ad6443a6f81" + lodash.find@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" @@ -2535,10 +2809,6 @@ lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" -lodash@3.7.x: - version "3.7.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" - lodash@4.16.2: version "4.16.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.2.tgz#3e626db827048a699281a8a125226326cfc0e652" @@ -2547,7 +2817,7 @@ lodash@^3.10.0, 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.1.0, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.2.1, lodash@^4.8.0: +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -2589,6 +2859,16 @@ matcher-collection@^1.0.0: dependencies: minimatch "^3.0.2" +md5-hex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -2673,7 +2953,11 @@ mime@^1.2.11: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +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.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -2703,12 +2987,6 @@ minimist@~0.0.1: dependencies: minimist "0.0.8" -mkdirp@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.4.2.tgz#427c8c18ece398b932f6f666f4e1e5b7740e78c8" - dependencies: - minimist "0.0.8" - mktemp@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" @@ -2741,10 +3019,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.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -2852,6 +3138,12 @@ once@^1.3.0, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" +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" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -2859,6 +3151,17 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" @@ -2955,6 +3258,10 @@ 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.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" @@ -2993,6 +3300,14 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pluralize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-4.0.0.tgz#59b708c1c0190a2f692f1c7618c446b052fd1762" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -3009,6 +3324,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +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" resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" @@ -3101,16 +3420,7 @@ read-pkg@^1.0.0, read-pkg@^1.1.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5: +readable-stream@^2, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -3292,6 +3602,13 @@ request@^2.51.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -3309,6 +3626,10 @@ resolve-dir@^0.1.0: expand-tilde "^1.2.2" global-modules "^0.2.3" +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.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" @@ -3325,6 +3646,13 @@ resolve@~0.6.1: version "0.6.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -3345,6 +3673,22 @@ rsvp@~3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" +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-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-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, 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" @@ -3438,15 +3782,11 @@ 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.3.x: - version "0.3.0" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" - shellwords@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" -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" @@ -3462,6 +3802,10 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -3606,6 +3950,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^2.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.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -3640,9 +3991,11 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" +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" @@ -3656,10 +4009,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - 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" @@ -3676,10 +4025,27 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + 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@^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" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + taffydb@2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" @@ -3765,6 +4131,10 @@ text-extensions@^1.0.0: version "1.5.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc" +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + "textextensions@1 || 2": version "2.1.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.1.0.tgz#1be0dc2a0dc244d44be8a09af6a85afb93c4dbc3" @@ -3776,7 +4146,7 @@ through2@^2.0.0, through2@^2.0.2: readable-stream "^2.1.5" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@~2.3.8: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -3786,6 +4156,12 @@ tmp@0.0.28: dependencies: os-tmpdir "~1.0.1" +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" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -3830,6 +4206,10 @@ try-resolve@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912" +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + tryor@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/tryor/-/tryor-0.1.2.tgz#8145e4ca7caff40acde3ccf946e8b8bb75b4172b" @@ -3848,6 +4228,12 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + type-is@~1.6.15: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -3855,6 +4241,10 @@ type-is@~1.6.15: media-typer "0.3.0" mime-types "~2.1.15" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + uglify-js@^2.6: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -4022,6 +4412,10 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" +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.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-2.2.1.tgz#41ebff11d5859da948fdb2c850b57da69240988a" @@ -4032,6 +4426,12 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + ws@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018"