diff --git a/.hound.yml b/.hound.yml index b5810115bccbaa7dd64a78d35881b37fc0d01d10..3387b0ce0a5b4b9e13dd70b6280378933cedd37d 100644 --- a/.hound.yml +++ b/.hound.yml @@ -1,14 +1,12 @@ fail_on_violations: true scss: - enabled: true config_file: scss/.scss-lint.yml -javascript: +jshint: enabled: false eslint: - enabled: true config_file: js/.eslintrc.json ignore_file: .houndignore diff --git a/.travis.yml b/.travis.yml index 238a6c0db4220541f50a420d6cc0a65bcd760c49..976b6f9fe97ce26a6345a659e237aec7526d3123 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,9 @@ git: depth: 3 node_js: - "4" - - "6" + - "7" before_install: - - if [[ `npm -v` != 3* ]]; then npm install -g npm@3; fi + - if [[ `npm -v` != 4* ]]; then npm install -g npm@4; fi - "export TRAVIS_COMMIT_MSG=\"`git log --format=%B --no-merges -n 1`\"" - echo "$TRAVIS_COMMIT_MSG" | grep '\[skip validator\]'; export TWBS_DO_VALIDATOR=$?; true - echo "$TRAVIS_COMMIT_MSG" | grep '\[skip sauce\]'; export TWBS_DO_SAUCE=$?; true diff --git a/Gemfile b/Gemfile index d00fd83dfb185598cb7b60ea3a2c0243b4f2c7d5..958c7a9cbc1f2f882376a3b510728e626b411e9d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' group :development, :test do - gem 'jekyll', '~> 3.4.0' + gem 'jekyll', '~> 3.4.2' gem 'jekyll-redirect-from', '~> 0.12.1' gem 'jekyll-sitemap', '~> 1.0.0' gem 'scss_lint', '~> 0.52.0' diff --git a/Gemfile.lock b/Gemfile.lock index e4c66f6cf2b2b73e42bc90b46329f43b8006a11c..242ec495fea95215b8006f386e3b73bb4552c2c0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,9 +4,9 @@ GEM addressable (2.5.0) public_suffix (~> 2.0, >= 2.0.2) colorator (1.1.0) - ffi (1.9.17) + ffi (1.9.18) forwardable-extended (2.6.0) - jekyll (3.4.0) + jekyll (3.4.2) addressable (~> 2.4) colorator (~> 1.0) jekyll-sass-converter (~> 1.0) @@ -49,10 +49,10 @@ PLATFORMS ruby DEPENDENCIES - jekyll (~> 3.4.0) + jekyll (~> 3.4.2) jekyll-redirect-from (~> 0.12.1) jekyll-sitemap (~> 1.0.0) scss_lint (~> 0.52.0) BUNDLED WITH - 1.13.6 + 1.14.6 diff --git a/docs/.htmlhintrc b/docs/.htmlhintrc index 636af68d76718bb3bd841cdcd58b0f27ad92766d..dff2e8088c3d187524bd559303e68894ee4137fb 100644 --- a/docs/.htmlhintrc +++ b/docs/.htmlhintrc @@ -1,12 +1,14 @@ { + "alt-require": true, "attr-lowercase": true, "attr-no-duplication": true, - "alt-require": true, "attr-unsafe-chars": true, "attr-value-double-quotes": true, "doctype-first": true, "doctype-html5": true, + "id-class-value": true, "id-unique": true, + "space-tab-mixed-disabled": true, "spec-char-escape": true, "src-not-empty": true, "tag-pair": true, diff --git a/docs/assets/js/vendor/clipboard.min.js b/docs/assets/js/vendor/clipboard.min.js index 1d7c5d5d7972d4c802a8fecbc0f0535bc2bfe360..1993676f9928815d7c7fe8afe5c9a9ef09097333 100644 --- a/docs/assets/js/vendor/clipboard.min.js +++ b/docs/assets/js/vendor/clipboard.min.js @@ -1,7 +1,7 @@ /*! - * clipboard.js v1.5.16 + * clipboard.js v1.6.1 * https://zenorocha.github.io/clipboard.js * * Licensed MIT © Zeno Rocha */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,i){function o(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,e,t,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(e,t,n){function i(e,t){for(;e&&e.nodeType!==o;){if(e.matches(t))return e;e=e.parentNode}}var o=9;if(Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=i},{}],2:[function(e,t,n){function i(e,t,n,i,r){var a=o.apply(this,arguments);return e.addEventListener(n,a,r),{destroy:function(){e.removeEventListener(n,a,r)}}}function o(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}var r=e("./closest");t.exports=i},{"./closest":1}],3:[function(e,t,n){n.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},n.nodeList=function(e){var t=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===t||"[object HTMLCollection]"===t)&&"length"in e&&(0===e.length||n.node(e[0]))},n.string=function(e){return"string"==typeof e||e instanceof String},n.fn=function(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t}},{}],4:[function(e,t,n){function i(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!c.string(t))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(e))return o(e,t,n);if(c.nodeList(e))return r(e,t,n);if(c.string(e))return a(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function r(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function a(e,t,n){return l(document.body,e,t,n)}var c=e("./is"),l=e("delegate");t.exports=i},{"./is":3,delegate:2}],5:[function(e,t,n){function i(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName)e.focus(),e.setSelectionRange(0,e.value.length),t=e.value;else{e.hasAttribute("contenteditable")&&e.focus();var n=window.getSelection(),i=document.createRange();i.selectNodeContents(e),n.removeAllRanges(),n.addRange(i),t=n.toString()}return t}t.exports=i},{}],6:[function(e,t,n){function i(){}i.prototype={on:function(e,t,n){var i=this.e||(this.e={});return(i[e]||(i[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function i(){o.off(e,i),t.apply(n,arguments)}var o=this;return i._=t,this.on(e,i,n)},emit:function(e){var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),i=0,o=n.length;for(i;i<o;i++)n[i].fn.apply(n[i].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),i=n[e],o=[];if(i&&t)for(var r=0,a=i.length;r<a;r++)i[r].fn!==t&&i[r].fn._!==t&&o.push(i[r]);return o.length?n[e]=o:delete n[e],this}},t.exports=i},{}],7:[function(t,n,i){!function(o,r){if("function"==typeof e&&e.amd)e(["module","select"],r);else if("undefined"!=typeof i)r(n,t("select"));else{var a={exports:{}};r(a,o.select),o.clipboardAction=a.exports}}(this,function(e,t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=n(t),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),c=function(){function e(t){i(this,e),this.resolveOptions(t),this.initSelection()}return a(e,[{key:"resolveOptions",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.addEventListener("focus",window.scrollTo(0,i)),this.fakeElem.style.top=i+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,i){!function(o,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof i)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,o.clipboardAction,o.tinyEmitter,o.goodListener),o.clipboard=a.exports}}(this,function(e,t,n,i){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var s=o(t),u=o(n),f=o(i),d=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),h=function(e){function t(e,n){r(this,t);var i=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i.resolveOptions(n),i.listenClick(e),i}return c(t,e),d(t,[{key:"resolveOptions",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}]),t}(u.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,o){function i(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var s=n[a]={exports:{}};t[a][0].call(s.exports,function(e){var n=t[a][1][e];return i(n?n:e)},s,s.exports,e,t,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<o.length;a++)i(o[a]);return i}({1:[function(e,t,n){function o(e,t){for(;e&&e.nodeType!==i;){if(e.matches(t))return e;e=e.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=o},{}],2:[function(e,t,n){function o(e,t,n,o,r){var a=i.apply(this,arguments);return e.addEventListener(n,a,r),{destroy:function(){e.removeEventListener(n,a,r)}}}function i(e,t,n,o){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&o.call(e,n)}}var r=e("./closest");t.exports=o},{"./closest":1}],3:[function(e,t,n){n.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},n.nodeList=function(e){var t=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===t||"[object HTMLCollection]"===t)&&"length"in e&&(0===e.length||n.node(e[0]))},n.string=function(e){return"string"==typeof e||e instanceof String},n.fn=function(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t}},{}],4:[function(e,t,n){function o(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!c.string(t))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(e))return i(e,t,n);if(c.nodeList(e))return r(e,t,n);if(c.string(e))return a(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function r(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function a(e,t,n){return l(document.body,e,t,n)}var c=e("./is"),l=e("delegate");t.exports=o},{"./is":3,delegate:2}],5:[function(e,t,n){function o(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(e),o.removeAllRanges(),o.addRange(i),t=o.toString()}return t}t.exports=o},{}],6:[function(e,t,n){function o(){}o.prototype={on:function(e,t,n){var o=this.e||(this.e={});return(o[e]||(o[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function o(){i.off(e,o),t.apply(n,arguments)}var i=this;return o._=t,this.on(e,o,n)},emit:function(e){var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),o=0,i=n.length;for(o;o<i;o++)n[o].fn.apply(n[o].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),o=n[e],i=[];if(o&&t)for(var r=0,a=o.length;r<a;r++)o[r].fn!==t&&o[r].fn._!==t&&i.push(o[r]);return i.length?n[e]=i:delete n[e],this}},t.exports=o},{}],7:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","select"],r);else if("undefined"!=typeof o)r(n,t("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(e,t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=n(t),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),c=function(){function e(t){o(this,e),this.resolveOptions(t),this.initSelection()}return a(e,[{key:"resolveOptions",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,o){!function(i,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof o)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(e,t,n,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var u=i(t),s=i(n),f=i(o),d=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),h=function(e){function t(e,n){r(this,t);var o=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return o.resolveOptions(n),o.listenClick(e),o}return c(t,e),d(t,[{key:"resolveOptions",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new u.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof t?[t]:t,o=!!document.queryCommandSupported;return n.forEach(function(e){o=o&&!!document.queryCommandSupported(e)}),o}}]),t}(s.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file diff --git a/docs/assets/js/vendor/jekyll-search.min.js b/docs/assets/js/vendor/jekyll-search.min.js index ab653bf8d287ecee4d994b4108355c7be4dba9f3..2e49f0e01d253136347d9df9eedbad799b93afc0 100644 --- a/docs/assets/js/vendor/jekyll-search.min.js +++ b/docs/assets/js/vendor/jekyll-search.min.js @@ -1 +1 @@ -!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function fuzzysearch(needle,haystack){var tlen=haystack.length,qlen=needle.length;if(qlen>tlen)return!1;if(qlen===tlen)return needle===haystack;outer:for(var i=0,j=0;i<qlen;i++){for(var nch=needle.charCodeAt(i);j<tlen;)if(haystack.charCodeAt(j++)===nch)continue outer;return!1}return!0}module.exports=fuzzysearch},{}],2:[function(require,module,exports){"use strict";function load(location,callback){var xhr=getXHR();xhr.open("GET",location,!0),xhr.onreadystatechange=createStateChangeListener(xhr,callback),xhr.send()}function createStateChangeListener(xhr,callback){return function(){if(4===xhr.readyState&&200===xhr.status)try{callback(null,JSON.parse(xhr.responseText))}catch(err){callback(err,null)}}}function getXHR(){return window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")}module.exports={load:load}},{}],3:[function(require,module,exports){"use strict";module.exports=function OptionsValidator(params){function validateParams(params){return!!params&&(void 0!==params.required&¶ms.required instanceof Array)}if(!validateParams(params))throw new Error("-- OptionsValidator: required options missing");if(!(this instanceof OptionsValidator))return new OptionsValidator(params);var requiredOptions=params.required;this.getRequiredOptions=function(){return requiredOptions},this.validate=function(parameters){var errors=[];return requiredOptions.forEach(function(requiredOptionName){void 0===parameters[requiredOptionName]&&errors.push(requiredOptionName)}),errors}}},{}],4:[function(require,module,exports){"use strict";function put(data){return isObject(data)?addObject(data):isArray(data)?addArray(data):void 0}function clear(){return data.length=0,data}function get(){return data}function isObject(obj){return!!obj&&"[object Object]"===Object.prototype.toString.call(obj)}function isArray(obj){return!!obj&&"[object Array]"===Object.prototype.toString.call(obj)}function addObject(_data){return data.push(_data),data}function addArray(_data){for(var added=[],i=0;i<_data.length;i++)isObject(_data[i])&&added.push(addObject(_data[i]));return added}function search(crit){return crit?findMatches(data,crit,opt.searchStrategy,opt):[]}function setOptions(_opt){opt=_opt||{},opt.fuzzy=_opt.fuzzy||!1,opt.limit=_opt.limit||10,opt.searchStrategy=_opt.fuzzy?FuzzySearchStrategy:LiteralSearchStrategy}function findMatches(data,crit,strategy,opt){for(var matches=[],i=0;i<data.length&&matches.length<opt.limit;i++){var match=findMatchesInObject(data[i],crit,strategy,opt);match&&matches.push(match)}return matches}function findMatchesInObject(obj,crit,strategy,opt){for(var key in obj)if(!isExcluded(obj[key],opt.exclude)&&strategy.matches(obj[key],crit))return obj}function isExcluded(term,excludedTerms){var excluded=!1;excludedTerms=excludedTerms||[];for(var i=0;i<excludedTerms.length;i++){var excludedTerm=excludedTerms[i];!excluded&&new RegExp(term).test(excludedTerm)&&(excluded=!0)}return excluded}module.exports={put:put,clear:clear,get:get,search:search,setOptions:setOptions};var FuzzySearchStrategy=require("./SearchStrategies/FuzzySearchStrategy"),LiteralSearchStrategy=require("./SearchStrategies/LiteralSearchStrategy"),data=[],opt={};opt.fuzzy=!1,opt.limit=10,opt.searchStrategy=opt.fuzzy?FuzzySearchStrategy:LiteralSearchStrategy},{"./SearchStrategies/FuzzySearchStrategy":5,"./SearchStrategies/LiteralSearchStrategy":6}],5:[function(require,module,exports){"use strict";function FuzzySearchStrategy(){this.matches=function(string,crit){return fuzzysearch(crit,string)}}var fuzzysearch=require("fuzzysearch");module.exports=new FuzzySearchStrategy},{fuzzysearch:1}],6:[function(require,module,exports){"use strict";function LiteralSearchStrategy(){this.matches=function(string,crit){return"string"==typeof string&&(string=string.trim(),string.toLowerCase().indexOf(crit.toLowerCase())>=0)}}module.exports=new LiteralSearchStrategy},{}],7:[function(require,module,exports){"use strict";function setOptions(_options){options.pattern=_options.pattern||options.pattern,options.template=_options.template||options.template,"function"==typeof _options.middleware&&(options.middleware=_options.middleware)}function compile(data){return options.template.replace(options.pattern,function(match,prop){var value=options.middleware(prop,data[prop],options.template);return void 0!==value?value:data[prop]||match})}module.exports={compile:compile,setOptions:setOptions};var options={};options.pattern=/\{(.*?)\}/g,options.template="",options.middleware=function(){}},{}],8:[function(require,module,exports){!function(window,document,undefined){"use strict";function initWithJSON(json){repository.put(json),registerInput()}function initWithURL(url){jsonLoader.load(url,function(err,json){err&&throwError("failed to get JSON ("+url+")"),initWithJSON(json)})}function emptyResultsContainer(){options.resultsContainer.innerHTML=""}function appendToResultsContainer(text){options.resultsContainer.innerHTML+=text}function registerInput(){options.searchInput.addEventListener("keyup",function(e){emptyResultsContainer();var key=e.which,query=e.target.value;isWhitelistedKey(key)&&isValidQuery(query)&&render(repository.search(query))})}function render(results){if(0===results.length)return appendToResultsContainer(options.noResultsText);for(var i=0;i<results.length;i++)appendToResultsContainer(templater.compile(results[i]))}function isValidQuery(query){return query&&query.length>0}function isWhitelistedKey(key){return[13,16,20,37,38,39,40,91].indexOf(key)===-1}function throwError(message){throw new Error("SimpleJekyllSearch --- "+message)}var options={searchInput:null,resultsContainer:null,json:[],searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:function(){},noResultsText:"No results found",limit:10,fuzzy:!1,exclude:[]},requiredOptions=["searchInput","resultsContainer","json"],templater=require("./Templater"),repository=require("./Repository"),jsonLoader=require("./JSONLoader"),optionsValidator=require("./OptionsValidator")({required:requiredOptions}),utils=require("./utils");window.SimpleJekyllSearch=function(_options){var errors=optionsValidator.validate(_options);errors.length>0&&throwError("You must specify the following required options: "+requiredOptions),options=utils.merge(options,_options),templater.setOptions({template:options.searchResultTemplate,middleware:options.templateMiddleware}),repository.setOptions({fuzzy:options.fuzzy,limit:options.limit}),utils.isJSON(options.json)?initWithJSON(options.json):initWithURL(options.json)},window.SimpleJekyllSearch.init=window.SimpleJekyllSearch,"function"==typeof window.SimpleJekyllSearchInit&&window.SimpleJekyllSearchInit.call(this,window.SimpleJekyllSearch)}(window,document)},{"./JSONLoader":2,"./OptionsValidator":3,"./Repository":4,"./Templater":7,"./utils":9}],9:[function(require,module,exports){"use strict";function merge(defaultParams,mergeParams){var mergedOptions={};for(var option in defaultParams)mergedOptions[option]=defaultParams[option],void 0!==mergeParams[option]&&(mergedOptions[option]=mergeParams[option]);return mergedOptions}function isJSON(json){try{return!!(json instanceof Object&&JSON.parse(JSON.stringify(json)))}catch(e){return!1}}module.exports={merge:merge,isJSON:isJSON}},{}]},{},[8]); \ No newline at end of file +!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function fuzzysearch(needle,haystack){var tlen=haystack.length,qlen=needle.length;if(qlen>tlen)return!1;if(qlen===tlen)return needle===haystack;outer:for(var i=0,j=0;i<qlen;i++){for(var nch=needle.charCodeAt(i);j<tlen;)if(haystack.charCodeAt(j++)===nch)continue outer;return!1}return!0}module.exports=fuzzysearch},{}],2:[function(require,module,exports){"use strict";function load(location,callback){var xhr=getXHR();xhr.open("GET",location,!0),xhr.onreadystatechange=createStateChangeListener(xhr,callback),xhr.send()}function createStateChangeListener(xhr,callback){return function(){if(4===xhr.readyState&&200===xhr.status)try{callback(null,JSON.parse(xhr.responseText))}catch(err){callback(err,null)}}}function getXHR(){return window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")}module.exports={load:load}},{}],3:[function(require,module,exports){"use strict";module.exports=function OptionsValidator(params){function validateParams(params){return!!params&&(void 0!==params.required&¶ms.required instanceof Array)}if(!validateParams(params))throw new Error("-- OptionsValidator: required options missing");if(!(this instanceof OptionsValidator))return new OptionsValidator(params);var requiredOptions=params.required;this.getRequiredOptions=function(){return requiredOptions},this.validate=function(parameters){var errors=[];return requiredOptions.forEach(function(requiredOptionName){void 0===parameters[requiredOptionName]&&errors.push(requiredOptionName)}),errors}}},{}],4:[function(require,module,exports){"use strict";function put(data){return isObject(data)?addObject(data):isArray(data)?addArray(data):void 0}function clear(){return data.length=0,data}function get(){return data}function isObject(obj){return!!obj&&"[object Object]"===Object.prototype.toString.call(obj)}function isArray(obj){return!!obj&&"[object Array]"===Object.prototype.toString.call(obj)}function addObject(_data){return data.push(_data),data}function addArray(_data){for(var added=[],i=0;i<_data.length;i++)isObject(_data[i])&&added.push(addObject(_data[i]));return added}function search(crit){return crit?findMatches(data,crit,opt.searchStrategy,opt):[]}function setOptions(_opt){opt=_opt||{},opt.fuzzy=_opt.fuzzy||!1,opt.limit=_opt.limit||10,opt.searchStrategy=_opt.fuzzy?FuzzySearchStrategy:LiteralSearchStrategy}function findMatches(data,crit,strategy,opt){for(var matches=[],i=0;i<data.length&&matches.length<opt.limit;i++){var match=findMatchesInObject(data[i],crit,strategy,opt);match&&matches.push(match)}return matches}function findMatchesInObject(obj,crit,strategy,opt){for(var key in obj)if(!isExcluded(obj[key],opt.exclude)&&strategy.matches(obj[key],crit))return obj}function isExcluded(term,excludedTerms){var excluded=!1;excludedTerms=excludedTerms||[];for(var i=0;i<excludedTerms.length;i++){var excludedTerm=excludedTerms[i];!excluded&&new RegExp(term).test(excludedTerm)&&(excluded=!0)}return excluded}module.exports={put:put,clear:clear,get:get,search:search,setOptions:setOptions};var FuzzySearchStrategy=require("./SearchStrategies/FuzzySearchStrategy"),LiteralSearchStrategy=require("./SearchStrategies/LiteralSearchStrategy"),data=[],opt={};opt.fuzzy=!1,opt.limit=10,opt.searchStrategy=opt.fuzzy?FuzzySearchStrategy:LiteralSearchStrategy},{"./SearchStrategies/FuzzySearchStrategy":5,"./SearchStrategies/LiteralSearchStrategy":6}],5:[function(require,module,exports){"use strict";function FuzzySearchStrategy(){this.matches=function(string,crit){return fuzzysearch(crit,string)}}var fuzzysearch=require("fuzzysearch");module.exports=new FuzzySearchStrategy},{fuzzysearch:1}],6:[function(require,module,exports){"use strict";function LiteralSearchStrategy(){this.matches=function(string,crit){return"string"==typeof string&&(string=string.trim(),string.toLowerCase().indexOf(crit.toLowerCase())>=0)}}module.exports=new LiteralSearchStrategy},{}],7:[function(require,module,exports){"use strict";function setOptions(_options){options.pattern=_options.pattern||options.pattern,options.template=_options.template||options.template,"function"==typeof _options.middleware&&(options.middleware=_options.middleware)}function compile(data){return options.template.replace(options.pattern,function(match,prop){var value=options.middleware(prop,data[prop],options.template);return void 0!==value?value:data[prop]||match})}module.exports={compile:compile,setOptions:setOptions};var options={};options.pattern=/\{(.*?)\}/g,options.template="",options.middleware=function(){}},{}],8:[function(require,module,exports){!function(window,document,undefined){"use strict";function initWithJSON(json){repository.put(json),registerInput()}function initWithURL(url){jsonLoader.load(url,function(err,json){err&&throwError("failed to get JSON ("+url+")"),initWithJSON(json)})}function emptyResultsContainer(){options.resultsContainer.innerHTML=""}function appendToResultsContainer(text){options.resultsContainer.innerHTML+=text}function registerInput(){options.searchInput.addEventListener("keyup",function(e){var key=e.which;if(isWhitelistedKey(key)){emptyResultsContainer();var query=e.target.value;isValidQuery(query)&&render(repository.search(query))}})}function render(results){if(0===results.length)return appendToResultsContainer(options.noResultsText);for(var i=0;i<results.length;i++)appendToResultsContainer(templater.compile(results[i]))}function isValidQuery(query){return query&&query.length>0}function isWhitelistedKey(key){return[13,16,20,37,38,39,40,91].indexOf(key)===-1}function throwError(message){throw new Error("SimpleJekyllSearch --- "+message)}var options={searchInput:null,resultsContainer:null,json:[],searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:function(){},noResultsText:"No results found",limit:10,fuzzy:!1,exclude:[]},requiredOptions=["searchInput","resultsContainer","json"],templater=require("./Templater"),repository=require("./Repository"),jsonLoader=require("./JSONLoader"),optionsValidator=require("./OptionsValidator")({required:requiredOptions}),utils=require("./utils");window.SimpleJekyllSearch=function(_options){var errors=optionsValidator.validate(_options);errors.length>0&&throwError("You must specify the following required options: "+requiredOptions),options=utils.merge(options,_options),templater.setOptions({template:options.searchResultTemplate,middleware:options.templateMiddleware}),repository.setOptions({fuzzy:options.fuzzy,limit:options.limit}),utils.isJSON(options.json)?initWithJSON(options.json):initWithURL(options.json)},window.SimpleJekyllSearch.init=window.SimpleJekyllSearch,"function"==typeof window.SimpleJekyllSearchInit&&window.SimpleJekyllSearchInit.call(this,window.SimpleJekyllSearch)}(window,document)},{"./JSONLoader":2,"./OptionsValidator":3,"./Repository":4,"./Templater":7,"./utils":9}],9:[function(require,module,exports){"use strict";function merge(defaultParams,mergeParams){var mergedOptions={};for(var option in defaultParams)mergedOptions[option]=defaultParams[option],void 0!==mergeParams[option]&&(mergedOptions[option]=mergeParams[option]);return mergedOptions}function isJSON(json){try{return!!(json instanceof Object&&JSON.parse(JSON.stringify(json)))}catch(e){return!1}}module.exports={merge:merge,isJSON:isJSON}},{}]},{},[8]); \ No newline at end of file diff --git a/grunt/npm-shrinkwrap.json b/grunt/npm-shrinkwrap.json index 45d83be7e583bb2910f04f3fe1163091b3bd5330..3c527ea7e852d0df920feb64f7c7e257cce72014 100644 --- a/grunt/npm-shrinkwrap.json +++ b/grunt/npm-shrinkwrap.json @@ -3,9 +3,9 @@ "version": "4.0.0-alpha.6", "dependencies": { "abbrev": { - "version": "1.0.9", + "version": "1.1.0", "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", "dev": true }, "accepts": { @@ -49,9 +49,9 @@ } }, "ajv": { - "version": "4.11.2", + "version": "4.11.4", "from": "ajv@>=4.7.0 <5.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.4.tgz", "dev": true }, "ajv-keywords": { @@ -84,17 +84,22 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "dev": true }, + "any-promise": { + "version": "1.3.0", + "from": "any-promise@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "dev": true + }, "anymatch": { "version": "1.3.0", "from": "anymatch@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dev": true, - "optional": true + "dev": true }, "aproba": { - "version": "1.0.4", + "version": "1.1.1", "from": "aproba@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", "dev": true }, "archiver": { @@ -104,9 +109,9 @@ "dev": true, "dependencies": { "async": { - "version": "2.1.4", + "version": "2.1.5", "from": "async@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", "dev": true } } @@ -205,8 +210,7 @@ "version": "1.0.1", "from": "async-each@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "dev": true, - "optional": true + "dev": true }, "async-foreach": { "version": "0.1.3", @@ -221,9 +225,9 @@ "dev": true }, "autoprefixer": { - "version": "6.7.2", - "from": "autoprefixer@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.2.tgz", + "version": "6.7.7", + "from": "autoprefixer@>=6.7.7 <7.0.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "dev": true }, "aws-sign2": { @@ -233,9 +237,9 @@ "dev": true }, "aws4": { - "version": "1.5.0", + "version": "1.6.0", "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "dev": true }, "babel-code-frame": { @@ -245,9 +249,9 @@ "dev": true }, "babel-core": { - "version": "6.22.1", + "version": "6.23.1", "from": "babel-core@>=6.0.12 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.22.1.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.23.1.tgz", "dev": true }, "babel-eslint": { @@ -257,9 +261,9 @@ "dev": true }, "babel-generator": { - "version": "6.22.0", - "from": "babel-generator@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-generator@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.23.0.tgz", "dev": true, "dependencies": { "jsesc": { @@ -277,15 +281,15 @@ "dev": true }, "babel-helper-define-map": { - "version": "6.22.0", - "from": "babel-helper-define-map@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-helper-define-map@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz", "dev": true }, "babel-helper-function-name": { - "version": "6.22.0", - "from": "babel-helper-function-name@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-helper-function-name@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz", "dev": true }, "babel-helper-get-function-arity": { @@ -301,9 +305,9 @@ "dev": true }, "babel-helper-optimise-call-expression": { - "version": "6.22.0", - "from": "babel-helper-optimise-call-expression@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-helper-optimise-call-expression@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz", "dev": true }, "babel-helper-regex": { @@ -313,21 +317,21 @@ "dev": true }, "babel-helper-replace-supers": { - "version": "6.22.0", - "from": "babel-helper-replace-supers@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-helper-replace-supers@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz", "dev": true }, "babel-helpers": { - "version": "6.22.0", - "from": "babel-helpers@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-helpers@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.23.0.tgz", "dev": true }, "babel-messages": { - "version": "6.22.0", - "from": "babel-messages@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-messages@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "dev": true }, "babel-plugin-check-es2015-constants": { @@ -349,15 +353,15 @@ "dev": true }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-block-scoping@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-classes": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-classes@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-computed-properties": { @@ -367,9 +371,9 @@ "dev": true }, "babel-plugin-transform-es2015-destructuring": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-destructuring@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -379,9 +383,9 @@ "dev": true }, "babel-plugin-transform-es2015-for-of": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-for-of@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-function-name": { @@ -403,9 +407,9 @@ "dev": true }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-modules-strip": { @@ -415,15 +419,15 @@ "dev": true }, "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-modules-systemjs@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-modules-umd": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-modules-umd@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-object-super": { @@ -433,9 +437,9 @@ "dev": true }, "babel-plugin-transform-es2015-parameters": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-parameters@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -463,9 +467,9 @@ "dev": true }, "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "dev": true }, "babel-plugin-transform-es2015-unicode-regex": { @@ -493,39 +497,39 @@ "dev": true }, "babel-register": { - "version": "6.22.0", - "from": "babel-register@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-register@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.23.0.tgz", "dev": true }, "babel-runtime": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-runtime@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", "dev": true }, "babel-template": { - "version": "6.22.0", - "from": "babel-template@>=6.22.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.22.0.tgz", + "version": "6.23.0", + "from": "babel-template@>=6.23.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.23.0.tgz", "dev": true }, "babel-traverse": { - "version": "6.22.1", + "version": "6.23.1", "from": "babel-traverse@>=6.15.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.22.1.tgz", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.23.1.tgz", "dev": true }, "babel-types": { - "version": "6.22.0", + "version": "6.23.0", "from": "babel-types@>=6.15.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.22.0.tgz", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.23.0.tgz", "dev": true }, "babylon": { - "version": "6.15.0", + "version": "6.16.1", "from": "babylon@>=6.13.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.15.0.tgz", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.16.1.tgz", "dev": true }, "balanced-match": { @@ -535,9 +539,9 @@ "dev": true }, "basic-auth": { - "version": "1.0.4", - "from": "basic-auth@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "version": "1.1.0", + "from": "basic-auth@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", "dev": true }, "batch": { @@ -557,8 +561,7 @@ "version": "1.8.0", "from": "binary-extensions@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "dev": true, - "optional": true + "dev": true }, "bl": { "version": "1.2.0", @@ -573,9 +576,9 @@ "dev": true }, "bluebird": { - "version": "3.4.7", + "version": "3.5.0", "from": "bluebird@>=3.0.6 <4.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", "dev": true }, "body-parser": { @@ -635,9 +638,9 @@ "dev": true }, "browserslist": { - "version": "1.7.1", - "from": "browserslist@>=1.7.1 <2.0.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.1.tgz", + "version": "1.7.6", + "from": "browserslist@>=1.7.6 <2.0.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.6.tgz", "dev": true }, "buffer-crc32": { @@ -709,9 +712,9 @@ "dev": true }, "caniuse-db": { - "version": "1.0.30000619", - "from": "caniuse-db@>=1.0.30000618 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000619.tgz", + "version": "1.0.30000634", + "from": "caniuse-db@>=1.0.30000634 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000634.tgz", "dev": true }, "caseless": { @@ -742,10 +745,9 @@ }, "chokidar": { "version": "1.6.1", - "from": "chokidar@>=1.5.1 <2.0.0", + "from": "chokidar@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", - "dev": true, - "optional": true + "dev": true }, "circular-json": { "version": "0.3.1", @@ -760,15 +762,15 @@ "dev": true }, "clean-css": { - "version": "4.0.4", - "from": "clean-css@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.4.tgz", + "version": "4.0.8", + "from": "clean-css@>=4.0.8 <5.0.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.8.tgz", "dev": true }, "clean-css-cli": { - "version": "4.0.0", - "from": "clean-css-cli@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.0.0.tgz", + "version": "4.0.8", + "from": "clean-css-cli@>=4.0.8 <5.0.0", + "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.0.8.tgz", "dev": true }, "cli": { @@ -797,6 +799,12 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "dev": true }, + "cli-spinners": { + "version": "1.0.0", + "from": "cli-spinners@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.0.tgz", + "dev": true + }, "cli-width": { "version": "2.1.0", "from": "cli-width@>=2.0.0 <3.0.0", @@ -841,7 +849,7 @@ }, "commander": { "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", + "from": "commander@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dev": true }, @@ -864,21 +872,15 @@ "dev": true }, "connect": { - "version": "3.5.0", + "version": "3.6.0", "from": "connect@>=3.4.0 <4.0.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz", "dev": true, "dependencies": { "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "2.6.1", + "from": "debug@2.6.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", "dev": true } } @@ -908,9 +910,9 @@ "dev": true }, "convert-source-map": { - "version": "1.3.0", + "version": "1.4.0", "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.4.0.tgz", "dev": true }, "core-js": { @@ -925,6 +927,20 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "dev": true }, + "cosmiconfig": { + "version": "2.1.1", + "from": "cosmiconfig@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.1.1.tgz", + "dev": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "from": "minimist@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "dev": true + } + } + }, "crc": { "version": "3.4.4", "from": "crc@>=3.4.4 <4.0.0", @@ -1008,9 +1024,9 @@ "dev": true }, "debug": { - "version": "2.6.0", + "version": "2.6.2", "from": "debug@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.2.tgz", "dev": true }, "decamelize": { @@ -1125,9 +1141,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.2.1", - "from": "electron-to-chromium@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.2.1.tgz", + "version": "1.2.6", + "from": "electron-to-chromium@>=1.2.5 <2.0.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.2.6.tgz", "dev": true }, "encodeurl": { @@ -1137,9 +1153,9 @@ "dev": true }, "end-of-stream": { - "version": "1.1.0", + "version": "1.2.0", "from": "end-of-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.2.0.tgz", "dev": true, "dependencies": { "once": { @@ -1157,9 +1173,9 @@ "dev": true }, "error-ex": { - "version": "1.3.0", + "version": "1.3.1", "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "dev": true }, "es5-ext": { @@ -1229,9 +1245,9 @@ "dev": true }, "eslint": { - "version": "3.15.0", - "from": "eslint@>=3.15.0 <4.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.15.0.tgz", + "version": "3.17.1", + "from": "eslint@>=3.17.1 <4.0.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.17.1.tgz", "dev": true }, "espree": { @@ -1241,9 +1257,9 @@ "dev": true }, "esprima": { - "version": "2.7.3", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "version": "3.1.3", + "from": "esprima@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "dev": true }, "esrecurse": { @@ -1273,9 +1289,9 @@ "dev": true }, "etag": { - "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "version": "1.8.0", + "from": "etag@>=1.8.0 <1.9.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", "dev": true }, "event-emitter": { @@ -1439,21 +1455,15 @@ "dev": true }, "finalhandler": { - "version": "0.5.0", - "from": "finalhandler@0.5.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", + "version": "1.0.0", + "from": "finalhandler@1.0.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz", "dev": true, "dependencies": { "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "2.6.1", + "from": "debug@2.6.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", "dev": true } } @@ -1497,15 +1507,15 @@ "dev": true }, "for-in": { - "version": "0.1.6", - "from": "for-in@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz", + "version": "1.0.2", + "from": "for-in@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "dev": true }, "for-own": { - "version": "0.1.4", + "version": "0.1.5", "from": "for-own@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "dev": true }, "forever-agent": { @@ -1521,9 +1531,9 @@ "dev": true }, "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "version": "0.5.0", + "from": "fresh@0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", "dev": true }, "fs-exists-sync": { @@ -1538,6 +1548,12 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", "dev": true }, + "fs-promise": { + "version": "1.0.0", + "from": "fs-promise@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-1.0.0.tgz", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "from": "fs.realpath@>=1.0.0 <2.0.0", @@ -1545,30 +1561,16 @@ "dev": true }, "fstream": { - "version": "1.0.10", + "version": "1.0.11", "from": "fstream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "dev": true - }, - "gather-stream": { - "version": "1.0.0", - "from": "gather-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "dev": true }, "gauge": { - "version": "2.7.2", + "version": "2.7.3", "from": "gauge@>=2.7.1 <2.8.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", - "dev": true, - "dependencies": { - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "dev": true - } - } + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", + "dev": true }, "gaze": { "version": "1.1.2", @@ -1651,9 +1653,9 @@ "dev": true }, "globals": { - "version": "9.14.0", + "version": "9.16.0", "from": "globals@>=9.0.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.16.0.tgz", "dev": true }, "globby": { @@ -1694,6 +1696,12 @@ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", "dev": true, "dependencies": { + "esprima": { + "version": "2.7.3", + "from": "esprima@>=2.6.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "dev": true + }, "glob": { "version": "7.0.6", "from": "glob@>=7.0.0 <7.1.0", @@ -1783,9 +1791,9 @@ "dev": true }, "grunt-contrib-qunit": { - "version": "1.2.0", - "from": "grunt-contrib-qunit@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.2.0.tgz", + "version": "1.3.0", + "from": "grunt-contrib-qunit@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.3.0.tgz", "dev": true }, "grunt-contrib-watch": { @@ -1803,15 +1811,9 @@ } }, "grunt-exec": { - "version": "1.0.1", - "from": "grunt-exec@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-1.0.1.tgz", - "dev": true - }, - "grunt-jekyll": { - "version": "0.4.6", - "from": "grunt-jekyll@>=0.4.6 <0.5.0", - "resolved": "https://registry.npmjs.org/grunt-jekyll/-/grunt-jekyll-0.4.6.tgz", + "version": "2.0.0", + "from": "grunt-exec@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-2.0.0.tgz", "dev": true }, "grunt-known-options": { @@ -1949,9 +1951,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.1.5", + "version": "2.2.0", "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.2.0.tgz", "dev": true }, "htmlhint": { @@ -2000,7 +2002,7 @@ }, "htmllint-cli": { "version": "0.0.6", - "from": "htmllint-cli@0.0.6", + "from": "htmllint-cli@>=0.0.6 <0.0.7", "resolved": "https://registry.npmjs.org/htmllint-cli/-/htmllint-cli-0.0.6.tgz", "dev": true }, @@ -2055,9 +2057,9 @@ "dev": true }, "ignore": { - "version": "3.2.2", + "version": "3.2.4", "from": "ignore@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.4.tgz", "dev": true }, "iltorb": { @@ -2143,13 +2145,12 @@ "version": "1.0.1", "from": "is-binary-path@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dev": true, - "optional": true + "dev": true }, "is-buffer": { - "version": "1.1.4", + "version": "1.1.5", "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", "dev": true }, "is-builtin-module": { @@ -2201,9 +2202,9 @@ "dev": true }, "is-my-json-valid": { - "version": "2.15.0", + "version": "2.16.0", "from": "is-my-json-valid@>=2.10.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "dev": true }, "is-number": { @@ -2351,15 +2352,15 @@ "dev": true }, "js-yaml": { - "version": "3.7.0", + "version": "3.8.2", "from": "js-yaml@>=3.5.1 <4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz", "dev": true }, "jsbn": { - "version": "0.1.0", + "version": "0.1.1", "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "dev": true, "optional": true }, @@ -2603,6 +2604,12 @@ "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", "dev": true }, + "log-symbols": { + "version": "1.0.2", + "from": "log-symbols@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "dev": true + }, "longest": { "version": "1.0.1", "from": "longest@>=1.0.1 <2.0.0", @@ -2683,6 +2690,12 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", "dev": true }, + "mimic-fn": { + "version": "1.1.0", + "from": "mimic-fn@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "dev": true + }, "minimatch": { "version": "3.0.3", "from": "minimatch@>=3.0.2 <4.0.0", @@ -2702,21 +2715,15 @@ "dev": true }, "morgan": { - "version": "1.7.0", + "version": "1.8.1", "from": "morgan@>=1.6.1 <2.0.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.1.tgz", "dev": true, "dependencies": { "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "version": "2.6.1", + "from": "debug@2.6.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", "dev": true } } @@ -2739,6 +2746,12 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", "dev": true }, + "mz": { + "version": "2.6.0", + "from": "mz@>=2.3.1 <3.0.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.6.0.tgz", + "dev": true + }, "nan": { "version": "2.5.1", "from": "nan@>=2.4.0 <3.0.0", @@ -2757,12 +2770,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "dev": true }, - "neo-async": { - "version": "1.8.2", - "from": "neo-async@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-1.8.2.tgz", - "dev": true - }, "node-gyp": { "version": "3.5.0", "from": "node-gyp@>=3.3.1 <4.0.0", @@ -2782,9 +2789,9 @@ "dev": true }, "normalize-package-data": { - "version": "2.3.5", + "version": "2.3.6", "from": "normalize-package-data@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz", "dev": true }, "normalize-path": { @@ -2871,6 +2878,32 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "dev": true }, + "ora": { + "version": "1.1.0", + "from": "ora@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-1.1.0.tgz", + "dev": true, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "from": "cli-cursor@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "dev": true + }, + "onetime": { + "version": "2.0.0", + "from": "onetime@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.0.tgz", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "from": "restore-cursor@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "dev": true + } + } + }, "os-homedir": { "version": "1.0.2", "from": "os-homedir@>=1.0.0 <2.0.0", @@ -2961,6 +2994,12 @@ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "dev": true }, + "path-parse": { + "version": "1.0.5", + "from": "path-parse@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "dev": true + }, "path-root": { "version": "0.1.1", "from": "path-root@>=0.1.1 <0.2.0", @@ -3034,45 +3073,27 @@ "dev": true }, "postcss": { - "version": "5.2.11", - "from": "postcss@>=5.2.11 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.11.tgz", + "version": "5.2.16", + "from": "postcss@>=5.2.16 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.16.tgz", "dev": true }, "postcss-cli": { - "version": "2.6.0", - "from": "postcss-cli@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-2.6.0.tgz", + "version": "3.0.0-beta", + "from": "postcss-cli@>=3.0.0-beta <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-3.0.0-beta.tgz", "dev": true, "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - }, - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "get-stdin": { + "version": "5.0.1", + "from": "get-stdin@>=5.0.1 <6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", "dev": true }, "globby": { - "version": "4.1.0", - "from": "globby@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "dev": true - }, - "yargs": { - "version": "4.8.1", - "from": "yargs@>=4.7.1 <5.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "dev": true - }, - "yargs-parser": { - "version": "2.4.1", - "from": "yargs-parser@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "version": "6.1.0", + "from": "globby@>=6.1.0 <7.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "dev": true } } @@ -3083,6 +3104,30 @@ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-2.1.0.tgz", "dev": true }, + "postcss-load-config": { + "version": "1.2.0", + "from": "postcss-load-config@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "dev": true + }, + "postcss-load-options": { + "version": "1.2.0", + "from": "postcss-load-options@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "dev": true + }, + "postcss-load-plugins": { + "version": "2.3.0", + "from": "postcss-load-plugins@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "dev": true + }, + "postcss-reporter": { + "version": "3.0.0", + "from": "postcss-reporter@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-3.0.0.tgz", + "dev": true + }, "postcss-value-parser": { "version": "3.3.0", "from": "postcss-value-parser@>=3.2.3 <4.0.0", @@ -3114,9 +3159,9 @@ "dev": true }, "private": { - "version": "0.1.6", + "version": "0.1.7", "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", "dev": true }, "process-nextick-args": { @@ -3156,9 +3201,9 @@ "dev": true }, "qs": { - "version": "6.3.0", + "version": "6.3.2", "from": "qs@>=6.3.0 <6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", "dev": true }, "randomatic": { @@ -3193,12 +3238,6 @@ } } }, - "read-file-stdin": { - "version": "0.2.1", - "from": "read-file-stdin@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz", - "dev": true - }, "read-pkg": { "version": "1.1.0", "from": "read-pkg@>=1.0.0 <2.0.0", @@ -3212,17 +3251,16 @@ "dev": true }, "readable-stream": { - "version": "2.2.2", + "version": "2.2.3", "from": "readable-stream@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz", "dev": true }, "readdirp": { "version": "2.1.0", "from": "readdirp@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "dev": true, - "optional": true + "dev": true }, "readline2": { "version": "1.0.1", @@ -3249,9 +3287,9 @@ "dev": true }, "regenerator-runtime": { - "version": "0.10.1", + "version": "0.10.3", "from": "regenerator-runtime@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz", "dev": true }, "regenerator-transform": { @@ -3326,6 +3364,12 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "dev": true }, + "require-from-string": { + "version": "1.2.1", + "from": "require-from-string@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "dev": true + }, "require-main-filename": { "version": "1.0.1", "from": "require-main-filename@>=1.0.1 <2.0.0", @@ -3339,9 +3383,9 @@ "dev": true }, "resolve": { - "version": "1.2.0", + "version": "1.3.2", "from": "resolve@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz", "dev": true }, "resolve-dir": { @@ -3383,9 +3427,9 @@ "dev": true }, "rimraf": { - "version": "2.5.4", + "version": "2.6.1", "from": "rimraf@>=2.2.8 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "dev": true }, "run-async": { @@ -3445,24 +3489,28 @@ "dev": true }, "send": { - "version": "0.14.2", - "from": "send@0.14.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.14.2.tgz", + "version": "0.15.1", + "from": "send@0.15.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.1.tgz", "dev": true, "dependencies": { "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true, - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } + "version": "2.6.1", + "from": "debug@2.6.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", + "dev": true + }, + "http-errors": { + "version": "1.6.1", + "from": "http-errors@>=1.6.1 <1.7.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "from": "setprototypeof@1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "dev": true } } }, @@ -3487,9 +3535,9 @@ } }, "serve-static": { - "version": "1.11.2", + "version": "1.12.1", "from": "serve-static@>=1.10.0 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.2.tgz", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz", "dev": true }, "set-blocking": { @@ -3502,8 +3550,7 @@ "version": "1.0.1", "from": "set-immediate-shim@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "dev": true, - "optional": true + "dev": true }, "setprototypeof": { "version": "1.0.2", @@ -3512,9 +3559,9 @@ "dev": true }, "shelljs": { - "version": "0.7.6", - "from": "shelljs@>=0.7.6 <0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", + "version": "0.7.7", + "from": "shelljs@>=0.7.7 <0.8.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz", "dev": true }, "shx": { @@ -3604,9 +3651,9 @@ "dev": true }, "sshpk": { - "version": "1.10.2", + "version": "1.11.0", "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz", "dev": true, "dependencies": { "assert-plus": { @@ -3619,7 +3666,7 @@ }, "statuses": { "version": "1.3.1", - "from": "statuses@>=1.3.0 <1.4.0", + "from": "statuses@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "dev": true }, @@ -3732,6 +3779,18 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "dev": true }, + "thenify": { + "version": "3.2.1", + "from": "thenify@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.2.1.tgz", + "dev": true + }, + "thenify-all": { + "version": "1.6.0", + "from": "thenify-all@>=1.6.0 <2.0.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "dev": true + }, "throttleit": { "version": "1.0.0", "from": "throttleit@>=1.0.0 <2.0.0", @@ -3782,12 +3841,6 @@ } } }, - "tmp": { - "version": "0.0.31", - "from": "tmp@>=0.0.31 <0.0.32", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "dev": true - }, "to-fast-properties": { "version": "1.0.2", "from": "to-fast-properties@>=1.0.1 <2.0.0", @@ -3806,6 +3859,12 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "dev": true }, + "trim-right": { + "version": "1.0.1", + "from": "trim-right@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "dev": true + }, "tryit": { "version": "1.0.3", "from": "tryit@>=1.0.1 <2.0.0", @@ -3844,17 +3903,11 @@ "dev": true }, "uglify-js": { - "version": "2.7.5", - "from": "uglify-js@>=2.7.5 <3.0.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "version": "2.8.12", + "from": "uglify-js@>=2.8.12 <3.0.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.12.tgz", "dev": true, "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "dev": true - }, "camelcase": { "version": "1.2.1", "from": "camelcase@>=1.0.2 <2.0.0", @@ -3966,9 +4019,9 @@ "dev": true }, "when": { - "version": "3.7.7", + "version": "3.7.8", "from": "when@>=3.7.5 <3.8.0", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", "dev": true }, "which": { diff --git a/grunt/postcss.config.js b/grunt/postcss.config.js new file mode 100644 index 0000000000000000000000000000000000000000..803078a5f8d6a08801c4d7b1cb01fee61b3550d3 --- /dev/null +++ b/grunt/postcss.config.js @@ -0,0 +1,41 @@ +module.exports = (ctx) => ({ + map: ctx.file.dirname.startsWith('docs') ? false : { + inline: false, + annotation: true, + sourcesContent: true + }, + plugins: { + autoprefixer: { + browsers: [ + // + // Official browser support policy: + // https://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers + // + 'Chrome >= 35', // Exact version number here is kinda arbitrary + // Rather than using Autoprefixer's native "Firefox ESR" version specifier string, + // we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that: + // (a) we happen to ship a new Bootstrap release soon after the release of a new ESR, + // such that folks haven't yet had a reasonable amount of time to upgrade; and + // (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages + // (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`). + // Since they've been unprefixed, Autoprefixer will stop prefixing them, + // thus causing them to not work in the previous ESR (where the prefixes were required). + 'Firefox >= 38', // Current Firefox Extended Support Release (ESR); https://www.mozilla.org/en-US/firefox/organizations/faq/ + // Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version, + // NOT the Edge app version shown in Edge's "About" screen. + // For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12. + // See also https://github.com/Fyrd/caniuse/issues/1928 + 'Edge >= 12', + 'Explorer >= 10', + // Out of leniency, we prefix these 1 version further back than the official policy. + 'iOS >= 8', + 'Safari >= 8', + // The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them. + 'Android 2.3', + 'Android >= 4', + 'Opera >= 12' + ] + }, + 'postcss-flexbugs-fixes': {} + } +}) diff --git a/grunt/postcss.js b/grunt/postcss.js deleted file mode 100644 index a2ea78f5be6a4c5772cc1f0c209e32a2bf52cfd1..0000000000000000000000000000000000000000 --- a/grunt/postcss.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - use: [ - 'postcss-flexbugs-fixes', - 'autoprefixer' - ], - map: { - inline: false, - annotation: true, - sourcesContent: true - }, - autoprefixer: { - browsers: [ - // - // Official browser support policy: - // https://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers - // - 'Chrome >= 35', // Exact version number here is kinda arbitrary - // Rather than using Autoprefixer's native "Firefox ESR" version specifier string, - // we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that: - // (a) we happen to ship a new Bootstrap release soon after the release of a new ESR, - // such that folks haven't yet had a reasonable amount of time to upgrade; and - // (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages - // (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`). - // Since they've been unprefixed, Autoprefixer will stop prefixing them, - // thus causing them to not work in the previous ESR (where the prefixes were required). - 'Firefox >= 38', // Current Firefox Extended Support Release (ESR); https://www.mozilla.org/en-US/firefox/organizations/faq/ - // Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version, - // NOT the Edge app version shown in Edge's "About" screen. - // For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12. - // See also https://github.com/Fyrd/caniuse/issues/1928 - 'Edge >= 12', - 'Explorer >= 10', - // Out of leniency, we prefix these 1 version further back than the official policy. - 'iOS >= 8', - 'Safari >= 8', - // The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them. - 'Android 2.3', - 'Android >= 4', - 'Opera >= 12' - ] - } -} diff --git a/js/.eslintrc.json b/js/.eslintrc.json index 930e1f3c2b2e83c6be81fb0769a3cb66c9af7c4a..07a307a74102e1cc87974590bf2b660ef1ea8039 100644 --- a/js/.eslintrc.json +++ b/js/.eslintrc.json @@ -13,6 +13,8 @@ }, "rules": { // Possible Errors + "no-await-in-loop": "error", + "no-compare-neg-zero": "error", "no-extra-parens": "error", "no-prototype-builtins": "off", "no-template-curly-in-string": "error", @@ -67,6 +69,7 @@ } ], "no-multi-str": "error", + "no-new": "error", "no-new-func": "off", "no-new-wrappers": "error", "no-new": "error", @@ -75,6 +78,7 @@ "no-proto": "error", "no-restricted-properties": "error", "no-return-assign": "off", + "no-return-await": "error", "no-script-url": "error", "no-self-compare": "error", "no-sequences": "error", @@ -84,9 +88,11 @@ "no-useless-call": "error", "no-useless-concat": "error", "no-useless-escape": "error", + "no-useless-return": "off", "no-void": "error", "no-warning-comments": "off", "no-with": "error", + "prefer-promise-reject-errors": "error", "radix": "error", "vars-on-top": "error", "wrap-iife": "error", @@ -100,8 +106,8 @@ "no-catch-shadow": "error", "no-label-var": "error", "no-restricted-globals": "error", - "no-shadow-restricted-names": "error", "no-shadow": "off", + "no-shadow-restricted-names": "error", "no-undef-init": "error", "no-undefined": "off", "no-use-before-define": "off", @@ -122,6 +128,7 @@ "array-bracket-spacing": "error", "block-spacing": "error", "brace-style": "error", + "capitalized-comments": "off", "camelcase": "error", "comma-dangle": "error", "comma-spacing": "error", @@ -130,6 +137,7 @@ "consistent-this": "error", "eol-last": "error", "func-call-spacing": "error", + "func-name-matching": "error", "func-names": "off", "func-style": ["error", "declaration"], "id-blacklist": "error", @@ -148,8 +156,8 @@ "max-lines": "off", "max-nested-callbacks": "error", "max-params": "off", - "max-statements-per-line": "error", "max-statements": "off", + "max-statements-per-line": "error", "multiline-ternary": "off", "new-cap": ["error", { "capIsNewExceptionPattern": "$.*" }], "new-parens": "error", @@ -162,6 +170,7 @@ "no-inline-comments": "off", "no-lonely-if": "error", "no-mixed-operators": "off", + "no-multi-assign": "error", "no-multiple-empty-lines": "error", "no-negated-condition": "off", "no-nested-ternary": "error", @@ -174,19 +183,20 @@ "no-underscore-dangle": "off", "no-unneeded-ternary": "error", "no-whitespace-before-property": "error", + "nonblock-statement-body-position": "error", "object-curly-newline": ["error", { "minProperties": 1 }], "object-curly-spacing": ["error", "always"], "object-property-newline": "error", - "one-var-declaration-per-line": "error", "one-var": ["error", "never"], + "one-var-declaration-per-line": "error", "operator-assignment": "error", "operator-linebreak": "off", "padded-blocks": "off", "quote-props": ["error", "as-needed"], "quotes": ["error", "single"], "require-jsdoc": "off", - "semi-spacing": "error", "semi": ["error", "never"], + "semi-spacing": "error", "sort-keys": "off", "sort-vars": "error", "space-before-blocks": "error", @@ -198,6 +208,7 @@ "space-infix-ops": "error", "space-unary-ops": "error", "spaced-comment": "error", + "template-tag-spacing": "error", "unicode-bom": "error", "wrap-regex": "off", @@ -217,7 +228,6 @@ "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-numeric-literals": "error", - "prefer-reflect": "off", "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "error", diff --git a/package.json b/package.json index f468ed858d766e30ab8a53e1b5cd7e2e31166843..a354ab7226051162323ca2c5ff4290ba88b1c3e7 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,8 @@ "htmllint": "htmllint --rc docs/.htmllintrc _gh_pages/**/*.html js/tests/visual/*.html", "jekyll": "bundle exec jekyll build", "jekyll-github": "shx echo 'github: true' > $npm_config_tmp/twbsjekyll.yml && npm run jekyll -- --config _config.yml,$npm_config_tmp/twbsjekyll.yml && shx rm $npm_config_tmp/twbsjekyll.yml", - "postcss": "postcss --config grunt/postcss.js --replace dist/css/*.css", - "postcss-docs": "postcss --config grunt/postcss.js --no-map --replace docs/assets/css/docs.min.css && postcss --config grunt/postcss.js --no-map --replace docs/examples/**/*.css", + "postcss": "postcss --config grunt/ --replace dist/css/*.css", + "postcss-docs": "postcss --config grunt/ --replace docs/assets/css/docs.min.css && postcss --config grunt/ --replace docs/examples/**/*.css", "sass": "node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css", "sass-docs": "node-sass --output-style expanded --source-map true --precision 6 docs/assets/scss/docs.scss docs/assets/css/docs.min.css", "scss-lint": "bundle exec scss-lint --config scss/.scss-lint.yml scss/*.scss", @@ -52,12 +52,12 @@ "tether": "^1.4.0" }, "devDependencies": { - "autoprefixer": "^6.7.2", + "autoprefixer": "^6.7.7", "babel-eslint": "^7.1.1", "babel-plugin-transform-es2015-modules-strip": "^0.1.0", "babel-preset-es2015": "^6.22.0", - "clean-css-cli": "^4.0.0", - "eslint": "^3.15.0", + "clean-css-cli": "^4.0.8", + "eslint": "^3.17.1", "grunt": "^1.0.1", "grunt-babel": "^6.0.0", "grunt-build-control": "^0.7.1", @@ -66,9 +66,9 @@ "grunt-contrib-concat": "^1.0.1", "grunt-contrib-connect": "^1.0.2", "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-qunit": "^1.2.0", + "grunt-contrib-qunit": "^1.3.0", "grunt-contrib-watch": "^1.0.0", - "grunt-exec": "^1.0.1", + "grunt-exec": "^2.0.0", "grunt-saucelabs": "^9.0.0", "grunt-stamp": "^0.3.0", "htmlhint": "^0.9.13", @@ -76,12 +76,12 @@ "is-travis": "^1.0.0", "load-grunt-tasks": "^3.5.2", "node-sass": "^4.5.0", - "postcss-cli": "^2.6.0", + "postcss-cli": "^3.0.0-beta", "postcss-flexbugs-fixes": "^2.1.0", - "shelljs": "^0.7.6", + "shelljs": "^0.7.7", "shx": "^0.2.2", "time-grunt": "^1.4.0", - "uglify-js": "^2.7.5" + "uglify-js": "^2.8.12" }, "engines": { "node": ">=4"